diff --git a/.github/workflows/Create-Release.yml b/.github/workflows/Create-Release.yml
index 4bf60b50..92a979d5 100644
--- a/.github/workflows/Create-Release.yml
+++ b/.github/workflows/Create-Release.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.event.workflow_run.head_sha }}
- - uses: codfish/semantic-release-action@v4
+ - uses: codfish/semantic-release-action@v5
id: semantic
with:
tag-format: 'v${version}'
diff --git a/.github/workflows/broken-links-checker.yml b/.github/workflows/broken-links-checker.yml
index a87fda61..067dd914 100644
--- a/.github/workflows/broken-links-checker.yml
+++ b/.github/workflows/broken-links-checker.yml
@@ -24,7 +24,7 @@ jobs:
- name: Get changed markdown files (PR only)
id: changed-markdown-files
if: github.event_name == 'pull_request'
- uses: tj-actions/changed-files@e0021407031f5be11a464abee9a0776171c79891 # v46
+ uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v46
with:
files: |
**/*.md
@@ -34,7 +34,7 @@ jobs:
- name: Check Broken Links in Changed Markdown Files
id: lychee-check-pr
if: github.event_name == 'pull_request' && steps.changed-markdown-files.outputs.any_changed == 'true'
- uses: lycheeverse/lychee-action@v2.7.0
+ uses: lycheeverse/lychee-action@v2.8.0
with:
args: >
--verbose --no-progress --exclude ^https?://
@@ -47,7 +47,7 @@ jobs:
- name: Check Broken Links in All Markdown Files in Entire Repo (Manual Trigger)
id: lychee-check-manual
if: github.event_name == 'workflow_dispatch'
- uses: lycheeverse/lychee-action@v2.7.0
+ uses: lycheeverse/lychee-action@v2.8.0
with:
args: >
--verbose --no-progress --exclude ^https?://
diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml
index 04161f2c..e479aee2 100644
--- a/.github/workflows/build-docker.yml
+++ b/.github/workflows/build-docker.yml
@@ -38,7 +38,7 @@ jobs:
run: az acr login --name ${{ inputs.registry }}
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
+ uses: docker/setup-buildx-action@v4
- name: Get current date
id: date
@@ -61,7 +61,7 @@ jobs:
- name: Build Docker Image and optionally push
- uses: docker/build-push-action@v6
+ uses: docker/build-push-action@v7
with:
context: .
file: ${{ inputs.dockerfile }}
diff --git a/.github/workflows/job-deploy-linux.yml b/.github/workflows/job-deploy-linux.yml
index 9bb21f44..6f1a3966 100644
--- a/.github/workflows/job-deploy-linux.yml
+++ b/.github/workflows/job-deploy-linux.yml
@@ -49,7 +49,7 @@ jobs:
WEBAPP_URL: ${{ steps.get_output_linux.outputs.WEBAPP_URL }}
steps:
- name: Checkout Code
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Validate Workflow Input Parameters
shell: bash
diff --git a/.github/workflows/job-docker-build.yml b/.github/workflows/job-docker-build.yml
index d79c00e4..e76e8120 100644
--- a/.github/workflows/job-docker-build.yml
+++ b/.github/workflows/job-docker-build.yml
@@ -45,7 +45,7 @@ jobs:
echo "Generated unique Docker tag: $UNIQUE_TAG"
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
+ uses: docker/setup-buildx-action@v4
- name: Login to Azure
uses: azure/login@v2
@@ -58,7 +58,7 @@ jobs:
run: az acr login --name ${{ secrets.ACR_TEST_LOGIN_SERVER }}
- name: Build and Push Cod Mod backend Docker image
- uses: docker/build-push-action@v6
+ uses: docker/build-push-action@v7
env:
DOCKER_BUILD_SUMMARY: false
with:
@@ -70,7 +70,7 @@ jobs:
${{ secrets.ACR_TEST_LOGIN_SERVER }}/cmsabackend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}
- name: Build and Push Cod Mod frontend Docker image
- uses: docker/build-push-action@v6
+ uses: docker/build-push-action@v7
env:
DOCKER_BUILD_SUMMARY: false
with:
diff --git a/.github/workflows/stale-bot.yml b/.github/workflows/stale-bot.yml
index 85c76e85..ea2d288f 100644
--- a/.github/workflows/stale-bot.yml
+++ b/.github/workflows/stale-bot.yml
@@ -75,7 +75,7 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload CSV Report of Inactive Branches
- uses: actions/upload-artifact@v6
+ uses: actions/upload-artifact@v7
with:
name: merged-branches-report
path: merged_branches_report.csv
diff --git a/.github/workflows/test-automation-v2.yml b/.github/workflows/test-automation-v2.yml
index a5c1cea4..6eea3edc 100644
--- a/.github/workflows/test-automation-v2.yml
+++ b/.github/workflows/test-automation-v2.yml
@@ -136,7 +136,7 @@ jobs:
- name: Upload test report
id: upload_report
- uses: actions/upload-artifact@v6
+ uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: test-report
diff --git a/.github/workflows/test-automation.yml b/.github/workflows/test-automation.yml
index 1739cc75..28aa7ce6 100644
--- a/.github/workflows/test-automation.yml
+++ b/.github/workflows/test-automation.yml
@@ -29,7 +29,7 @@ jobs:
python-version: '3.13'
- name: Azure CLI Login
- uses: azure/login@v2
+ uses: azure/login@v3
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
@@ -82,7 +82,7 @@ jobs:
- name: Upload test report
id: upload_report
- uses: actions/upload-artifact@v6
+ uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: test-report
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index f1ef5755..3b0002df 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -2,6 +2,7 @@ name: Test Workflow with Coverage - Code-Gen
permissions:
contents: read
actions: read
+ pull-requests: write
on:
push:
branches:
@@ -112,10 +113,22 @@ jobs:
if: env.skip_backend_tests == 'false'
run: |
cd src
- pytest tests/backend --cov=backend --cov-report=term-missing --cov-report=xml --cov-fail-under=80
+ pytest tests/backend --cov=backend --cov-report=term-missing --cov-report=xml --cov-fail-under=80 --junitxml=pytest.xml
+ - name: Pytest Coverage Comment
+ if: |
+ always() &&
+ github.event_name == 'pull_request' &&
+ github.event.pull_request.head.repo.fork == false &&
+ env.skip_backend_tests == 'false'
+ uses: MishaKav/pytest-coverage-comment@26f986d2599c288bb62f623d29c2da98609e9cd4 # v1.6.0
+ with:
+ pytest-xml-coverage-path: src/coverage.xml
+ junitxml-path: src/pytest.xml
+ report-only-changed-files: true
+
- name: Skip Backend Tests
if: env.skip_backend_tests == 'true'
run: |
diff --git a/README.md b/README.md
index 749582cd..4cbcdd4e 100644
--- a/README.md
+++ b/README.md
@@ -5,25 +5,24 @@ Welcome to the *Modernize your code* solution accelerator, designed to help cust
When dealing with legacy code, users often face significant challenges, including the absence of proper documentation, loss of knowledge of outdated languages, and missing business logic that explains functional requirements.
The Modernize your code solution accelerator allows users to specify a group of SQL queries and the target SQL dialect for translation. It then initiates a batch process where each query is translated using a group of Large Language Model (LLM) agents. This automation not only saves time but also ensures accuracy and consistency in query translation.
-
-
-[**SOLUTION OVERVIEW**](#solution-overview) \| [**QUICK DEPLOY**](#quick-deploy) \| [**BUSINESS SCENARIO**](#business-scenario) \| [**SUPPORTING DOCUMENTATION**](#supporting-documentation)
+---
-
-
+[**SOLUTION OVERVIEW**](#solution-overview) \| [**QUICK DEPLOY**](#quick-deploy) \| [**BUSINESS SCENARIO**](#business-scenario) \| [**SUPPORTING DOCUMENTATION**](#supporting-documentation)
- **Note:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md).
-
+---
+
+**Note:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md).
-
-Solution overview
-
+
+
+## Solution overview
The solution leverages Azure AI Foundry, Azure OpenAI Service, Azure Container Apps, Azure Cosmos DB, and Azure Storage to create an intelligent code modernization pipeline. It uses a multi-agent approach where specialized AI agents work together to translate, validate, and optimize SQL queries for the target environment.
### Solution architecture
+
||
|---|
@@ -34,15 +33,12 @@ This architecture will be deployed with the 'sandbox' setting of our deployment
||
|---|
-### How to customize
+### Additional resources
If you'd like to customize the solution accelerator, here are some common areas to start:
[Custom scenario](./docs/CustomizingScenario.md)
-
-
-
-### Additional resources
+For detailed technical information, see the component documentation:
[Azure AI Foundry documentation](https://learn.microsoft.com/en-us/azure/ai-studio/)
@@ -50,63 +46,74 @@ If you'd like to customize the solution accelerator, here are some common areas
[Azure OpenAI Service Documentation](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/use-your-data)
-
+---
+
+## Features
### Key features
+
- Click to learn more about the key features this solution enables
- - **Code language modernization**
- Modernizing outdated code ensures compatibility with current technologies, reduces reliance on legacy expertise, and keeps businesses competitive.
-
- - **Summary and review of new code**
- Generating summaries and translating code files keeps humans in the loop, enhances their understanding, and facilitates timely interventions, ensuring the files are ready to export.
+Click to learn more about the key features this solution enables
+
+- **Code language modernization**
+ Modernizing outdated code ensures compatibility with current technologies, reduces reliance on legacy expertise, and keeps businesses competitive.
- - **Business logic analysis**
- Leveraging AI to decipher business logic from legacy code helps minimizes the risk of human error.
+- **Summary and review of new code**
+ Generating summaries and translating code files keeps humans in the loop, enhances their understanding, and facilitates timely interventions, ensuring the files are ready to export.
- - **Efficient code transformation**
- Streamlining the process of analyzing, converting, and iterative error testing reduces time and effort required to modernize the systems.
+- **Business logic analysis**
+ Leveraging AI to decipher business logic from legacy code helps minimizes the risk of human error.
+
+- **Efficient code transformation**
+ Streamlining the process of analyzing, converting, and iterative error testing reduces time and effort required to modernize the systems.
-
-
-Quick deploy
-
+---
+
+## Getting Started
+
+
+
+### Quick deploy
+
+#### How to install or deploy
-### How to install or deploy
Follow the quick deploy steps on the deployment guide to deploy this solution to your own Azure subscription.
> **Note:** This solution accelerator requires **Azure Developer CLI (azd) version 1.18.0 or higher**. Please ensure you have the latest version installed before proceeding with deployment. [Download azd here](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/install-azd).
[Click here to launch the deployment guide](./docs/DeploymentGuide.md)
-
-| [](https://codespaces.new/microsoft/Modernize-your-Code-Solution-Accelerator) | [](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Modernize-your-Code-Solution-Accelerator) | [&message=Open&color=blue&logo=visualstudiocode&logoColor=white)](https://vscode.dev/azure/?vscode-azure-exp=foundry&agentPayload=eyJiYXNlVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvTW9kZXJuaXplLXlvdXItY29kZS1zb2x1dGlvbi1hY2NlbGVyYXRvci9yZWZzL2hlYWRzL21haW4vaW5mcmEvdnNjb2RlX3dlYiIsICJpbmRleFVybCI6ICIvaW5kZXguanNvbiIsICJ2YXJpYWJsZXMiOiB7ImFnZW50SWQiOiAiIiwgImNvbm5lY3Rpb25TdHJpbmciOiAiIiwgInRocmVhZElkIjogIiIsICJ1c2VyTWVzc2FnZSI6ICIiLCAicGxheWdyb3VuZE5hbWUiOiAiIiwgImxvY2F0aW9uIjogIiIsICJzdWJzY3JpcHRpb25JZCI6ICIiLCAicmVzb3VyY2VJZCI6ICIiLCAicHJvamVjdFJlc291cmNlSWQiOiAiIiwgImVuZHBvaW50IjogIiJ9LCAiY29kZVJvdXRlIjogWyJhaS1wcm9qZWN0cy1zZGsiLCAicHl0aG9uIiwgImRlZmF1bHQtYXp1cmUtYXV0aCIsICJlbmRwb2ludCJdfQ==) |
+| [](https://codespaces.new/microsoft/Modernize-your-Code-Solution-Accelerator) | [](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Modernize-your-Code-Solution-Accelerator) | [&message=Open&color=blue&logo=visualstudiocode&logoColor=white)](https://vscode.dev/azure/?vscode-azure-exp=foundry&agentPayload=eyJiYXNlVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvTW9kZXJuaXplLXlvdXItY29kZS1zb2x1dGlvbi1hY2NlbGVyYXRvci9yZWZzL2hlYWRzL21haW4vaW5mcmEvdnNjb2RlX3dlYiIsICJpbmRleFVybCI6ICIvaW5kZXguanNvbiIsICJ2YXJpYWJsZXMiOiB7ImFnZW50SWQiOiAiIiwgImNvbm5lY3Rpb25TdHJpbmciOiAiIiwgInRocmVhZElkIjogIiIsICJ1c2VyTWVzc2FnZSI6ICIiLCAicGxheWdyb3VuZE5hbWUiOiAiIiwgImxvY2F0aW9uIjogIiIsICJzdWJzY3JpcHRpb25JZCI6ICIiLCAicmVzb3VyY2VJZCI6ICIiLCAicHJvamVjdFJlc291cmNlSWQiOiAiIiwgImVuZHBvaW50IjogIiJ9LCAiY29kZVJvdXRlIjogWyJhaS1wcm9qZWN0cy1zZGsiLCAicHl0aG9uIiwgImRlZmF1bHQtYXp1cmUtYXV0aCIsICJlbmRwb2ludCJdfQ==) |
|---|---|---|
-
> **Note**: Some tenants may have additional security restrictions that run periodically and could impact the application (e.g., blocking public network access). If you experience issues or the application stops working, check if these restrictions are the cause. In such cases, consider deploying the WAF-supported version to ensure compliance. To configure, [Click here](./docs/DeploymentGuide.md#31-choose-deployment-type-optional).
-> ⚠️ **Important: Check Azure OpenAI Quota Availability**
-
To ensure sufficient quota is available in your subscription, please follow [quota check instructions guide](./docs/quota_check.md) before you deploy the solution.
+> ⚠️ **Important: Check Azure OpenAI Quota Availability**
+> To ensure sufficient quota is available in your subscription, please follow [quota check instructions guide](./docs/quota_check.md) before you deploy the solution.
-
+## Guidance
-### Prerequisites and Costs
+### Prerequisites and costs
To deploy this solution accelerator, ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the necessary permissions to create **resource groups, resources, app registrations, and assign roles at the resource group level**. This should include Contributor role at the subscription level and Role Based Access Control role on the subscription and/or resource group level. Follow the steps in [Azure Account Set Up](./docs/AzureAccountSetUp.md).
-Check the [Azure Products by Region](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/?products=all®ions=all) page and select a **region** where the following services are available: Azure AI Foundry, Azure OpenAI Service, and GPT Model Capacity.
-
Here are some example regions where the services are available: East US, East US2, Japan East, UK South, Sweden Central.
+Check the [Azure Products by Region](https://azure.microsoft.com/en-us/explore/global-infrastructure/products-by-region/?products=all®ions=all) page and select a **region** where the following services are available: Azure AI Foundry, Azure OpenAI Service, and GPT Model Capacity.
+
Pricing varies per region and usage, so it isn't possible to predict exact costs for your usage. The majority of the Azure resources used in this infrastructure are on usage-based pricing tiers. However, Azure Container Registry has a fixed cost per registry per day.
Use the [Azure pricing calculator](https://azure.microsoft.com/en-us/pricing/calculator) to calculate the cost of this solution in your subscription.
+>⚠️ **Important:** To avoid unnecessary costs, remember to take down your app if it's no longer in use,
+either by deleting the resource group in the Portal or running `azd down`.
+
+## Resources
+
| Product | Description | Cost |
|---|---|---|
| [Azure AI Foundry](https://learn.microsoft.com/azure/ai-studio/) | Used for AI agent orchestration and management | [Pricing](https://azure.microsoft.com/pricing/details/ai-studio/) |
@@ -116,21 +123,15 @@ Use the [Azure pricing calculator](https://azure.microsoft.com/en-us/pricing/cal
| [Azure Storage Account](https://learn.microsoft.com/azure/storage/) | Stores SQL files and processing artifacts | [Pricing](https://azure.microsoft.com/pricing/details/storage/blobs/) |
| [Azure Container Registry](https://learn.microsoft.com/azure/container-registry/) | Stores container images for deployment | [Pricing](https://azure.microsoft.com/pricing/details/container-registry/) |
-
+---
->⚠️ **Important:** To avoid unnecessary costs, remember to take down your app if it's no longer in use,
-either by deleting the resource group in the Portal or running `azd down`.
+
-
-
-Business Scenario
-
+## Business scenario
||
|---|
-
-
Companies maintaining and modernizing their data estates often face large migration projects. They may have volumes of files in various dialects, which need to be translated into a modern alternative. Some of the challenges they face include:
- Difficulty analyzing and maintaining legacy systems due to missing documentation
@@ -142,36 +143,41 @@ By using the *Modernize your code* solution accelerator, users can automate this
For an in-depth look at the applicability of using multiple agents for this code modernization use case, please see the [supporting AI Research paper](./docs/modernize_report.pdf).
-The sample data used in this repository is synthetic and generated using Azure Open AI service. The data is intended for use as sample data only.
-
⚠️ The sample data used in this repository is synthetic and generated using Azure OpenAI service. The data is intended for use as sample data only.
### Business value
+
+
Click to learn more about what value this solution provides
- - **Accelerated Migration**
- Automate the translation of SQL queries, significantly reducing migration time and effort.
+ - **Accelerated Migration**
+
+Automate the translation of SQL queries, significantly reducing migration time and effort.
- - **Error Reduction**
- Multi-agent validation ensures accurate translations and maintains data integrity.
+- **Error Reduction**
- - **Knowledge Preservation**
- Captures and preserves business logic during the modernization process.
+Multi-agent validation ensures accurate translations and maintains data integrity.
- - **Cost Efficiency**
- Reduces reliance on specialized legacy system expertise and manual translation efforts.
+- **Knowledge Preservation**
- - **Standardization**
- Ensures consistent query translation across the organization.
+Captures and preserves business logic during the modernization process.
+
+- **Cost Efficiency**
+
+Reduces reliance on specialized legacy system expertise and manual translation efforts.
+
+- **Standardization**
+
+Ensures consistent query translation across the organization.
-
+---
+
+
-
-Supporting documentation
-
+## Supporting documentation
### Security guidelines
@@ -181,23 +187,22 @@ This template uses [Managed Identity](https://learn.microsoft.com/entra/identity
To ensure continued best practices in your own repository, we recommend that anyone creating solutions based on our templates ensure that the [Github secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning) setting is enabled.
-You may want to consider additional security measures, such as:
-
-* Enabling Microsoft Defender for Cloud to [secure your Azure resources](https://learn.microsoft.com/en-us/azure/defender-for-cloud/).
-* Protecting the Azure Container Apps instance with a [firewall](https://learn.microsoft.com/azure/container-apps/waf-app-gateway) and/or [Virtual Network](https://learn.microsoft.com/azure/container-apps/networking?tabs=workload-profiles-env%2Cazure-cli).
+Additional security considerations include:
-
+- Enabling [Microsoft Defender for Cloud](https://learn.microsoft.com/en-us/azure/defender-for-cloud/) to monitor and secure Azure resources.
+- Protecting the Azure Container Apps instance with a [firewall](https://learn.microsoft.com/azure/container-apps/waf-app-gateway) and/or [Virtual Network](https://learn.microsoft.com/azure/container-apps/networking?tabs=workload-profiles-env%2Cazure-cli).
### Cross references
+
Check out similar solution accelerators
| Solution Accelerator | Description |
|---|---|
-| [Documen Knowledge Mining](https://github.com/microsoft/Document-Knowledge-Mining-Solution-Accelerator) | Extract structured information from unstructured documents using AI |
+| [Document Knowledge Mining](https://github.com/microsoft/Document-Knowledge-Mining-Solution-Accelerator) | Extract structured information from unstructured documents using AI |
| [Multi Agent Custom Automation Engine Solution Accelerator](https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator/tree/main) | An AI-driven orchestration system that manages a group of AI agents to accomplish tasks based on user input |
| [Conversation Knowledge Mining](https://github.com/microsoft/Conversation-Knowledge-Mining-Solution-Accelerator) | Enable organizations to derive insights from volumes of conversational data using generative AI |
-
+
💡 Want to get familiar with Microsoft's AI Engineering best practices? Check out our playbook to learn more
@@ -211,21 +216,18 @@ Check out similar solution accelerators
Have questions, find a bug, or want to request a feature? [Submit a new issue](https://github.com/microsoft/Modernize-your-Code-Solution-Accelerator/issues) on this repo and we'll connect.
-
+## Responsible AI Transparency FAQ
-## Responsible AI Transparency FAQ
Please refer to [Transparency FAQ](./TRANSPARENCY_FAQS.md) for responsible AI transparency details of this solution accelerator.
-
-
## Disclaimers
-To the extent that the Software includes components or code used in or derived from Microsoft products or services, including without limitation Microsoft Azure Services (collectively, "Microsoft Products and Services"), you must also comply with the Product Terms applicable to such Microsoft Products and Services. You acknowledge and agree that the license governing the Software does not grant you a license or other right to use Microsoft Products and Services. Nothing in the license or this ReadMe file will serve to supersede, amend, terminate or modify any terms in the Product Terms for any Microsoft Products and Services.
+To the extent that the Software includes components or code used in or derived from Microsoft products or services, including without limitation Microsoft Azure Services (collectively, "Microsoft Products and Services"), you must also comply with the Product Terms applicable to such Microsoft Products and Services. You acknowledge and agree that the license governing the Software does not grant you a license or other right to use Microsoft Products and Services. Nothing in the license or this ReadMe file will serve to supersede, amend, terminate or modify any terms in the Product Terms for any Microsoft Products and Services.
-You must also comply with all domestic and international export laws and regulations that apply to the Software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit https://aka.ms/exporting.
+You must also comply with all domestic and international export laws and regulations that apply to the Software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit https://aka.ms/exporting.
-You acknowledge that the Software and Microsoft Products and Services (1) are not designed, intended or made available as a medical device(s), and (2) are not designed or intended to be a substitute for professional medical advice, diagnosis, treatment, or judgment and should not be used to replace or as a substitute for professional medical advice, diagnosis, treatment, or judgment. Customer is solely responsible for displaying and/or obtaining appropriate consents, warnings, disclaimers, and acknowledgements to end users of Customer's implementation of the Online Services.
+You acknowledge that the Software and Microsoft Products and Services (1) are not designed, intended or made available as a medical device(s), and (2) are not designed or intended to be a substitute for professional medical advice, diagnosis, treatment, or judgment and should not be used to replace or as a substitute for professional medical advice, diagnosis, treatment, or judgment. Customer is solely responsible for displaying and/or obtaining appropriate consents, warnings, disclaimers, and acknowledgements to end users of Customer's implementation of the Online Services.
-You acknowledge the Software is not subject to SOC 1 and SOC 2 compliance audits. No Microsoft technology, nor any of its component technologies, including the Software, is intended or made available as a substitute for the professional advice, opinion, or judgement of a certified financial services professional. Do not use the Software to replace, substitute, or provide professional financial advice or judgment.
+You acknowledge the Software is not subject to SOC 1 and SOC 2 compliance audits. No Microsoft technology, nor any of its component technologies, including the Software, is intended or made available as a substitute for the professional advice, opinion, or judgement of a certified financial services professional. Do not use the Software to replace, substitute, or provide professional financial advice or judgment.
-BY ACCESSING OR USING THE SOFTWARE, YOU ACKNOWLEDGE THAT THE SOFTWARE IS NOT DESIGNED OR INTENDED TO SUPPORT ANY USE IN WHICH A SERVICE INTERRUPTION, DEFECT, ERROR, OR OTHER FAILURE OF THE SOFTWARE COULD RESULT IN THE DEATH OR SERIOUS BODILY INJURY OF ANY PERSON OR IN PHYSICAL OR ENVIRONMENTAL DAMAGE (COLLECTIVELY, "HIGH-RISK USE"), AND THAT YOU WILL ENSURE THAT, IN THE EVENT OF ANY INTERRUPTION, DEFECT, ERROR, OR OTHER FAILURE OF THE SOFTWARE, THE SAFETY OF PEOPLE, PROPERTY, AND THE ENVIRONMENT ARE NOT REDUCED BELOW A LEVEL THAT IS REASONABLY, APPROPRIATE, AND LEGAL, WHETHER IN GENERAL OR IN A SPECIFIC INDUSTRY. BY ACCESSING THE SOFTWARE, YOU FURTHER ACKNOWLEDGE THAT YOUR HIGH-RISK USE OF THE SOFTWARE IS AT YOUR OWN RISK.
+BY ACCESSING OR USING THE SOFTWARE, YOU ACKNOWLEDGE THAT THE SOFTWARE IS NOT DESIGNED OR INTENDED TO SUPPORT ANY USE IN WHICH A SERVICE INTERRUPTION, DEFECT, ERROR, OR OTHER FAILURE OF THE SOFTWARE COULD RESULT IN THE DEATH OR SERIOUS BODILY INJURY OF ANY PERSON OR IN PHYSICAL OR ENVIRONMENTAL DAMAGE (COLLECTIVELY, "HIGH-RISK USE"), AND THAT YOU WILL ENSURE THAT, IN THE EVENT OF ANY INTERRUPTION, DEFECT, ERROR, OR OTHER FAILURE OF THE SOFTWARE, THE SAFETY OF PEOPLE, PROPERTY, AND THE ENVIRONMENT ARE NOT REDUCED BELOW A LEVEL THAT IS REASONABLY, APPROPRIATE, AND LEGAL, WHETHER IN GENERAL OR IN A SPECIFIC INDUSTRY. BY ACCESSING THE SOFTWARE, YOU FURTHER ACKNOWLEDGE THAT YOUR HIGH-RISK USE OF THE SOFTWARE IS AT YOUR OWN RISK.
diff --git a/azure.yaml b/azure.yaml
index 48c2f13a..79608216 100644
--- a/azure.yaml
+++ b/azure.yaml
@@ -4,7 +4,6 @@ metadata:
requiredVersions:
azd: '>= 1.18.0 != 1.23.9'
- bicep: '>= 0.33.0'
parameters:
AzureAiServiceLocation:
@@ -22,4 +21,4 @@ deployment:
parameters:
AzureAiServiceLocation: ${{ parameters.AzureAiServiceLocation }}
Prefix: ${{ parameters.Prefix }}
- baseUrl: ${{ parameters.baseUrl }}
+ baseUrl: ${{ parameters.baseUrl }}
\ No newline at end of file
diff --git a/infra/main.bicep b/infra/main.bicep
index 8933fb94..57fe519d 100644
--- a/infra/main.bicep
+++ b/infra/main.bicep
@@ -118,9 +118,6 @@ param existingFoundryProjectResourceId string = ''
@description('Optional. Use this parameter to use an existing Log Analytics workspace resource ID. Defaults to empty string.')
param existingLogAnalyticsWorkspaceId string = ''
-@description('Optional. AI model deployments array for quota validation scripts. Not used directly by the template.')
-param aiModelDeployments array = []
-
var existingTags = resourceGroup().tags ?? {}
var allTags = union(
@@ -159,7 +156,7 @@ param createdBy string = contains(deployer(), 'userPrincipalName')? split(deploy
// ========== Resource Group Tag ========== //
-resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = {
+resource resourceGroupTags 'Microsoft.Resources/tags@2025-04-01' = {
name: 'default'
properties: {
tags: union(
@@ -175,7 +172,7 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = {
}
#disable-next-line no-deployments-resources
-resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableTelemetry) {
+resource avmTelemetry 'Microsoft.Resources/deployments@2025-04-01' = if (enableTelemetry) {
name: take(
'46d3xbcp.ptn.sa-modernizeyourcode.${replace('-..--..-', '.', '-')}.${substring(uniqueString(deployment().name, location), 0, 4)}',
64
@@ -196,7 +193,7 @@ resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableT
}
}
-module appIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.4.2' = {
+module appIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.5.0' = {
name: take('avm.res.managed-identity.user-assigned-identity.${solutionSuffix}', 64)
params: {
name: 'id-${solutionSuffix}'
@@ -212,13 +209,13 @@ var existingLawSubscription = useExistingLogAnalytics ? split(existingLogAnalyti
var existingLawResourceGroup = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[4] : ''
var existingLawName = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[8] : ''
-resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = if (useExistingLogAnalytics) {
+resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' existing = if (useExistingLogAnalytics) {
name: existingLawName
scope: resourceGroup(existingLawSubscription, existingLawResourceGroup)
}
// Deploy new Log Analytics workspace only if required and not using existing
-module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.12.0' = if ((enableMonitoring || enablePrivateNetworking) && !useExistingLogAnalytics) {
+module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.15.0' = if ((enableMonitoring || enablePrivateNetworking) && !useExistingLogAnalytics) {
name: take('avm.res.operational-insights.workspace.${solutionSuffix}', 64)
params: {
name: 'log-${solutionSuffix}'
@@ -229,7 +226,7 @@ module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0
tags: allTags
enableTelemetry: enableTelemetry
// WAF aligned configuration for Redundancy
- dailyQuotaGb: enableRedundancy ? 10 : null //WAF recommendation: 10 GB per day is a good starting point for most workloads
+ dailyQuotaGb: enableRedundancy ? '10' : null //WAF recommendation: 10 GB per day is a good starting point for most workloads
replication: enableRedundancy
? {
enabled: true
@@ -278,11 +275,9 @@ module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0
// Log Analytics workspace ID, customer ID, and shared key (existing or new)
var logAnalyticsWorkspaceResourceId = useExistingLogAnalytics ? existingLogAnalyticsWorkspaceId : logAnalyticsWorkspace!.outputs.resourceId
-var LogAnalyticsPrimarySharedKey string = useExistingLogAnalytics? existingLogAnalyticsWorkspace.listKeys().primarySharedKey : logAnalyticsWorkspace.outputs.primarySharedKey
-var LogAnalyticsWorkspaceId = useExistingLogAnalytics? existingLogAnalyticsWorkspace.properties.customerId : logAnalyticsWorkspace!.outputs.logAnalyticsWorkspaceId
var logAnalyticsWorkspaceName = useExistingLogAnalytics ? existingLawName : logAnalyticsWorkspace!.outputs.name
-module applicationInsights 'br/public:avm/res/insights/component:0.7.0' = if (enableMonitoring) {
+module applicationInsights 'br/public:avm/res/insights/component:0.7.1' = if (enableMonitoring) {
name: take('avm.res.insights.component.${solutionSuffix}', 64)
params: {
name: 'appi-${solutionSuffix}'
@@ -303,11 +298,11 @@ module applicationInsights 'br/public:avm/res/insights/component:0.7.0' = if (en
// ========== Data Collection Endpoint (DCE) ========== //
// Required for Azure Monitor Private Link - provides private ingestion and configuration endpoints
// Per: https://learn.microsoft.com/en-us/azure/azure-monitor/fundamentals/private-link-configure
-module dataCollectionEndpoint 'br/public:avm/res/insights/data-collection-endpoint:0.5.0' = if (enablePrivateNetworking && enableMonitoring) {
+module dataCollectionEndpoint 'br/public:avm/res/insights/data-collection-endpoint:0.5.1' = if (enablePrivateNetworking && enableMonitoring) {
name: take('avm.res.insights.data-collection-endpoint.${solutionSuffix}', 64)
params: {
name: 'dce-${solutionSuffix}'
- location: location
+ location: dataCollectionRulesLocation
kind: 'Windows'
publicNetworkAccess: 'Disabled'
tags: allTags
@@ -366,7 +361,7 @@ var dnsZoneIndex = {
// - Excludes AI-related zones when using with an existing Foundry project
// ===================================================
@batchSize(5)
-module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.0' = [
+module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.1' = [
for (zone, i) in privateDnsZones: if (enablePrivateNetworking) {
name: take('avm.res.network.private-dns-zone.${split(zone, '.')[1]}.${solutionSuffix}', 64)
params: {
@@ -388,7 +383,7 @@ module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.0' = [
// Step 2: Connect Azure Monitor resources (LAW, Application Insights, DCE) to the AMPLS
// Step 3: Connect AMPLS to a private endpoint with required DNS zones
// Per: https://learn.microsoft.com/en-us/azure/azure-monitor/fundamentals/private-link-configure
-module azureMonitorPrivateLinkScope 'br/public:avm/res/insights/private-link-scope:0.6.0' = if (enablePrivateNetworking) {
+module azureMonitorPrivateLinkScope 'br/public:avm/res/insights/private-link-scope:0.7.2' = if (enablePrivateNetworking) {
name: take('avm.res.insights.private-link-scope.${solutionSuffix}', 64)
#disable-next-line no-unnecessary-dependson
dependsOn: [logAnalyticsWorkspace, applicationInsights, dataCollectionEndpoint, virtualNetwork]
@@ -455,7 +450,7 @@ module azureMonitorPrivateLinkScope 'br/public:avm/res/insights/private-link-sco
// Azure Bastion Host
var bastionHostName = 'bas-${solutionSuffix}'
-module bastionHost 'br/public:avm/res/network/bastion-host:0.8.0' = if (enablePrivateNetworking) {
+module bastionHost 'br/public:avm/res/network/bastion-host:0.8.2' = if (enablePrivateNetworking) {
name: take('avm.res.network.bastion-host.${bastionHostName}', 64)
params: {
name: bastionHostName
@@ -478,14 +473,14 @@ module bastionHost 'br/public:avm/res/network/bastion-host:0.8.0' = if (enablePr
enableTelemetry: enableTelemetry
publicIPAddressObject: {
name: 'pip-${bastionHostName}'
- zones: []
+ availabilityZones: []
}
}
}
// ========== Jumpbox Virtual machine ========== //
var maintenanceConfigurationResourceName = 'mc-${solutionSuffix}'
-module maintenanceConfiguration 'br/public:avm/res/maintenance/maintenance-configuration:0.3.2' = if (enablePrivateNetworking) {
+module maintenanceConfiguration 'br/public:avm/res/maintenance/maintenance-configuration:0.4.0' = if (enablePrivateNetworking) {
name: take('avm.res.compute.virtual-machine.${maintenanceConfigurationResourceName}', 64)
params: {
name: maintenanceConfigurationResourceName
@@ -525,7 +520,7 @@ var dataCollectionRulesResourceName = 'dcr-${solutionSuffix}'
var dataCollectionRulesLocation = useExistingLogAnalytics
? existingLogAnalyticsWorkspace!.location
: logAnalyticsWorkspace!.outputs.location
-module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-rule:0.8.0' = if (enablePrivateNetworking && enableMonitoring) {
+module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-rule:0.11.0' = if (enablePrivateNetworking && enableMonitoring) {
name: take('avm.res.insights.data-collection-rule.${dataCollectionRulesResourceName}', 64)
params: {
name: dataCollectionRulesResourceName
@@ -630,7 +625,7 @@ module proximityPlacementGroup 'br/public:avm/res/compute/proximity-placement-gr
var virtualMachineResourceName = take('vm-${solutionSuffix}', 15)
-module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (enablePrivateNetworking) {
+module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.22.0' = if (enablePrivateNetworking) {
name: take('avm.res.compute.virtual-machine.${virtualMachineResourceName}', 64)
params: {
name: virtualMachineResourceName
@@ -639,7 +634,7 @@ module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (e
enableTelemetry: enableTelemetry
computerName: take(virtualMachineResourceName, 15)
osType: 'Windows'
- vmSize: !empty(vmSize) ? vmSize : 'Standard_D2s_v5'
+ vmSize: !empty(vmSize) ? vmSize! : 'Standard_D2s_v5'
adminUsername: !empty(vmAdminUsername) ? vmAdminUsername : 'JumpboxAdminUser'
adminPassword: !empty(vmAdminPassword) ? vmAdminPassword : 'JumpboxAdminP@ssw0rd1234!'
managedIdentities: {
@@ -647,10 +642,10 @@ module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (e
}
patchMode: 'AutomaticByPlatform'
bypassPlatformSafetyChecksOnUserSchedule: true
- maintenanceConfigurationResourceId: maintenanceConfiguration.outputs.resourceId
+ maintenanceConfigurationResourceId: maintenanceConfiguration!.outputs.resourceId
enableAutomaticUpdates: true
encryptionAtHost: false
- proximityPlacementGroupResourceId: proximityPlacementGroup.outputs.resourceId
+ proximityPlacementGroupResourceId: proximityPlacementGroup!.outputs.resourceId
availabilityZone: enableRedundancy ? 1 : -1
imageReference: {
publisher: 'microsoft-dsvm'
@@ -716,7 +711,7 @@ module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (e
? {
dataCollectionRuleAssociations: [
{
- dataCollectionRuleResourceId: windowsVmDataCollectionRules.outputs.resourceId
+ dataCollectionRuleResourceId: windowsVmDataCollectionRules!.outputs.resourceId
name: 'send-${logAnalyticsWorkspaceName}'
}
]
@@ -747,11 +742,9 @@ module aiServices 'modules/ai-foundry/aifoundry.bicep' = {
privateNetworking: null // Private endpoint is handled by the standalone aiFoundryPrivateEndpoint module
existingFoundryProjectResourceId: existingFoundryProjectResourceId
disableLocalAuth: true //Should be set to true for WAF aligned configuration
- customSubDomainName: 'aif-${solutionSuffix}'
apiProperties: {
//staticsEnabled: false
}
- allowProjectManagement: true
managedIdentities: {
systemAssigned: true
}
@@ -786,7 +779,7 @@ module aiServices 'modules/ai-foundry/aifoundry.bicep' = {
var aiFoundryAiServicesResourceName = 'aif-${solutionSuffix}'
var useExistingAiFoundryAiProject = !empty(existingFoundryProjectResourceId)
-module aiFoundryPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.8.1' = if (enablePrivateNetworking && !useExistingAiFoundryAiProject) {
+module aiFoundryPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.12.0' = if (enablePrivateNetworking && !useExistingAiFoundryAiProject) {
name: take('pep-${aiFoundryAiServicesResourceName}-deployment', 64)
params: {
name: 'pep-${aiFoundryAiServicesResourceName}'
@@ -914,7 +907,7 @@ module cosmosDb 'modules/cosmosDb.bicep' = {
var containerAppsEnvironmentName = 'cae-${solutionSuffix}'
-module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.3' = {
+module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.13.1' = {
name: take('avm.res.app.managed-environment.${solutionSuffix}', 64)
#disable-next-line no-unnecessary-dependson
dependsOn: [applicationInsights, logAnalyticsWorkspace, virtualNetwork] // required due to optional flags that could change dependency
@@ -930,16 +923,17 @@ module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.
appIdentity.outputs.resourceId
]
}
- appInsightsConnectionString: enableMonitoring ? applicationInsights.outputs.connectionString : null
+ appInsightsConnectionString: enableMonitoring ? applicationInsights!.outputs.connectionString : null
appLogsConfiguration: enableMonitoring
? {
destination: 'log-analytics'
+ logAnalyticsWorkspaceResourceId: logAnalyticsWorkspaceResourceId
logAnalyticsConfiguration: {
- customerId: LogAnalyticsWorkspaceId
- sharedKey: LogAnalyticsPrimarySharedKey
+ customerId: useExistingLogAnalytics ? existingLogAnalyticsWorkspace!.properties.customerId : logAnalyticsWorkspace!.outputs.logAnalyticsWorkspaceId
+ sharedKey: useExistingLogAnalytics ? existingLogAnalyticsWorkspace!.listKeys().primarySharedKey : logAnalyticsWorkspace.outputs.primarySharedKey
}
}
- : {}
+ : null
workloadProfiles: enablePrivateNetworking
? [
// NOTE: workload profiles are required for private networking
@@ -954,7 +948,7 @@ module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.
}
}
-module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
+module containerAppBackend 'br/public:avm/res/app/container-app:0.22.0' = {
name: take('avm.res.app.container-app.backend.${solutionSuffix}', 64)
#disable-next-line no-unnecessary-dependson
dependsOn: [applicationInsights] // required due to optional flags that could change dependency
@@ -1083,11 +1077,11 @@ module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
? [
{
name: 'APPLICATIONINSIGHTS_INSTRUMENTATION_KEY'
- value: applicationInsights.outputs.instrumentationKey
+ value: applicationInsights!.outputs.instrumentationKey
}
{
name: 'APPLICATIONINSIGHTS_CONNECTION_STRING'
- value: applicationInsights.outputs.connectionString
+ value: applicationInsights!.outputs.connectionString
}
]
: []
@@ -1135,7 +1129,7 @@ module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
}
}
-module containerAppFrontend 'br/public:avm/res/app/container-app:0.19.0' = {
+module containerAppFrontend 'br/public:avm/res/app/container-app:0.22.0' = {
name: take('avm.res.app.container-app.frontend.${solutionSuffix}', 64)
params: {
name: take('ca-frontend-${solutionSuffix}', 32)
@@ -1194,7 +1188,7 @@ output resourceGroupName string = resourceGroup().name
output WEB_APP_URL string = 'https://${containerAppFrontend.outputs.fqdn}'
output COSMOSDB_ENDPOINT string = cosmosDb.outputs.endpoint
output AZURE_BLOB_ACCOUNT_NAME string = storageAccount.outputs.name
-output AZURE_BLOB_ENDPOINT string = 'https://${storageAccount.outputs.name}.blob.core.windows.net/'
+output AZURE_BLOB_ENDPOINT string = 'https://${storageAccount.outputs.name}.blob.${environment().suffixes.storage}/'
output AZURE_AI_AGENT_PROJECT_NAME string = aiServices.outputs.aiProjectInfo.name
output AZURE_AI_AGENT_ENDPOINT string = aiServices.outputs.aiProjectInfo.apiEndpoint
output AZURE_AI_AGENT_PROJECT_CONNECTION_STRING string = aiServices.outputs.aiProjectInfo.apiEndpoint
@@ -1208,7 +1202,7 @@ output COSMOSDB_DATABASE string = cosmosDb.outputs.databaseName
output COSMOSDB_BATCH_CONTAINER string = cosmosDb.outputs.containerNames.batch
output COSMOSDB_FILE_CONTAINER string = cosmosDb.outputs.containerNames.file
output COSMOSDB_LOG_CONTAINER string = cosmosDb.outputs.containerNames.log
-output APPLICATIONINSIGHTS_CONNECTION_STRING string = enableMonitoring ? applicationInsights.outputs.connectionString : ''
+output APPLICATIONINSIGHTS_CONNECTION_STRING string = enableMonitoring ? applicationInsights!.outputs.connectionString : ''
output MIGRATOR_AGENT_MODEL_DEPLOY string = modelDeployment.name
output PICKER_AGENT_MODEL_DEPLOY string = modelDeployment.name
output FIXER_AGENT_MODEL_DEPLOY string = modelDeployment.name
diff --git a/infra/main.json b/infra/main.json
index 2eb52454..c2042a41 100644
--- a/infra/main.json
+++ b/infra/main.json
@@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "13589960712112840698"
+ "version": "0.42.1.51946",
+ "templateHash": "3984182123932774684"
},
"name": "Modernize Your Code Solution Accelerator",
"description": "CSA CTO Gold Standard Solution Accelerator for Modernize Your Code. \r\n"
@@ -275,7 +275,7 @@
"resources": {
"resourceGroupTags": {
"type": "Microsoft.Resources/tags",
- "apiVersion": "2021-04-01",
+ "apiVersion": "2025-04-01",
"name": "default",
"properties": {
"tags": "[union(variables('existingTags'), variables('allTags'), createObject('TemplateName', 'Code Modernization', 'Type', if(parameters('enablePrivateNetworking'), 'WAF', 'Non-WAF'), 'CreatedBy', parameters('createdBy')))]"
@@ -284,7 +284,7 @@
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
+ "apiVersion": "2025-04-01",
"name": "[take(format('46d3xbcp.ptn.sa-modernizeyourcode.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4)), 64)]",
"properties": {
"mode": "Incremental",
@@ -305,7 +305,7 @@
"condition": "[variables('useExistingLogAnalytics')]",
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2020-08-01",
+ "apiVersion": "2025-07-01",
"subscriptionId": "[variables('existingLawSubscription')]",
"resourceGroup": "[variables('existingLawResourceGroup')]",
"name": "[variables('existingLawName')]"
@@ -340,8 +340,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "4802029174070596736"
+ "version": "0.39.26.7824",
+ "templateHash": "7591858083424858339"
},
"name": "User Assigned Identities",
"description": "This module deploys a User Assigned Identity."
@@ -553,6 +553,17 @@
"metadata": {
"description": "Optional. Enable/Disable usage telemetry for module."
}
+ },
+ "isolationScope": {
+ "type": "string",
+ "nullable": true,
+ "allowedValues": [
+ "None",
+ "Regional"
+ ],
+ "metadata": {
+ "description": "Optional. Enum to configure regional restrictions on identity assignment, as necessary. Allowed values: \"None\", \"Regional\"."
+ }
}
},
"variables": {
@@ -578,7 +589,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.managedidentity-userassignedidentity.{0}.{1}', replace('0.4.2', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.managedidentity-userassignedidentity.{0}.{1}', replace('0.5.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -599,7 +610,8 @@
"apiVersion": "2024-11-30",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
- "tags": "[parameters('tags')]"
+ "tags": "[parameters('tags')]",
+ "properties": "[if(not(equals(parameters('isolationScope'), null())), createObject('isolationScope', parameters('isolationScope')), createObject())]"
},
"userAssignedIdentity_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
@@ -646,7 +658,7 @@
},
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
- "name": "[format('{0}-UserMSI-FederatedIdentityCred-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "name": "[format('{0}-UserMSI-FederatedIdentityCred-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -675,8 +687,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "8235783049087377232"
+ "version": "0.39.26.7824",
+ "templateHash": "1387931959101373036"
},
"name": "User Assigned Identity Federated Identity Credential",
"description": "This module deploys a User Assigned Identity Federated Identity Credential."
@@ -836,7 +848,7 @@
"enableTelemetry": {
"value": "[parameters('enableTelemetry')]"
},
- "dailyQuotaGb": "[if(parameters('enableRedundancy'), createObject('value', 10), createObject('value', null()))]",
+ "dailyQuotaGb": "[if(parameters('enableRedundancy'), createObject('value', '10'), createObject('value', null()))]",
"replication": "[if(parameters('enableRedundancy'), createObject('value', createObject('enabled', true(), 'location', variables('replicaLocation'))), createObject('value', null()))]",
"publicNetworkAccessForIngestion": "[if(parameters('enablePrivateNetworking'), createObject('value', 'Disabled'), createObject('value', 'Enabled'))]",
"publicNetworkAccessForQuery": "[if(parameters('enablePrivateNetworking'), createObject('value', 'Disabled'), createObject('value', 'Enabled'))]",
@@ -849,8 +861,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "1749032521457140145"
+ "version": "0.39.26.7824",
+ "templateHash": "14099489006827800075"
},
"name": "Log Analytics Workspaces",
"description": "This module deploys a Log Analytics Workspace."
@@ -1041,21 +1053,21 @@
"name": {
"type": "string",
"metadata": {
- "description": "Required. Name of the linked service."
+ "description": "Required. Name of the linked service. E.g., 'Automation' for an automation account, or 'Cluster' for a Log Analytics Cluster."
}
},
"resourceId": {
"type": "string",
"nullable": true,
"metadata": {
- "description": "Optional. The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require read access."
+ "description": "Optional. The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require read access (e.g., Automation Accounts)."
}
},
"writeAccessResourceId": {
"type": "string",
"nullable": true,
"metadata": {
- "description": "Optional. The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require write access."
+ "description": "Optional. The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require write access (e.g., Log Analytics Clusters)."
}
}
},
@@ -1291,7 +1303,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.OperationalInsights/workspaces/dataSources@2025-02-01#properties/tags"
+ "source": "Microsoft.OperationalInsights/workspaces/dataSources@2025-07-01#properties/tags"
},
"description": "Optional. Tags to configure in the resource."
},
@@ -1343,15 +1355,19 @@
"retentionInDays": {
"type": "int",
"nullable": true,
+ "minValue": 4,
+ "maxValue": 730,
"metadata": {
- "description": "Optional. The retention in days for the table."
+ "description": "Optional. The retention in days for the table. Don't provide to use the default workspace retention."
}
},
"totalRetentionInDays": {
"type": "int",
"nullable": true,
+ "minValue": 4,
+ "maxValue": 2555,
"metadata": {
- "description": "Optional. The total retention in days for the table."
+ "description": "Optional. The total retention in days for the table. Don't provide use the default table retention."
}
},
"roleAssignments": {
@@ -1544,12 +1560,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -1577,7 +1600,7 @@
"metadata": {
"description": "An AVM-aligned type for a managed identity configuration. To be used if both a system-assigned & user-assigned identities are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -1684,7 +1707,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -1832,7 +1855,7 @@
"Standard"
],
"metadata": {
- "description": "Optional. The name of the SKU."
+ "description": "Optional. The name of the SKU. Must be 'LACluster' to be linked to a Log Analytics cluster."
}
},
"skuCapacityReservationLevel": {
@@ -1941,11 +1964,17 @@
}
},
"dailyQuotaGb": {
- "type": "int",
- "defaultValue": -1,
- "minValue": -1,
+ "type": "string",
+ "defaultValue": "-1",
"metadata": {
- "description": "Optional. The workspace daily quota for ingestion."
+ "description": "Optional. The workspace daily quota for ingestion in GB. Supports decimal values. Example: '0.5' for 0.5 GB, '2' for 2 GB. Default is '-1' (no limit)."
+ }
+ },
+ "defaultDataCollectionRuleResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The resource ID of the default Data Collection Rule to use for this workspace. Note: the default DCR is not applicable on workspace creation and the workspace must be listed as a destination in the DCR."
}
},
"publicNetworkAccessForIngestion": {
@@ -1953,7 +1982,8 @@
"defaultValue": "Enabled",
"allowedValues": [
"Enabled",
- "Disabled"
+ "Disabled",
+ "SecuredByPerimeter"
],
"metadata": {
"description": "Optional. The network access type for accessing Log Analytics ingestion."
@@ -1964,7 +1994,8 @@
"defaultValue": "Enabled",
"allowedValues": [
"Enabled",
- "Disabled"
+ "Disabled",
+ "SecuredByPerimeter"
],
"metadata": {
"description": "Optional. The network access type for accessing Log Analytics query."
@@ -2029,7 +2060,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.OperationalInsights/workspaces@2025-02-01#properties/tags"
+ "source": "Microsoft.OperationalInsights/workspaces@2025-07-01#properties/tags"
},
"description": "Optional. Tags of the resource."
},
@@ -2073,7 +2104,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.operationalinsights-workspace.{0}.{1}', replace('0.12.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.operationalinsights-workspace.{0}.{1}', replace('0.15.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -2091,7 +2122,7 @@
},
"logAnalyticsWorkspace": {
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -2109,12 +2140,13 @@
},
"retentionInDays": "[parameters('dataRetention')]",
"workspaceCapping": {
- "dailyQuotaGb": "[parameters('dailyQuotaGb')]"
+ "dailyQuotaGb": "[json(parameters('dailyQuotaGb'))]"
},
"publicNetworkAccessForIngestion": "[parameters('publicNetworkAccessForIngestion')]",
"publicNetworkAccessForQuery": "[parameters('publicNetworkAccessForQuery')]",
"forceCmkForQuery": "[parameters('forceCmkForQuery')]",
- "replication": "[parameters('replication')]"
+ "replication": "[parameters('replication')]",
+ "defaultDataCollectionRuleResourceId": "[parameters('defaultDataCollectionRuleResourceId')]"
},
"identity": "[variables('identity')]"
},
@@ -2162,7 +2194,7 @@
"logAnalyticsWorkspace_sentinelOnboarding": {
"condition": "[and(not(empty(filter(coalesce(parameters('gallerySolutions'), createArray()), lambda('item', startsWith(lambdaVariables('item').name, 'SecurityInsights'))))), parameters('onboardWorkspaceToSentinel'))]",
"type": "Microsoft.SecurityInsights/onboardingStates",
- "apiVersion": "2024-03-01",
+ "apiVersion": "2025-09-01",
"scope": "[format('Microsoft.OperationalInsights/workspaces/{0}', parameters('name'))]",
"name": "default",
"properties": {},
@@ -2178,7 +2210,7 @@
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
- "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]"
+ "notes": "[coalesce(tryGet(parameters('lock'), 'notes'), if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.'))]"
},
"dependsOn": [
"logAnalyticsWorkspace"
@@ -2212,8 +2244,8 @@
"count": "[length(coalesce(parameters('storageInsightsConfigs'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-StorageInsightsConfig-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-StorageInsightsConfig-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -2240,8 +2272,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "1306323182548882150"
+ "version": "0.39.26.7824",
+ "templateHash": "140290971998938797"
},
"name": "Log Analytics Workspace Storage Insight Configs",
"description": "This module deploys a Log Analytics Workspace Storage Insight Config."
@@ -2290,7 +2322,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.OperationalInsights/workspaces/storageInsightConfigs@2025-02-01#properties/tags"
+ "source": "Microsoft.OperationalInsights/workspaces/storageInsightConfigs@2025-07-01#properties/tags"
},
"description": "Optional. Tags to configure in the resource."
},
@@ -2301,18 +2333,18 @@
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[last(split(parameters('storageAccountResourceId'), '/'))]"
},
"workspace": {
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('logAnalyticsWorkspaceName')]"
},
"storageinsightconfig": {
"type": "Microsoft.OperationalInsights/workspaces/storageInsightConfigs",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('logAnalyticsWorkspaceName'), parameters('name'))]",
"tags": "[parameters('tags')]",
"properties": {
@@ -2320,7 +2352,7 @@
"tables": "[parameters('tables')]",
"storageAccount": {
"id": "[parameters('storageAccountResourceId')]",
- "key": "[listKeys('storageAccount', '2024-01-01').keys[0].value]"
+ "key": "[listKeys('storageAccount', '2025-06-01').keys[0].value]"
}
}
}
@@ -2360,8 +2392,8 @@
"count": "[length(coalesce(parameters('linkedServices'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-LinkedService-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-LinkedService-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -2388,8 +2420,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "5230241501765697269"
+ "version": "0.39.26.7824",
+ "templateHash": "14482465616812596213"
},
"name": "Log Analytics Workspace Linked Services",
"description": "This module deploys a Log Analytics Workspace Linked Service."
@@ -2425,7 +2457,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.OperationalInsights/workspaces/linkedServices@2025-02-01#properties/tags"
+ "source": "Microsoft.OperationalInsights/workspaces/linkedServices@2025-07-01#properties/tags"
},
"description": "Optional. Tags to configure in the resource."
},
@@ -2436,12 +2468,12 @@
"workspace": {
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('logAnalyticsWorkspaceName')]"
},
"linkedService": {
"type": "Microsoft.OperationalInsights/workspaces/linkedServices",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('logAnalyticsWorkspaceName'), parameters('name'))]",
"tags": "[parameters('tags')]",
"properties": {
@@ -2485,8 +2517,8 @@
"count": "[length(coalesce(parameters('linkedStorageAccounts'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-LinkedStorageAccount-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-LinkedStorageAccount-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -2510,8 +2542,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "10372135754202496594"
+ "version": "0.39.26.7824",
+ "templateHash": "14864721709229272590"
},
"name": "Log Analytics Workspace Linked Storage Accounts",
"description": "This module deploys a Log Analytics Workspace Linked Storage Account."
@@ -2550,12 +2582,12 @@
"workspace": {
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('logAnalyticsWorkspaceName')]"
},
"linkedStorageAccount": {
"type": "Microsoft.OperationalInsights/workspaces/linkedStorageAccounts",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('logAnalyticsWorkspaceName'), parameters('name'))]",
"properties": {
"storageAccountIds": "[parameters('storageAccountIds')]"
@@ -2597,8 +2629,8 @@
"count": "[length(coalesce(parameters('savedSearches'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-SavedSearch-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-SavedSearch-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -2609,7 +2641,7 @@
"value": "[parameters('name')]"
},
"name": {
- "value": "[format('{0}{1}', coalesce(parameters('savedSearches'), createArray())[copyIndex()].name, uniqueString(deployment().name))]"
+ "value": "[format('{0}{1}', coalesce(parameters('savedSearches'), createArray())[copyIndex()].name, uniqueString(subscription().id, resourceGroup().id))]"
},
"etag": {
"value": "[tryGet(coalesce(parameters('savedSearches'), createArray())[copyIndex()], 'etag')]"
@@ -2643,8 +2675,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "9015459905306126128"
+ "version": "0.39.26.7824",
+ "templateHash": "17904092372918022238"
},
"name": "Log Analytics Workspace Saved Searches",
"description": "This module deploys a Log Analytics Workspace Saved Search."
@@ -2684,7 +2716,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.OperationalInsights/workspaces/savedSearches@2025-02-01#properties/properties/properties/tags"
+ "source": "Microsoft.OperationalInsights/workspaces/savedSearches@2025-07-01#properties/properties/properties/tags"
},
"description": "Optional. Tags to configure in the resource."
},
@@ -2723,12 +2755,12 @@
"workspace": {
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('logAnalyticsWorkspaceName')]"
},
"savedSearch": {
"type": "Microsoft.OperationalInsights/workspaces/savedSearches",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('logAnalyticsWorkspaceName'), parameters('name'))]",
"properties": {
"etag": "[parameters('etag')]",
@@ -2778,8 +2810,8 @@
"count": "[length(coalesce(parameters('dataExports'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-DataExport-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-DataExport-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -2809,8 +2841,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "8586520532175356447"
+ "version": "0.39.26.7824",
+ "templateHash": "17943947755417749524"
},
"name": "Log Analytics Workspace Data Exports",
"description": "This module deploys a Log Analytics Workspace Data Export."
@@ -2892,12 +2924,12 @@
"workspace": {
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]"
},
"dataExport": {
"type": "Microsoft.OperationalInsights/workspaces/dataExports",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('workspaceName'), parameters('name'))]",
"properties": {
"destination": "[parameters('destination')]",
@@ -2941,8 +2973,8 @@
"count": "[length(coalesce(parameters('dataSources'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-DataSource-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-DataSource-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -3002,8 +3034,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "8336916453932906250"
+ "version": "0.39.26.7824",
+ "templateHash": "15360290236166491819"
},
"name": "Log Analytics Workspace Datasources",
"description": "This module deploys a Log Analytics Workspace Data Source."
@@ -3042,7 +3074,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.OperationalInsights/workspaces/dataSources@2025-02-01#properties/tags"
+ "source": "Microsoft.OperationalInsights/workspaces/dataSources@2025-07-01#properties/tags"
},
"description": "Optional. Tags to configure in the resource."
},
@@ -3130,12 +3162,12 @@
"workspace": {
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('logAnalyticsWorkspaceName')]"
},
"dataSource": {
"type": "Microsoft.OperationalInsights/workspaces/dataSources",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('logAnalyticsWorkspaceName'), parameters('name'))]",
"kind": "[parameters('kind')]",
"tags": "[parameters('tags')]",
@@ -3189,8 +3221,8 @@
"count": "[length(coalesce(parameters('tables'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-Table-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-Table-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -3232,8 +3264,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.1.42791",
- "templateHash": "315390662258960765"
+ "version": "0.39.26.7824",
+ "templateHash": "18383178824663161801"
},
"name": "Log Analytics Workspace Tables",
"description": "This module deploys a Log Analytics Workspace Table."
@@ -3517,11 +3549,11 @@
},
"retentionInDays": {
"type": "int",
- "defaultValue": -1,
- "minValue": -1,
+ "nullable": true,
+ "minValue": 4,
"maxValue": 730,
"metadata": {
- "description": "Optional. The table retention in days, between 4 and 730. Setting this property to -1 will default to the workspace retention."
+ "description": "Optional. The table retention in days, between 4 and 730. Don't provide to use the default workspace retention."
}
},
"schema": {
@@ -3540,11 +3572,11 @@
},
"totalRetentionInDays": {
"type": "int",
- "defaultValue": -1,
- "minValue": -1,
+ "nullable": true,
+ "minValue": 4,
"maxValue": 2555,
"metadata": {
- "description": "Optional. The table total retention in days, between 4 and 2555. Setting this property to -1 will default to table retention."
+ "description": "Optional. The table total retention in days, between 4 and 2555. Don't provide use the default table retention."
}
},
"roleAssignments": {
@@ -3582,20 +3614,20 @@
"workspace": {
"existing": true,
"type": "Microsoft.OperationalInsights/workspaces",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]"
},
"table": {
"type": "Microsoft.OperationalInsights/workspaces/tables",
- "apiVersion": "2025-02-01",
+ "apiVersion": "2025-07-01",
"name": "[format('{0}/{1}', parameters('workspaceName'), parameters('name'))]",
"properties": {
"plan": "[parameters('plan')]",
"restoredLogs": "[parameters('restoredLogs')]",
- "retentionInDays": "[parameters('retentionInDays')]",
+ "retentionInDays": "[coalesce(parameters('retentionInDays'), -1)]",
"schema": "[parameters('schema')]",
"searchResults": "[parameters('searchResults')]",
- "totalRetentionInDays": "[parameters('totalRetentionInDays')]"
+ "totalRetentionInDays": "[coalesce(parameters('totalRetentionInDays'), -1)]"
}
},
"table_roleAssignments": {
@@ -3657,8 +3689,8 @@
},
"condition": "[not(empty(parameters('gallerySolutions')))]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-LAW-Solution-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-LAW-Solution-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -3873,7 +3905,7 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('logAnalyticsWorkspace', '2025-02-01', 'full').location]"
+ "value": "[reference('logAnalyticsWorkspace', '2025-07-01', 'full').location]"
},
"systemAssignedMIPrincipalId": {
"type": "string",
@@ -3881,21 +3913,21 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
- "value": "[tryGet(tryGet(reference('logAnalyticsWorkspace', '2025-02-01', 'full'), 'identity'), 'principalId')]"
+ "value": "[tryGet(tryGet(reference('logAnalyticsWorkspace', '2025-07-01', 'full'), 'identity'), 'principalId')]"
},
"primarySharedKey": {
"type": "securestring",
"metadata": {
"description": "The primary shared key of the log analytics workspace."
},
- "value": "[listKeys('logAnalyticsWorkspace', '2025-02-01').primarySharedKey]"
+ "value": "[listKeys('logAnalyticsWorkspace', '2025-07-01').primarySharedKey]"
},
"secondarySharedKey": {
"type": "securestring",
"metadata": {
"description": "The secondary shared key of the log analytics workspace."
},
- "value": "[listKeys('logAnalyticsWorkspace', '2025-02-01').secondarySharedKey]"
+ "value": "[listKeys('logAnalyticsWorkspace', '2025-07-01').secondarySharedKey]"
}
}
}
@@ -3947,8 +3979,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "13842668180838264807"
+ "version": "0.39.26.7824",
+ "templateHash": "17358780145253914698"
},
"name": "Application Insights",
"description": "This component deploys an Application Insights instance."
@@ -4358,7 +4390,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/components@2020-10-01#properties/tags"
+ "source": "Microsoft.Insights/components@2020-02-02#properties/tags"
},
"description": "Optional. Tags of the resource."
},
@@ -4407,7 +4439,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.insights-component.{0}.{1}', replace('0.7.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.insights-component.{0}.{1}', replace('0.7.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -4547,8 +4579,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "9567302051678045750"
+ "version": "0.39.26.7824",
+ "templateHash": "5059808225314360251"
},
"name": "Application Insights Linked Storage Account",
"description": "This component deploys an Application Insights Linked Storage Account."
@@ -4678,9 +4710,7 @@
"name": {
"value": "[format('dce-{0}', variables('solutionSuffix'))]"
},
- "location": {
- "value": "[parameters('location')]"
- },
+ "location": "[if(variables('useExistingLogAnalytics'), createObject('value', reference('existingLogAnalyticsWorkspace', '2025-07-01', 'full').location), createObject('value', reference('logAnalyticsWorkspace').outputs.location.value))]",
"kind": {
"value": "Windows"
},
@@ -4701,12 +4731,11 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.31.92.45157",
- "templateHash": "2803753346410103560"
+ "version": "0.38.33.27573",
+ "templateHash": "13839755435418109557"
},
"name": "Data Collection Endpoints",
- "description": "This module deploys a Data Collection Endpoint.",
- "owner": "Azure/module-maintainers"
+ "description": "This module deploys a Data Collection Endpoint."
},
"definitions": {
"lockType": {
@@ -4730,12 +4759,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.3.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
}
}
},
@@ -4885,10 +4921,13 @@
},
"tags": {
"type": "object",
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionEndpoints@2023-03-11#properties/tags"
+ },
"description": "Optional. Resource tags."
- }
+ },
+ "nullable": true
}
},
"variables": {
@@ -4912,7 +4951,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.insights-datacollectionendpoint.{0}.{1}', replace('0.5.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.insights-datacollectionendpoint.{0}.{1}', replace('0.5.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -4950,7 +4989,7 @@
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
- "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]"
+ "notes": "[coalesce(tryGet(parameters('lock'), 'notes'), if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.'))]"
},
"dependsOn": [
"dataCollectionEndpoint"
@@ -5010,7 +5049,11 @@
}
}
}
- }
+ },
+ "dependsOn": [
+ "existingLogAnalyticsWorkspace",
+ "logAnalyticsWorkspace"
+ ]
},
"virtualNetwork": {
"condition": "[parameters('enablePrivateNetworking')]",
@@ -5052,8 +5095,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "4892991135758906801"
+ "version": "0.42.1.51946",
+ "templateHash": "15922750226218572834"
}
},
"definitions": {
@@ -5477,8 +5520,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.5.1644",
- "templateHash": "11959948740766233645"
+ "version": "0.41.2.15936",
+ "templateHash": "7311263652424030280"
},
"name": "Network Security Groups",
"description": "This module deploys a Network security Group (NSG)."
@@ -5737,7 +5780,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if only logs are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -5774,7 +5817,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -5849,7 +5892,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -5916,7 +5959,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/networkSecurityGroups@2024-07-01#properties/tags"
+ "source": "Microsoft.Network/networkSecurityGroups@2025-05-01#properties/tags"
},
"description": "Optional. Tags of the NSG resource."
},
@@ -5952,7 +5995,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-networksecuritygroup.{0}.{1}', replace('0.5.2', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-networksecuritygroup.{0}.{1}', replace('0.5.3', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -5970,7 +6013,7 @@
},
"networkSecurityGroup": {
"type": "Microsoft.Network/networkSecurityGroups",
- "apiVersion": "2023-11-01",
+ "apiVersion": "2025-05-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -6008,7 +6051,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Network/networkSecurityGroups/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -6025,7 +6068,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.Network/networkSecurityGroups/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', parameters('name')))]",
"properties": {
"copy": [
@@ -6057,7 +6100,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/networkSecurityGroups/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/networkSecurityGroups', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -6100,7 +6143,7 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('networkSecurityGroup', '2023-11-01', 'full').location]"
+ "value": "[reference('networkSecurityGroup', '2025-05-01', 'full').location]"
}
}
}
@@ -6168,8 +6211,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "2664911502866882749"
+ "version": "0.41.2.15936",
+ "templateHash": "11272001757446231867"
},
"name": "Virtual Networks",
"description": "This module deploys a Virtual Network (vNet)."
@@ -6835,6 +6878,17 @@
"metadata": {
"description": "Optional. Indicates if VM protection is enabled for all the subnets in the virtual network."
}
+ },
+ "enablePrivateEndpointVNetPolicies": {
+ "type": "string",
+ "defaultValue": "Disabled",
+ "allowedValues": [
+ "Basic",
+ "Disabled"
+ ],
+ "metadata": {
+ "description": "Optional. Enables high scale private endpoints for the virtual network. This is necessary if the virtual network requires more than 1000 private endpoints or is peered to virtual networks with a total of more than 4000 private endpoints."
+ }
}
},
"variables": {
@@ -6860,7 +6914,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-virtualnetwork.{0}.{1}', replace('0.7.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-virtualnetwork.{0}.{1}', replace('0.8.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -6890,14 +6944,15 @@
"enableDdosProtection": "[not(empty(parameters('ddosProtectionPlanResourceId')))]",
"encryption": "[if(equals(parameters('vnetEncryption'), true()), createObject('enabled', parameters('vnetEncryption'), 'enforcement', parameters('vnetEncryptionEnforcement')), null())]",
"flowTimeoutInMinutes": "[if(not(equals(parameters('flowTimeoutInMinutes'), 0)), parameters('flowTimeoutInMinutes'), null())]",
- "enableVmProtection": "[parameters('enableVmProtection')]"
+ "enableVmProtection": "[parameters('enableVmProtection')]",
+ "privateEndpointVNetPolicies": "[parameters('enablePrivateEndpointVNetPolicies')]"
}
},
"virtualNetwork_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Network/virtualNetworks/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/virtualNetworks', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -6914,7 +6969,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.Network/virtualNetworks/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/virtualNetworks', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', parameters('name')))]",
"properties": {
"copy": [
@@ -6955,7 +7010,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/virtualNetworks/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/virtualNetworks', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/virtualNetworks', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -6978,8 +7033,8 @@
"batchSize": 1
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-subnet-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-subnet-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -7048,8 +7103,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "4996741504223307485"
+ "version": "0.41.2.15936",
+ "templateHash": "13992200806189615656"
},
"name": "Virtual Network Subnets",
"description": "This module deploys a Virtual Network Subnet."
@@ -7305,7 +7360,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-virtualnetworksubnet.{0}.{1}', replace('0.1.3', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-virtualnetworksubnet.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -7363,7 +7418,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/virtualNetworks/{0}/subnets/{1}', parameters('virtualNetworkName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -7435,8 +7490,8 @@
"count": "[length(coalesce(parameters('peerings'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-virtualNetworkPeering-local-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-virtualNetworkPeering-local-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -7474,8 +7529,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13145570087766698031"
+ "version": "0.41.2.15936",
+ "templateHash": "6939030350004475953"
},
"name": "Virtual Network Peerings",
"description": "This module deploys a Virtual Network Peering."
@@ -7590,8 +7645,8 @@
},
"condition": "[coalesce(tryGet(coalesce(parameters('peerings'), createArray())[copyIndex()], 'remotePeeringEnabled'), false())]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-virtualNetworkPeering-remote-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-virtualNetworkPeering-remote-{1}', uniqueString(subscription().id, resourceGroup().id, parameters('location')), copyIndex())]",
"subscriptionId": "[split(coalesce(parameters('peerings'), createArray())[copyIndex()].remoteVirtualNetworkResourceId, '/')[2]]",
"resourceGroup": "[split(coalesce(parameters('peerings'), createArray())[copyIndex()].remoteVirtualNetworkResourceId, '/')[4]]",
"properties": {
@@ -7631,8 +7686,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13145570087766698031"
+ "version": "0.41.2.15936",
+ "templateHash": "6939030350004475953"
},
"name": "Virtual Network Peerings",
"description": "This module deploys a Virtual Network Peering."
@@ -7899,8 +7954,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "17921343070314002065"
+ "version": "0.41.2.15936",
+ "templateHash": "18337341331267624582"
},
"name": "Private DNS Zones",
"description": "This module deploys a Private DNS zone."
@@ -8653,7 +8708,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-privatednszone.{0}.{1}', replace('0.8.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-privatednszone.{0}.{1}', replace('0.8.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -8680,7 +8735,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -8697,7 +8752,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -8718,7 +8773,7 @@
"count": "[length(coalesce(parameters('a'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-ARecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -8755,8 +8810,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "12608084563401365743"
+ "version": "0.41.2.15936",
+ "templateHash": "7372385900111002873"
},
"name": "Private DNS Zone A record",
"description": "This module deploys a Private DNS Zone A record."
@@ -8919,7 +8974,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszonea.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszonea.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -8958,7 +9013,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/A/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/A', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/A', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -9009,7 +9064,7 @@
"count": "[length(coalesce(parameters('aaaa'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-AAAARecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -9046,8 +9101,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "4881696097088567452"
+ "version": "0.41.2.15936",
+ "templateHash": "14405855828972373002"
},
"name": "Private DNS Zone AAAA record",
"description": "This module deploys a Private DNS Zone AAAA record."
@@ -9210,7 +9265,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszoneaaaa.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszoneaaaa.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -9249,7 +9304,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/AAAA/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/AAAA', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/AAAA', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -9300,7 +9355,7 @@
"count": "[length(coalesce(parameters('cname'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-CNAMERecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -9337,8 +9392,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13307906270868460967"
+ "version": "0.41.2.15936",
+ "templateHash": "13818627461335065928"
},
"name": "Private DNS Zone CNAME record",
"description": "This module deploys a Private DNS Zone CNAME record."
@@ -9501,7 +9556,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszonecname.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszonecname.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -9540,7 +9595,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/CNAME/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/CNAME', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/CNAME', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -9591,7 +9646,7 @@
"count": "[length(coalesce(parameters('mx'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-MXRecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -9628,8 +9683,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "7946896598573056688"
+ "version": "0.41.2.15936",
+ "templateHash": "2977624679479439942"
},
"name": "Private DNS Zone MX record",
"description": "This module deploys a Private DNS Zone MX record."
@@ -9792,7 +9847,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszonemx.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszonemx.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -9831,7 +9886,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/MX/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/MX', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/MX', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -9882,7 +9937,7 @@
"count": "[length(coalesce(parameters('ptr'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-PTRRecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -9919,8 +9974,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "7627375510490151870"
+ "version": "0.41.2.15936",
+ "templateHash": "15286275176817336979"
},
"name": "Private DNS Zone PTR record",
"description": "This module deploys a Private DNS Zone PTR record."
@@ -10083,7 +10138,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszoneptr.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszoneptr.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -10122,7 +10177,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/PTR/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/PTR', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/PTR', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -10173,7 +10228,7 @@
"count": "[length(coalesce(parameters('soa'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-SOARecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -10210,8 +10265,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "16709883266329935583"
+ "version": "0.41.2.15936",
+ "templateHash": "4837447718856535826"
},
"name": "Private DNS Zone SOA record",
"description": "This module deploys a Private DNS Zone SOA record."
@@ -10374,7 +10429,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszonesoa.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszonesoa.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -10413,7 +10468,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/SOA/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/SOA', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/SOA', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -10464,7 +10519,7 @@
"count": "[length(coalesce(parameters('srv'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-SRVRecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -10501,8 +10556,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "8123422724272920495"
+ "version": "0.41.2.15936",
+ "templateHash": "15028912535488490265"
},
"name": "Private DNS Zone SRV record",
"description": "This module deploys a Private DNS Zone SRV record."
@@ -10665,7 +10720,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszonesrv.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszonesrv.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -10704,7 +10759,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/SRV/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/SRV', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/SRV', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -10755,7 +10810,7 @@
"count": "[length(coalesce(parameters('txt'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-TXTRecord-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -10792,8 +10847,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "17170531000135004092"
+ "version": "0.41.2.15936",
+ "templateHash": "7641583415110009849"
},
"name": "Private DNS Zone TXT record",
"description": "This module deploys a Private DNS Zone TXT record."
@@ -10956,7 +11011,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.nw-privdnszonetxt.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.nw-privdnszonetxt.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -10995,7 +11050,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateDnsZones/{0}/TXT/{1}', parameters('privateDnsZoneName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateDnsZones/TXT', parameters('privateDnsZoneName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateDnsZones/TXT', parameters('privateDnsZoneName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -11046,7 +11101,7 @@
"count": "[length(coalesce(parameters('virtualNetworkLinks'), createArray()))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateDnsZone-VNetLink-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -11074,6 +11129,9 @@
},
"resolutionPolicy": {
"value": "[tryGet(coalesce(parameters('virtualNetworkLinks'), createArray())[copyIndex()], 'resolutionPolicy')]"
+ },
+ "enableTelemetry": {
+ "value": "[variables('enableReferencedModulesTelemetry')]"
}
},
"template": {
@@ -11083,13 +11141,20 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "517173107480898390"
+ "version": "0.41.2.15936",
+ "templateHash": "7392770862892927923"
},
"name": "Private DNS Zone Virtual Network Link",
"description": "This module deploys a Private DNS Zone Virtual Network Link."
},
"parameters": {
+ "enableTelemetry": {
+ "type": "bool",
+ "defaultValue": true,
+ "metadata": {
+ "description": "Optional. Enable/Disable usage telemetry for module."
+ }
+ },
"privateDnsZoneName": {
"type": "string",
"metadata": {
@@ -11142,6 +11207,26 @@
}
},
"resources": {
+ "avmTelemetry": {
+ "condition": "[parameters('enableTelemetry')]",
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2024-03-01",
+ "name": "[format('46d3xbcp.res.nw-privdnszonevnetlink.{0}.{1}', replace('0.1.0', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "properties": {
+ "mode": "Incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "resources": [],
+ "outputs": {
+ "telemetry": {
+ "type": "String",
+ "value": "For more information, see https://aka.ms/avm/TelemetryInfo"
+ }
+ }
+ }
+ }
+ },
"privateDnsZone": {
"existing": true,
"type": "Microsoft.Network/privateDnsZones",
@@ -11303,8 +11388,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.33.93.31351",
- "templateHash": "524476480902078754"
+ "version": "0.37.4.10188",
+ "templateHash": "16163163089833128804"
},
"name": "Azure Monitor Private Link Scopes",
"description": "This module deploys an Azure Monitor Private Link Scope."
@@ -11463,6 +11548,43 @@
"description": "The access mode type."
}
},
+ "_1.lockType": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the name of lock."
+ }
+ },
+ "kind": {
+ "type": "string",
+ "allowedValues": [
+ "CanNotDelete",
+ "None",
+ "ReadOnly"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the type of lock."
+ }
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
+ }
+ },
+ "metadata": {
+ "description": "An AVM-aligned type for a lock.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ }
+ }
+ },
"_1.privateEndpointCustomDnsConfigType": {
"type": "object",
"properties": {
@@ -11485,7 +11607,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -11527,7 +11649,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -11568,7 +11690,82 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ }
+ }
+ },
+ "_1.roleAssignmentType": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The name (as GUID) of the role assignment. If not provided, a GUID will be generated."
+ }
+ },
+ "roleDefinitionIdOrName": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The role to assign. You can provide either the display name of the role definition, the role definition GUID, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'."
+ }
+ },
+ "principalId": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The principal ID of the principal (user/group/identity) to assign the role to."
+ }
+ },
+ "principalType": {
+ "type": "string",
+ "allowedValues": [
+ "Device",
+ "ForeignGroup",
+ "Group",
+ "ServicePrincipal",
+ "User"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The principal type of the assigned principal ID."
+ }
+ },
+ "description": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The description of the role assignment."
+ }
+ },
+ "condition": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase \"foo_storage_container\"."
+ }
+ },
+ "conditionVersion": {
+ "type": "string",
+ "allowedValues": [
+ "2.0"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Version of the condition."
+ }
+ },
+ "delegatedManagedIdentityResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The Resource Id of the delegated managed identity resource."
+ }
+ }
+ },
+ "metadata": {
+ "description": "An AVM-aligned type for a role assignment.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -11593,12 +11790,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
}
}
},
@@ -11706,7 +11910,7 @@
}
},
"lock": {
- "$ref": "#/definitions/lockType",
+ "$ref": "#/definitions/_1.lockType",
"nullable": true,
"metadata": {
"description": "Optional. Specify the type of lock."
@@ -11715,7 +11919,7 @@
"roleAssignments": {
"type": "array",
"items": {
- "$ref": "#/definitions/roleAssignmentType"
+ "$ref": "#/definitions/_1.roleAssignmentType"
},
"nullable": true,
"metadata": {
@@ -11726,6 +11930,9 @@
"type": "object",
"nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2024-07-01#properties/tags"
+ },
"description": "Optional. Tags to be applied on all resources/Resource Groups in this deployment."
}
},
@@ -11740,7 +11947,7 @@
"metadata": {
"description": "An AVM-aligned type for a private endpoint. To be used if the private endpoint's default service / groupId can be assumed (i.e., for services that only have one Private Endpoint type like 'vault' for key vault).",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -11902,6 +12109,7 @@
"input": "[union(coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')], createObject('roleDefinitionId', coalesce(tryGet(variables('builtInRoleNames'), coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName), if(contains(coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName, '/providers/Microsoft.Authorization/roleDefinitions/'), coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', coalesce(parameters('roleAssignments'), createArray())[copyIndex('formattedRoleAssignments')].roleDefinitionIdOrName)))))]"
}
],
+ "enableReferencedModulesTelemetry": false,
"builtInRoleNames": {
"Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"Log Analytics Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '92aaf0da-9dab-42b6-94a3-d43ce8d16293')]",
@@ -11924,7 +12132,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.insights-privatelinkscope.{0}.{1}', replace('0.6.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.insights-privatelinkscope.{0}.{1}', replace('0.7.2', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -11958,7 +12166,7 @@
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
- "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]"
+ "notes": "[coalesce(tryGet(parameters('lock'), 'notes'), if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.'))]"
},
"dependsOn": [
"privateLinkScope"
@@ -12016,8 +12224,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.33.93.31351",
- "templateHash": "18319290317274254807"
+ "version": "0.37.4.10188",
+ "templateHash": "6236743661973144147"
},
"name": "Private Link Scope Scoped Resources",
"description": "This module deploys a Private Link Scope Scoped Resource."
@@ -12091,8 +12299,8 @@
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-01",
"name": "[format('{0}-privateLinkScope-PrivateEndpoint-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
- "subscriptionId": "[split(coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'resourceGroupResourceId'), tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'subnetResourceId')), '/')[2]]",
- "resourceGroup": "[split(coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'resourceGroupResourceId'), tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'subnetResourceId')), '/')[4]]",
+ "subscriptionId": "[split(coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'resourceGroupResourceId'), resourceGroup().id), '/')[2]]",
+ "resourceGroup": "[split(coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'resourceGroupResourceId'), resourceGroup().id), '/')[4]]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -12108,7 +12316,7 @@
"value": "[coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].subnetResourceId]"
},
"enableTelemetry": {
- "value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'enableTelemetry'), parameters('enableTelemetry'))]"
+ "value": "[variables('enableReferencedModulesTelemetry')]"
},
"location": {
"value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'location'), reference(split(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location)]"
@@ -12895,11 +13103,11 @@
},
"dependsOn": [
"applicationInsights",
- "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').monitor)]",
- "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').oms)]",
+ "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').agentSvc)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').ods)]",
- "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').agentSvc)]",
+ "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').monitor)]",
+ "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').oms)]",
"dataCollectionEndpoint",
"logAnalyticsWorkspace",
"virtualNetwork"
@@ -12951,7 +13159,7 @@
"publicIPAddressObject": {
"value": {
"name": "[format('pip-{0}', variables('bastionHostName'))]",
- "zones": []
+ "availabilityZones": []
}
}
},
@@ -12962,8 +13170,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "8154163068428418954"
+ "version": "0.39.26.7824",
+ "templateHash": "7741601918225805390"
},
"name": "Bastion Hosts",
"description": "This module deploys a Bastion Host."
@@ -13157,7 +13365,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/public-ip-address:0.9.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/public-ip-address:0.10.0"
}
}
},
@@ -13419,7 +13627,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/public-ip-address:0.9.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/public-ip-address:0.10.0"
}
}
},
@@ -13441,7 +13649,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/public-ip-address:0.9.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/public-ip-address:0.10.0"
}
}
},
@@ -13745,7 +13953,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-bastionhost.{0}.{1}', replace('0.8.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-bastionhost.{0}.{1}', replace('0.8.2', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -13763,7 +13971,7 @@
},
"azureBastion": {
"type": "Microsoft.Network/bastionHosts",
- "apiVersion": "2024-07-01",
+ "apiVersion": "2025-01-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[coalesce(parameters('tags'), createObject())]",
@@ -13847,8 +14055,8 @@
"publicIPAddress": {
"condition": "[and(and(empty(parameters('bastionSubnetPublicIpResourceId')), not(equals(parameters('skuName'), 'Developer'))), not(parameters('enablePrivateOnlyBastion')))]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
- "name": "[format('{0}-Bastion-PIP', uniqueString(deployment().name, parameters('location')))]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-Bastion-PIP', uniqueString(subscription().id, resourceGroup().id, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
@@ -13914,8 +14122,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.177.2456",
- "templateHash": "14921988046704902194"
+ "version": "0.39.26.7824",
+ "templateHash": "16564959277054027786"
},
"name": "Public IP Addresses",
"description": "This module deploys a Public IP Address."
@@ -14132,7 +14340,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.2.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -14157,12 +14365,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.2.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -14237,7 +14452,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.2.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
}
@@ -14350,6 +14565,17 @@
"description": "Optional. The DDoS protection plan configuration associated with the public IP address."
}
},
+ "deleteOption": {
+ "type": "string",
+ "nullable": true,
+ "allowedValues": [
+ "Delete",
+ "Detach"
+ ],
+ "metadata": {
+ "description": "Optional. The delete option for the public IP address."
+ }
+ },
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
@@ -14383,10 +14609,13 @@
},
"tags": {
"type": "object",
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/tags"
+ },
"description": "Optional. Tags of the resource."
- }
+ },
+ "nullable": true
},
"diagnosticSettings": {
"type": "array",
@@ -14425,7 +14654,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-publicipaddress.{0}.{1}', replace('0.9.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-publicipaddress.{0}.{1}', replace('0.10.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -14443,7 +14672,7 @@
},
"publicIpAddress": {
"type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2024-05-01",
+ "apiVersion": "2025-01-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -14459,7 +14688,8 @@
"publicIPAllocationMethod": "[parameters('publicIPAllocationMethod')]",
"publicIPPrefix": "[if(not(empty(parameters('publicIpPrefixResourceId'))), createObject('id', parameters('publicIpPrefixResourceId')), null())]",
"idleTimeoutInMinutes": "[parameters('idleTimeoutInMinutes')]",
- "ipTags": "[parameters('ipTags')]"
+ "ipTags": "[parameters('ipTags')]",
+ "deleteOption": "[parameters('deleteOption')]"
}
},
"publicIpAddress_lock": {
@@ -14470,7 +14700,7 @@
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
- "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]"
+ "notes": "[coalesce(tryGet(parameters('lock'), 'notes'), if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.'))]"
},
"dependsOn": [
"publicIpAddress"
@@ -14574,7 +14804,7 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('publicIpAddress', '2024-05-01', 'full').location]"
+ "value": "[reference('publicIpAddress', '2025-01-01', 'full').location]"
}
}
}
@@ -14608,7 +14838,7 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('azureBastion', '2024-07-01', 'full').location]"
+ "value": "[reference('azureBastion', '2025-01-01', 'full').location]"
},
"ipConfAzureBastionSubnet": {
"type": "object",
@@ -14692,8 +14922,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "9651684292850651586"
+ "version": "0.41.2.15936",
+ "templateHash": "14895287194406877557"
},
"name": "Maintenance Configurations",
"description": "This module deploys a Maintenance Configuration."
@@ -14732,7 +14962,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -14807,7 +15037,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -14852,18 +15082,13 @@
},
"maintenanceScope": {
"type": "string",
- "defaultValue": "Host",
- "allowedValues": [
- "Host",
- "OSImage",
- "Extension",
- "InGuestPatch",
- "SQLDB",
- "SQLManagedInstance"
- ],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Maintenance/maintenanceConfigurations@2023-04-01#properties/properties/properties/maintenanceScope"
+ },
"description": "Optional. Gets or sets maintenanceScope of the configuration."
- }
+ },
+ "defaultValue": "Host"
},
"maintenanceWindow": {
"type": "object",
@@ -14904,15 +15129,13 @@
},
"visibility": {
"type": "string",
- "defaultValue": "",
- "allowedValues": [
- "",
- "Custom",
- "Public"
- ],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Maintenance/maintenanceConfigurations@2023-04-01#properties/properties/properties/visibility"
+ },
"description": "Optional. Gets or sets the visibility of the configuration. The default value is 'Custom'."
- }
+ },
+ "nullable": true
},
"installPatches": {
"type": "object",
@@ -14946,8 +15169,8 @@
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.maintenance-maintenanceconfiguration.{0}.{1}', replace('0.3.2', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('46d3xbcp.res.maintenance-maintenanceconfiguration.{0}.{1}', replace('0.4.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -14982,7 +15205,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Maintenance/maintenanceConfigurations/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Maintenance/maintenanceConfigurations', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -14999,7 +15222,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Maintenance/maintenanceConfigurations/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Maintenance/maintenanceConfigurations', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Maintenance/maintenanceConfigurations', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -15068,7 +15291,7 @@
"enableTelemetry": {
"value": "[parameters('enableTelemetry')]"
},
- "location": "[if(variables('useExistingLogAnalytics'), createObject('value', reference('existingLogAnalyticsWorkspace', '2020-08-01', 'full').location), createObject('value', reference('logAnalyticsWorkspace').outputs.location.value))]",
+ "location": "[if(variables('useExistingLogAnalytics'), createObject('value', reference('existingLogAnalyticsWorkspace', '2025-07-01', 'full').location), createObject('value', reference('logAnalyticsWorkspace').outputs.location.value))]",
"dataCollectionRuleProperties": {
"value": {
"kind": "Windows",
@@ -15160,8 +15383,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "8113567080988541838"
+ "version": "0.41.2.15936",
+ "templateHash": "2441324888126124697"
},
"name": "Data Collection Rules",
"description": "This module deploys a Data Collection Rule."
@@ -15186,12 +15409,18 @@
},
"Direct": {
"$ref": "#/definitions/directDcrPropertiesType"
+ },
+ "WorkspaceTransforms": {
+ "$ref": "#/definitions/workspaceTransformsDcrPropertiesType"
+ },
+ "PlatformTelemetry": {
+ "$ref": "#/definitions/platformTelemetryDcrPropertiesType"
}
}
},
"metadata": {
"__bicep_export!": true,
- "description": "The type for data collection rule properties. Depending on the kind, the properties will be different."
+ "description": "Required. The type for data collection rule properties. Depending on the kind, the properties will be different."
}
},
"linuxDcrPropertiesType": {
@@ -15203,14 +15432,14 @@
"Linux"
],
"metadata": {
- "description": "Required. The platform type specifies the type of resources this rule can apply to."
+ "description": "Required. The kind of the resource."
}
},
"dataSources": {
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/dataSources"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataSources"
},
"description": "Required. Specification of data sources that will be collected."
}
@@ -15219,7 +15448,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/dataFlows"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataFlows"
},
"description": "Required. The specification of data flows."
}
@@ -15228,7 +15457,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/destinations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations"
},
"description": "Required. Specification of destinations that can be used in data flows."
}
@@ -15244,7 +15473,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/streamDeclarations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/streamDeclarations"
},
"description": "Optional. Declaration of custom streams used in this rule."
},
@@ -15271,14 +15500,14 @@
"Windows"
],
"metadata": {
- "description": "Required. The platform type specifies the type of resources this rule can apply to."
+ "description": "Required. The kind of the resource."
}
},
"dataSources": {
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/dataSources"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataSources"
},
"description": "Required. Specification of data sources that will be collected."
}
@@ -15287,7 +15516,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/dataFlows"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataFlows"
},
"description": "Required. The specification of data flows."
}
@@ -15296,7 +15525,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/destinations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations"
},
"description": "Required. Specification of destinations that can be used in data flows."
}
@@ -15312,7 +15541,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/streamDeclarations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/streamDeclarations"
},
"description": "Optional. Declaration of custom streams used in this rule."
},
@@ -15339,14 +15568,14 @@
"All"
],
"metadata": {
- "description": "Required. The platform type specifies the type of resources this rule can apply to."
+ "description": "Required. The kind of the resource."
}
},
"dataSources": {
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/dataSources"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataSources"
},
"description": "Required. Specification of data sources that will be collected."
}
@@ -15355,7 +15584,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/dataFlows"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataFlows"
},
"description": "Required. The specification of data flows."
}
@@ -15364,7 +15593,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/destinations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations"
},
"description": "Required. Specification of destinations that can be used in data flows."
}
@@ -15380,7 +15609,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/streamDeclarations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/streamDeclarations"
},
"description": "Optional. Declaration of custom streams used in this rule."
},
@@ -15407,7 +15636,7 @@
"AgentSettings"
],
"metadata": {
- "description": "Required. The platform type specifies the type of resources this rule can apply to."
+ "description": "Required. The kind of the resource."
}
},
"description": {
@@ -15478,14 +15707,14 @@
"Direct"
],
"metadata": {
- "description": "Required. The platform type specifies the type of resources this rule can apply to."
+ "description": "Required. The kind of the resource."
}
},
"dataFlows": {
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/dataFlows"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataFlows"
},
"description": "Required. The specification of data flows."
}
@@ -15494,7 +15723,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/destinations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations"
},
"description": "Required. Specification of destinations that can be used in data flows."
}
@@ -15510,7 +15739,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/streamDeclarations"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/streamDeclarations"
},
"description": "Required. Declaration of custom streams used in this rule."
}
@@ -15527,6 +15756,136 @@
"description": "The type for the properties of the 'Direct' data collection rule."
}
},
+ "workspaceTransformsDcrPropertiesType": {
+ "type": "object",
+ "properties": {
+ "kind": {
+ "type": "string",
+ "allowedValues": [
+ "WorkspaceTransforms"
+ ],
+ "metadata": {
+ "description": "Required. The kind of the resource."
+ }
+ },
+ "dataFlows": {
+ "type": "array",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataFlows"
+ },
+ "description": "Required. The specification of data flows. Should include a separate dataflow for each table that will have a transformation. Use a where clause in the query if only certain records should be transformed."
+ }
+ },
+ "destinations": {
+ "type": "object",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations"
+ },
+ "description": "Required. Specification of destinations that can be used in data flows. For WorkspaceTransforms, only one Log Analytics workspace destination is supported."
+ }
+ },
+ "description": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Description of the data collection rule."
+ }
+ }
+ },
+ "metadata": {
+ "description": "The type for the properties of the 'WorkspaceTransforms' data collection rule."
+ }
+ },
+ "platformTelemetryDcrPropertiesType": {
+ "type": "object",
+ "properties": {
+ "kind": {
+ "type": "string",
+ "allowedValues": [
+ "PlatformTelemetry"
+ ],
+ "metadata": {
+ "description": "Required. The kind of the resource."
+ }
+ },
+ "description": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Description of the data collection rule."
+ }
+ },
+ "dataSources": {
+ "type": "object",
+ "properties": {
+ "platformTelemetry": {
+ "type": "array",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataSources/properties/platformTelemetry"
+ },
+ "description": "Required. The list of platform telemetry configurations."
+ }
+ }
+ },
+ "metadata": {
+ "description": "Required. Specification of data sources that will be collected."
+ }
+ },
+ "destinations": {
+ "type": "object",
+ "properties": {
+ "logAnalytics": {
+ "type": "array",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations/properties/logAnalytics"
+ },
+ "description": "Optional. The list of Log Analytics destinations."
+ },
+ "nullable": true
+ },
+ "storageAccounts": {
+ "type": "array",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations/properties/storageAccounts"
+ },
+ "description": "Optional. The list of Storage Account destinations."
+ },
+ "nullable": true
+ },
+ "eventHubs": {
+ "type": "array",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/destinations/properties/eventHubs"
+ },
+ "description": "Optional. The list of Event Hub destinations."
+ },
+ "nullable": true
+ }
+ },
+ "metadata": {
+ "description": "Required. Specification of destinations. Choose a single destination type of either logAnalytics, storageAccounts, or eventHubs."
+ }
+ },
+ "dataFlows": {
+ "type": "array",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/dataFlows"
+ },
+ "description": "Required. The specification of data flows."
+ }
+ }
+ },
+ "metadata": {
+ "description": "The type for the properties of the 'PlatformTelemetry' data collection rule."
+ }
+ },
"lockType": {
"type": "object",
"properties": {
@@ -15560,7 +15919,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -15588,7 +15947,7 @@
"metadata": {
"description": "An AVM-aligned type for a managed identity configuration. To be used if both a system-assigned & user-assigned identities are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -15663,7 +16022,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -15723,7 +16082,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/tags"
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/tags"
},
"description": "Optional. Resource tags."
},
@@ -15747,15 +16106,15 @@
"Role Based Access Control Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f58310d9-a9f6-439a-9e8d-f62e7b41a168')]",
"User Access Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')]"
},
- "dataCollectionRulePropertiesUnion": "[union(createObject('description', tryGet(parameters('dataCollectionRuleProperties'), 'description')), if(or(or(equals(parameters('dataCollectionRuleProperties').kind, 'Linux'), equals(parameters('dataCollectionRuleProperties').kind, 'Windows')), equals(parameters('dataCollectionRuleProperties').kind, 'All')), createObject('dataSources', parameters('dataCollectionRuleProperties').dataSources), createObject()), if(or(or(or(equals(parameters('dataCollectionRuleProperties').kind, 'Linux'), equals(parameters('dataCollectionRuleProperties').kind, 'Windows')), equals(parameters('dataCollectionRuleProperties').kind, 'All')), equals(parameters('dataCollectionRuleProperties').kind, 'Direct')), createObject('dataFlows', parameters('dataCollectionRuleProperties').dataFlows, 'destinations', parameters('dataCollectionRuleProperties').destinations, 'dataCollectionEndpointId', tryGet(parameters('dataCollectionRuleProperties'), 'dataCollectionEndpointResourceId'), 'streamDeclarations', tryGet(parameters('dataCollectionRuleProperties'), 'streamDeclarations')), createObject()), if(equals(parameters('dataCollectionRuleProperties').kind, 'AgentSettings'), createObject('agentSettings', parameters('dataCollectionRuleProperties').agentSettings), createObject()))]",
+ "dataCollectionRulePropertiesUnion": "[union(createObject('description', tryGet(parameters('dataCollectionRuleProperties'), 'description')), if(contains(createArray('Linux', 'Windows', 'All', 'PlatformTelemetry'), parameters('dataCollectionRuleProperties').kind), createObject('dataSources', parameters('dataCollectionRuleProperties').dataSources), createObject()), if(contains(createArray('Linux', 'Windows', 'All', 'Direct', 'WorkspaceTransforms', 'PlatformTelemetry'), parameters('dataCollectionRuleProperties').kind), createObject('dataFlows', parameters('dataCollectionRuleProperties').dataFlows, 'destinations', parameters('dataCollectionRuleProperties').destinations), createObject()), if(contains(createArray('Linux', 'Windows', 'All', 'Direct', 'WorkspaceTransforms'), parameters('dataCollectionRuleProperties').kind), createObject('dataCollectionEndpointId', tryGet(parameters('dataCollectionRuleProperties'), 'dataCollectionEndpointResourceId'), 'streamDeclarations', tryGet(parameters('dataCollectionRuleProperties'), 'streamDeclarations')), createObject()), if(equals(parameters('dataCollectionRuleProperties').kind, 'AgentSettings'), createObject('agentSettings', parameters('dataCollectionRuleProperties').agentSettings), createObject()))]",
"enableReferencedModulesTelemetry": false
},
"resources": {
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.insights-datacollectionrule.{0}.{1}', replace('0.8.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('46d3xbcp.res.insights-datacollectionrule.{0}.{1}', replace('0.11.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -15774,7 +16133,7 @@
"dataCollectionRule": {
"condition": "[not(equals(parameters('dataCollectionRuleProperties').kind, 'All'))]",
"type": "Microsoft.Insights/dataCollectionRules",
- "apiVersion": "2023-03-11",
+ "apiVersion": "2024-03-11",
"name": "[parameters('name')]",
"kind": "[parameters('dataCollectionRuleProperties').kind]",
"location": "[parameters('location')]",
@@ -15785,7 +16144,7 @@
"dataCollectionRuleAll": {
"condition": "[equals(parameters('dataCollectionRuleProperties').kind, 'All')]",
"type": "Microsoft.Insights/dataCollectionRules",
- "apiVersion": "2023-03-11",
+ "apiVersion": "2024-03-11",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -15815,8 +16174,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "11414235132312545759"
+ "version": "0.41.2.15936",
+ "templateHash": "2876136109547890997"
}
},
"definitions": {
@@ -15877,14 +16236,14 @@
"dataCollectionRule": {
"existing": true,
"type": "Microsoft.Insights/dataCollectionRules",
- "apiVersion": "2023-03-11",
+ "apiVersion": "2024-03-11",
"name": "[parameters('dataCollectionRuleName')]"
},
"dataCollectionRule_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Insights/dataCollectionRules/{0}', parameters('dataCollectionRuleName'))]",
+ "scope": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('dataCollectionRuleName')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -16185,7 +16544,7 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[if(equals(parameters('dataCollectionRuleProperties').kind, 'All'), reference('dataCollectionRuleAll', '2023-03-11', 'full').location, reference('dataCollectionRule', '2023-03-11', 'full').location)]"
+ "value": "[if(equals(parameters('dataCollectionRuleProperties').kind, 'All'), reference('dataCollectionRuleAll', '2024-03-11', 'full').location, reference('dataCollectionRule', '2024-03-11', 'full').location)]"
},
"systemAssignedMIPrincipalId": {
"type": "string",
@@ -16193,13 +16552,13 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
- "value": "[if(equals(parameters('dataCollectionRuleProperties').kind, 'All'), tryGet(tryGet(if(equals(parameters('dataCollectionRuleProperties').kind, 'All'), reference('dataCollectionRuleAll', '2023-03-11', 'full'), null()), 'identity'), 'principalId'), tryGet(tryGet(if(not(equals(parameters('dataCollectionRuleProperties').kind, 'All')), reference('dataCollectionRule', '2023-03-11', 'full'), null()), 'identity'), 'principalId'))]"
+ "value": "[if(equals(parameters('dataCollectionRuleProperties').kind, 'All'), tryGet(tryGet(if(equals(parameters('dataCollectionRuleProperties').kind, 'All'), reference('dataCollectionRuleAll', '2024-03-11', 'full'), null()), 'identity'), 'principalId'), tryGet(tryGet(if(not(equals(parameters('dataCollectionRuleProperties').kind, 'All')), reference('dataCollectionRule', '2024-03-11', 'full'), null()), 'identity'), 'principalId'))]"
},
"endpoints": {
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Insights/dataCollectionRules@2023-03-11#properties/properties/properties/endpoints",
+ "source": "Microsoft.Insights/dataCollectionRules@2024-03-11#properties/properties/properties/endpoints",
"output": true
},
"description": "The endpoints of the dataCollectionRule, if created."
@@ -16723,8 +17082,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "10754907249846822047"
+ "version": "0.41.2.15936",
+ "templateHash": "17174537341033050778"
},
"name": "Virtual Machines",
"description": "This module deploys a Virtual Machine with one or multiple NICs and optionally one or multiple public IPs."
@@ -16827,6 +17186,13 @@
"metadata": {
"description": "Optional. Specifies the customer managed disk encryption set resource id for the managed disk."
}
+ },
+ "resourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specifies the resource id of a pre-existing managed disk. If the disk should be created, this property should be empty."
+ }
}
},
"metadata": {
@@ -16938,7 +17304,7 @@
"description": "Optional. Specifies the customer managed disk encryption set resource id for the managed disk."
}
},
- "id": {
+ "resourceId": {
"type": "string",
"nullable": true,
"metadata": {
@@ -16952,10 +17318,13 @@
},
"tags": {
"type": "object",
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Compute/disks@2025-01-02#properties/tags"
+ },
"description": "Optional. The tags of the public IP address. Valid only when creating a new managed disk."
- }
+ },
+ "nullable": true
}
},
"metadata": {
@@ -17748,7 +18117,7 @@
"type": "object",
"properties": {
"backendAddressPool": {
- "$ref": "#/definitions/subResourceType",
+ "$ref": "#/definitions/_1.subResourceType",
"nullable": true,
"metadata": {
"description": "Optional. A reference to backendAddressPool resource."
@@ -17776,7 +18145,7 @@
}
},
"frontendIPConfiguration": {
- "$ref": "#/definitions/subResourceType",
+ "$ref": "#/definitions/_1.subResourceType",
"nullable": true,
"metadata": {
"description": "Optional. A reference to frontend IP addresses."
@@ -17829,6 +18198,24 @@
}
}
},
+ "_1.subResourceType": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Resource ID of the sub resource."
+ }
+ }
+ },
+ "metadata": {
+ "description": "The type for the sub resource.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/network-interface:0.5.1"
+ }
+ }
+ },
"_1.virtualNetworkTapType": {
"type": "object",
"properties": {
@@ -17967,7 +18354,241 @@
}
}
},
- "_3.publicIPConfigurationType": {
+ "_3.diagnosticSettingFullType": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The name of the diagnostic setting."
+ }
+ },
+ "logCategoriesAndGroups": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "category": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Name of a Diagnostic Log category for a resource type this setting is applied to. Set the specific logs to collect here."
+ }
+ },
+ "categoryGroup": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Name of a Diagnostic Log category group for a resource type this setting is applied to. Set to `allLogs` to collect all logs."
+ }
+ },
+ "enabled": {
+ "type": "bool",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Enable or disable the category explicitly. Default is `true`."
+ }
+ }
+ }
+ },
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The name of logs that will be streamed. \"allLogs\" includes all possible logs for the resource. Set to `[]` to disable log collection."
+ }
+ },
+ "metricCategories": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "category": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. Name of a Diagnostic Metric category for a resource type this setting is applied to. Set to `AllMetrics` to collect all metrics."
+ }
+ },
+ "enabled": {
+ "type": "bool",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Enable or disable the category explicitly. Default is `true`."
+ }
+ }
+ }
+ },
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The name of metrics that will be streamed. \"allMetrics\" includes all possible metrics for the resource. Set to `[]` to disable metric collection."
+ }
+ },
+ "logAnalyticsDestinationType": {
+ "type": "string",
+ "allowedValues": [
+ "AzureDiagnostics",
+ "Dedicated"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. A string indicating whether the export to Log Analytics should use the default destination type, i.e. AzureDiagnostics, or use a destination type."
+ }
+ },
+ "workspaceResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Resource ID of the diagnostic log analytics workspace. For security reasons, it is recommended to set diagnostic settings to send data to either storage account, log analytics workspace or event hub."
+ }
+ },
+ "storageAccountResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Resource ID of the diagnostic storage account. For security reasons, it is recommended to set diagnostic settings to send data to either storage account, log analytics workspace or event hub."
+ }
+ },
+ "eventHubAuthorizationRuleResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Resource ID of the diagnostic event hub authorization rule for the Event Hubs namespace in which the event hub should be created or streamed to."
+ }
+ },
+ "eventHubName": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Name of the diagnostic event hub within the namespace to which logs are streamed. Without this, an event hub is created for each log category. For security reasons, it is recommended to set diagnostic settings to send data to either storage account, log analytics workspace or event hub."
+ }
+ },
+ "marketplacePartnerResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The full ARM resource ID of the Marketplace resource to which you would like to send Diagnostic Logs."
+ }
+ }
+ },
+ "metadata": {
+ "description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ }
+ }
+ },
+ "_3.lockType": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the name of lock."
+ }
+ },
+ "kind": {
+ "type": "string",
+ "allowedValues": [
+ "CanNotDelete",
+ "None",
+ "ReadOnly"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the type of lock."
+ }
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
+ }
+ },
+ "metadata": {
+ "description": "An AVM-aligned type for a lock.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ }
+ }
+ },
+ "_3.roleAssignmentType": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The name (as GUID) of the role assignment. If not provided, a GUID will be generated."
+ }
+ },
+ "roleDefinitionIdOrName": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The role to assign. You can provide either the display name of the role definition, the role definition GUID, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'."
+ }
+ },
+ "principalId": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The principal ID of the principal (user/group/identity) to assign the role to."
+ }
+ },
+ "principalType": {
+ "type": "string",
+ "allowedValues": [
+ "Device",
+ "ForeignGroup",
+ "Group",
+ "ServicePrincipal",
+ "User"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The principal type of the assigned principal ID."
+ }
+ },
+ "description": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The description of the role assignment."
+ }
+ },
+ "condition": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase \"foo_storage_container\"."
+ }
+ },
+ "conditionVersion": {
+ "type": "string",
+ "allowedValues": [
+ "2.0"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Version of the condition."
+ }
+ },
+ "delegatedManagedIdentityResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The Resource Id of the delegated managed identity resource."
+ }
+ }
+ },
+ "metadata": {
+ "description": "An AVM-aligned type for a role assignment.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ }
+ }
+ },
+ "_4.publicIPConfigurationType": {
"type": "object",
"properties": {
"name": {
@@ -17987,7 +18608,7 @@
"diagnosticSettings": {
"type": "array",
"items": {
- "$ref": "#/definitions/diagnosticSettingFullType"
+ "$ref": "#/definitions/_3.diagnosticSettingFullType"
},
"nullable": true,
"metadata": {
@@ -18002,7 +18623,7 @@
}
},
"lock": {
- "$ref": "#/definitions/lockType",
+ "$ref": "#/definitions/_3.lockType",
"nullable": true,
"metadata": {
"description": "Optional. The lock settings of the public IP address."
@@ -18068,7 +18689,7 @@
"roleAssignments": {
"type": "array",
"items": {
- "$ref": "#/definitions/roleAssignmentType"
+ "$ref": "#/definitions/_3.roleAssignmentType"
},
"nullable": true,
"metadata": {
@@ -18262,7 +18883,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -18331,7 +18952,7 @@
}
},
"gatewayLoadBalancer": {
- "$ref": "#/definitions/subResourceType",
+ "$ref": "#/definitions/_1.subResourceType",
"nullable": true,
"metadata": {
"description": "Optional. The gateway load balancer settings."
@@ -18369,7 +18990,7 @@
}
},
"pipConfiguration": {
- "$ref": "#/definitions/_3.publicIPConfigurationType",
+ "$ref": "#/definitions/_4.publicIPConfigurationType",
"nullable": true,
"metadata": {
"description": "Optional. The public IP address configuration."
@@ -18378,7 +18999,7 @@
"diagnosticSettings": {
"type": "array",
"items": {
- "$ref": "#/definitions/diagnosticSettingFullType"
+ "$ref": "#/definitions/_3.diagnosticSettingFullType"
},
"nullable": true,
"metadata": {
@@ -18443,7 +19064,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -18471,7 +19092,7 @@
"metadata": {
"description": "An AVM-aligned type for a managed identity configuration. To be used if both a system-assigned & user-assigned identities are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -18500,8 +19121,9 @@
}
},
"metadata": {
+ "description": "The type for the network interface IP configuration output.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/network-interface:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/network-interface:0.5.3"
}
}
},
@@ -18576,7 +19198,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -18594,7 +19216,7 @@
"metadata": {
"description": "The type for the sub resource.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/network-interface:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/res/network/network-interface:0.5.3"
}
}
}
@@ -18628,15 +19250,13 @@
},
"securityType": {
"type": "string",
- "defaultValue": "",
- "allowedValues": [
- "",
- "ConfidentialVM",
- "TrustedLaunch"
- ],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Compute/virtualMachines@2025-04-01#properties/properties/properties/securityProfile/properties/securityType"
+ },
"description": "Optional. Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set."
- }
+ },
+ "nullable": true
},
"secureBootEnabled": {
"type": "bool",
@@ -18653,10 +19273,14 @@
}
},
"imageReference": {
- "$ref": "#/definitions/imageReferenceType",
+ "type": "object",
"metadata": {
- "description": "Required. OS image reference. In case of marketplace images, it's the combination of the publisher, offer, sku, version attributes. In case of custom images it's the resource ID of the custom image."
- }
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Compute/virtualMachines@2025-04-01#properties/properties/properties/storageProfile/properties/imageReference"
+ },
+ "description": "Conditional. OS image reference. In case of marketplace images, it's the combination of the publisher, offer, sku, version attributes. In case of custom images it's the resource ID of the custom image. Required if not creating the VM from an existing os-disk via the `osDisk.managedDisk.resourceId` parameter."
+ },
+ "nullable": true
},
"plan": {
"$ref": "#/definitions/planType",
@@ -18697,15 +19321,16 @@
},
"adminUsername": {
"type": "securestring",
+ "nullable": true,
"metadata": {
- "description": "Required. Administrator username."
+ "description": "Conditional. Administrator username. Required if no pre-existing OS-Disk is provided (osDisk.managedDisk.resourceId is not empty)."
}
},
"adminPassword": {
"type": "securestring",
"defaultValue": "",
"metadata": {
- "description": "Optional. When specifying a Windows Virtual Machine, this value should be passed."
+ "description": "Optional. When specifying a Windows Virtual Machine, and no pre-existing OS-Disk is provided (osDisk.managedDisk.resourceId is not empty), this value should be passed."
}
},
"userData": {
@@ -19291,14 +19916,16 @@
"Virtual Machine Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '9980e02c-c2be-4d73-94e8-173b1dc7cf3c')]",
"Virtual Machine User Login": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'fb879df8-f326-4884-b1cf-06f3ad86be52')]",
"VM Scanner Operator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'd24ecba3-c1f4-40fa-a7bb-4588a071e8fd')]"
- }
+ },
+ "aadJoinSettings": "[coalesce(tryGet(parameters('extensionAadJoinConfig'), 'settings'), createObject())]",
+ "filteredAadJoinSettings": "[if(and(contains(variables('aadJoinSettings'), 'mdmId'), empty(variables('aadJoinSettings').mdmId)), reduce(items(variables('aadJoinSettings')), createObject(), lambda('cur', 'item', if(equals(lambdaVariables('item').key, 'mdmId'), lambdaVariables('cur'), union(lambdaVariables('cur'), createObject(format('{0}', lambdaVariables('item').key), lambdaVariables('item').value))))), variables('aadJoinSettings'))]"
},
"resources": {
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.compute-virtualmachine.{0}.{1}', replace('0.20.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "apiVersion": "2024-07-01",
+ "name": "[format('46d3xbcp.res.compute-virtualmachine.{0}.{1}', replace('0.22.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -19319,25 +19946,25 @@
"name": "managedDataDisks",
"count": "[length(coalesce(parameters('dataDisks'), createArray()))]"
},
- "condition": "[empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()].managedDisk, 'id'))]",
+ "condition": "[and(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()].managedDisk, 'resourceId')), not(equals(coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'createOption'), 'Empty'), 'FromImage')))]",
"type": "Microsoft.Compute/disks",
- "apiVersion": "2024-03-02",
+ "apiVersion": "2025-01-02",
"name": "[coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'name'), format('{0}-disk-data-{1}', parameters('name'), padLeft(add(copyIndex(), 1), 2, '0')))]",
"location": "[parameters('location')]",
"sku": {
"name": "[tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()].managedDisk, 'storageAccountType')]"
},
"properties": {
- "diskSizeGB": "[coalesce(parameters('dataDisks'), createArray())[copyIndex()].diskSizeGB]",
+ "diskSizeGB": "[tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'diskSizeGB')]",
"creationData": {
- "createOption": "[coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'createoption'), 'Empty')]"
+ "createOption": "[coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'createOption'), 'Empty')]"
},
"diskIOPSReadWrite": "[tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'diskIOPSReadWrite')]",
"diskMBpsReadWrite": "[tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'diskMBpsReadWrite')]",
"publicNetworkAccess": "[parameters('publicNetworkAccess')]",
"networkAccessPolicy": "[parameters('networkAccessPolicy')]"
},
- "zones": "[if(and(not(equals(parameters('availabilityZone'), -1)), not(contains(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()].managedDisk, 'storageAccountType'), 'ZRS'))), array(string(parameters('availabilityZone'))), null())]",
+ "zones": "[if(and(not(equals(parameters('availabilityZone'), -1)), not(contains(coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()].managedDisk, 'storageAccountType'), ''), 'ZRS'))), array(string(parameters('availabilityZone'))), null())]",
"tags": "[coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex()], 'tags'), parameters('tags'))]"
},
"vm": {
@@ -19361,30 +19988,28 @@
"count": "[length(coalesce(parameters('dataDisks'), createArray()))]",
"input": {
"lun": "[coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'lun'), copyIndex('dataDisks'))]",
- "name": "[if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'id'))), last(split(coalesce(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk.id, ''), '/')), coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'name'), format('{0}-disk-data-{1}', parameters('name'), padLeft(add(copyIndex('dataDisks'), 1), 2, '0'))))]",
- "createOption": "[if(or(not(equals(if(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'id')), resourceId('Microsoft.Compute/disks', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'name'), format('{0}-disk-data-{1}', parameters('name'), padLeft(add(copyIndex('dataDisks'), 1), 2, '0')))), null()), null())), not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'id')))), 'Attach', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'createoption'), 'Empty'))]",
- "deleteOption": "[if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'id'))), 'Detach', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'deleteOption'), 'Delete'))]",
- "caching": "[if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'id'))), 'None', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'caching'), 'ReadOnly'))]",
- "managedDisk": {
- "id": "[coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'id'), if(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'id')), resourceId('Microsoft.Compute/disks', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'name'), format('{0}-disk-data-{1}', parameters('name'), padLeft(add(copyIndex('dataDisks'), 1), 2, '0')))), null()))]",
- "diskEncryptionSet": "[if(contains(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'diskEncryptionSet'), createObject('id', coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk.diskEncryptionSet.id), null())]"
- }
+ "name": "[if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'resourceId'))), last(split(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk.resourceId, '/')), coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'name'), format('{0}-disk-data-{1}', parameters('name'), padLeft(add(copyIndex('dataDisks'), 1), 2, '0'))))]",
+ "createOption": "[if(equals(coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'createOption'), 'Empty'), 'FromImage'), 'FromImage', if(or(not(equals(if(and(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'resourceId')), not(equals(coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'createOption'), 'Empty'), 'FromImage'))), resourceId('Microsoft.Compute/disks', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'name'), format('{0}-disk-data-{1}', parameters('name'), padLeft(add(copyIndex('dataDisks'), 1), 2, '0')))), null()), null())), not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'resourceId')))), 'Attach', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'createOption'), 'Empty')))]",
+ "deleteOption": "[if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'resourceId'))), 'Detach', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'deleteOption'), 'Delete'))]",
+ "caching": "[if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'resourceId'))), 'None', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'caching'), 'ReadOnly'))]",
+ "diskSizeGB": "[if(equals(coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'createOption'), 'Empty'), 'FromImage'), null(), tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'diskSizeGB'))]",
+ "managedDisk": "[if(equals(coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'createOption'), 'Empty'), 'FromImage'), createObject('storageAccountType', tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'storageAccountType'), 'diskEncryptionSet', if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'diskEncryptionSetResourceId'))), createObject('id', coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk.diskEncryptionSetResourceId), null())), createObject('id', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'resourceId'), if(and(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'resourceId')), not(equals(coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'createOption'), 'Empty'), 'FromImage'))), resourceId('Microsoft.Compute/disks', coalesce(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')], 'name'), format('{0}-disk-data-{1}', parameters('name'), padLeft(add(copyIndex('dataDisks'), 1), 2, '0')))), null())), 'diskEncryptionSet', if(not(empty(tryGet(coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk, 'diskEncryptionSetResourceId'))), createObject('id', coalesce(parameters('dataDisks'), createArray())[copyIndex('dataDisks')].managedDisk.diskEncryptionSetResourceId), null())))]"
}
}
],
"imageReference": "[parameters('imageReference')]",
"osDisk": {
- "name": "[coalesce(tryGet(parameters('osDisk'), 'name'), format('{0}-disk-os-01', parameters('name')))]",
- "createOption": "[coalesce(tryGet(parameters('osDisk'), 'createOption'), 'FromImage')]",
- "deleteOption": "[coalesce(tryGet(parameters('osDisk'), 'deleteOption'), 'Delete')]",
+ "name": "[if(not(empty(tryGet(parameters('osDisk').managedDisk, 'resourceId'))), last(split(parameters('osDisk').managedDisk.resourceId, '/')), coalesce(tryGet(parameters('osDisk'), 'name'), format('{0}-disk-os-01', parameters('name'))))]",
+ "createOption": "[if(not(empty(tryGet(parameters('osDisk').managedDisk, 'resourceId'))), 'Attach', coalesce(tryGet(parameters('osDisk'), 'createOption'), 'FromImage'))]",
+ "osType": "[parameters('osType')]",
+ "deleteOption": "[if(not(empty(tryGet(parameters('osDisk').managedDisk, 'resourceId'))), 'Detach', coalesce(tryGet(parameters('osDisk'), 'deleteOption'), 'Delete'))]",
"diffDiskSettings": "[if(empty(coalesce(tryGet(parameters('osDisk'), 'diffDiskSettings'), createObject())), null(), createObject('option', 'Local', 'placement', parameters('osDisk').diffDiskSettings.placement))]",
"diskSizeGB": "[tryGet(parameters('osDisk'), 'diskSizeGB')]",
- "caching": "[coalesce(tryGet(parameters('osDisk'), 'caching'), 'ReadOnly')]",
+ "caching": "[if(not(empty(tryGet(parameters('osDisk').managedDisk, 'resourceId'))), 'None', coalesce(tryGet(parameters('osDisk'), 'caching'), 'ReadOnly'))]",
"managedDisk": {
"storageAccountType": "[tryGet(parameters('osDisk').managedDisk, 'storageAccountType')]",
- "diskEncryptionSet": {
- "id": "[tryGet(parameters('osDisk').managedDisk, 'diskEncryptionSetResourceId')]"
- }
+ "diskEncryptionSet": "[if(not(empty(tryGet(parameters('osDisk').managedDisk, 'diskEncryptionSetResourceId'))), createObject('id', tryGet(parameters('osDisk').managedDisk, 'diskEncryptionSetResourceId')), null())]",
+ "id": "[tryGet(parameters('osDisk').managedDisk, 'resourceId')]"
}
}
},
@@ -19392,16 +20017,7 @@
"ultraSSDEnabled": "[parameters('ultraSSDEnabled')]",
"hibernationEnabled": "[parameters('hibernationEnabled')]"
},
- "osProfile": {
- "computerName": "[parameters('computerName')]",
- "adminUsername": "[parameters('adminUsername')]",
- "adminPassword": "[parameters('adminPassword')]",
- "customData": "[if(not(empty(parameters('customData'))), base64(parameters('customData')), null())]",
- "windowsConfiguration": "[if(equals(parameters('osType'), 'Windows'), variables('windowsConfiguration'), null())]",
- "linuxConfiguration": "[if(equals(parameters('osType'), 'Linux'), variables('linuxConfiguration'), null())]",
- "secrets": "[parameters('certificatesToBeInstalled')]",
- "allowExtensionOperations": "[parameters('allowExtensionOperations')]"
- },
+ "osProfile": "[if(empty(tryGet(parameters('osDisk').managedDisk, 'resourceId')), createObject('computerName', parameters('computerName'), 'adminUsername', parameters('adminUsername'), 'adminPassword', parameters('adminPassword'), 'customData', if(not(empty(parameters('customData'))), base64(parameters('customData')), null()), 'windowsConfiguration', if(equals(parameters('osType'), 'Windows'), variables('windowsConfiguration'), null()), 'linuxConfiguration', if(equals(parameters('osType'), 'Linux'), variables('linuxConfiguration'), null()), 'secrets', parameters('certificatesToBeInstalled'), 'allowExtensionOperations', parameters('allowExtensionOperations')), null())]",
"networkProfile": {
"copy": [
{
@@ -19444,7 +20060,7 @@
"condition": "[not(empty(parameters('maintenanceConfigurationResourceId')))]",
"type": "Microsoft.Maintenance/configurationAssignments",
"apiVersion": "2023-04-01",
- "scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]",
"name": "[format('{0}assignment', parameters('name'))]",
"location": "[parameters('location')]",
"properties": {
@@ -19459,7 +20075,7 @@
"condition": "[not(empty(parameters('configurationProfile')))]",
"type": "Microsoft.Automanage/configurationProfileAssignments",
"apiVersion": "2022-05-04",
- "scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]",
"name": "default",
"properties": {
"configurationProfile": "[parameters('configurationProfile')]"
@@ -19474,6 +20090,7 @@
"apiVersion": "2018-09-15",
"name": "[format('shutdown-computevm-{0}', parameters('name'))]",
"location": "[parameters('location')]",
+ "tags": "[coalesce(tryGet(parameters('autoShutdownConfig'), 'tags'), parameters('tags'))]",
"properties": {
"status": "[coalesce(tryGet(parameters('autoShutdownConfig'), 'status'), 'Disabled')]",
"targetResourceId": "[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]",
@@ -19495,8 +20112,8 @@
},
"condition": "[parameters('extensionMonitoringAgentConfig').enabled]",
"type": "Microsoft.Insights/dataCollectionRuleAssociations",
- "apiVersion": "2023-03-11",
- "scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('name'))]",
+ "apiVersion": "2024-03-11",
+ "scope": "[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]",
"name": "[parameters('extensionMonitoringAgentConfig').dataCollectionRuleAssociations[copyIndex()].name]",
"properties": {
"dataCollectionRuleId": "[parameters('extensionMonitoringAgentConfig').dataCollectionRuleAssociations[copyIndex()].dataCollectionRuleResourceId]"
@@ -19519,7 +20136,7 @@
"condition": "[not(empty(parameters('guestConfiguration')))]",
"type": "Microsoft.GuestConfiguration/guestConfigurationAssignments",
"apiVersion": "2024-04-05",
- "scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('guestConfiguration'), 'name'), 'AzureWindowsBaseline')]",
"location": "[parameters('location')]",
"properties": {
@@ -19534,7 +20151,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -19551,7 +20168,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Compute/virtualMachines/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Compute/virtualMachines', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Compute/virtualMachines', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -19572,7 +20189,7 @@
"count": "[length(parameters('nicConfigurations'))]"
},
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-Nic-{1}', uniqueString(deployment().name, parameters('location')), copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -19625,8 +20242,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "774019590280042559"
+ "version": "0.41.2.15936",
+ "templateHash": "5982155361487304817"
}
},
"definitions": {
@@ -20230,7 +20847,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -20434,7 +21051,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -20539,7 +21156,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -20691,7 +21308,7 @@
},
"condition": "[and(not(empty(tryGet(parameters('ipConfigurations')[copyIndex()], 'pipConfiguration'))), empty(tryGet(tryGet(parameters('ipConfigurations')[copyIndex()], 'pipConfiguration'), 'publicIPAddressResourceId')))]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-publicIP-{1}', deployment().name, copyIndex())]",
"properties": {
"expressionEvaluationOptions": {
@@ -20758,106 +21375,13 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.36.177.2456",
- "templateHash": "14921988046704902194"
+ "version": "0.39.26.7824",
+ "templateHash": "5349747633189946992"
},
"name": "Public IP Addresses",
"description": "This module deploys a Public IP Address."
},
"definitions": {
- "dnsSettingsType": {
- "type": "object",
- "properties": {
- "domainNameLabel": {
- "type": "string",
- "metadata": {
- "description": "Required. The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system."
- }
- },
- "domainNameLabelScope": {
- "type": "string",
- "allowedValues": [
- "NoReuse",
- "ResourceGroupReuse",
- "SubscriptionReuse",
- "TenantReuse"
- ],
- "nullable": true,
- "metadata": {
- "description": "Optional. The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN."
- }
- },
- "fqdn": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone."
- }
- },
- "reverseFqdn": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN."
- }
- }
- },
- "metadata": {
- "__bicep_export!": true
- }
- },
- "ddosSettingsType": {
- "type": "object",
- "properties": {
- "ddosProtectionPlan": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "metadata": {
- "description": "Required. The resource ID of the DDOS protection plan associated with the public IP address."
- }
- }
- },
- "nullable": true,
- "metadata": {
- "description": "Optional. The DDoS protection plan associated with the public IP address."
- }
- },
- "protectionMode": {
- "type": "string",
- "allowedValues": [
- "Enabled"
- ],
- "metadata": {
- "description": "Required. The DDoS protection policy customizations."
- }
- }
- },
- "metadata": {
- "__bicep_export!": true
- }
- },
- "ipTagType": {
- "type": "object",
- "properties": {
- "ipTagType": {
- "type": "string",
- "metadata": {
- "description": "Required. The IP tag type."
- }
- },
- "tag": {
- "type": "string",
- "metadata": {
- "description": "Required. The IP tag."
- }
- }
- },
- "metadata": {
- "__bicep_export!": true
- }
- },
"diagnosticSettingFullType": {
"type": "object",
"properties": {
@@ -20976,7 +21500,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.2.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -21001,12 +21525,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.2.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -21081,7 +21612,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.2.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
}
@@ -21102,14 +21633,13 @@
},
"publicIPAllocationMethod": {
"type": "string",
- "defaultValue": "Static",
- "allowedValues": [
- "Dynamic",
- "Static"
- ],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/properties/properties/publicIPAllocationMethod"
+ },
"description": "Optional. The public IP address allocation method."
- }
+ },
+ "defaultValue": "Static"
},
"availabilityZones": {
"type": "array",
@@ -21132,31 +21662,33 @@
},
"publicIPAddressVersion": {
"type": "string",
- "defaultValue": "IPv4",
- "allowedValues": [
- "IPv4",
- "IPv6"
- ],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/properties/properties/publicIPAddressVersion"
+ },
"description": "Optional. IP address version."
- }
+ },
+ "defaultValue": "IPv4"
},
"dnsSettings": {
- "$ref": "#/definitions/dnsSettingsType",
- "nullable": true,
+ "type": "object",
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/properties/properties/dnsSettings"
+ },
"description": "Optional. The DNS settings of the public IP address."
- }
+ },
+ "nullable": true
},
"ipTags": {
"type": "array",
- "items": {
- "$ref": "#/definitions/ipTagType"
- },
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/properties/properties/ipTags"
+ },
"description": "Optional. The list of tags associated with the public IP address."
- }
+ },
+ "nullable": true
},
"lock": {
"$ref": "#/definitions/lockType",
@@ -21167,32 +21699,43 @@
},
"skuName": {
"type": "string",
- "defaultValue": "Standard",
- "allowedValues": [
- "Basic",
- "Standard"
- ],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/sku/properties/name"
+ },
"description": "Optional. Name of a public IP address SKU."
- }
+ },
+ "defaultValue": "Standard"
},
"skuTier": {
"type": "string",
- "defaultValue": "Regional",
- "allowedValues": [
- "Global",
- "Regional"
- ],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/sku/properties/tier"
+ },
"description": "Optional. Tier of a public IP address SKU."
- }
+ },
+ "defaultValue": "Regional"
},
"ddosSettings": {
- "$ref": "#/definitions/ddosSettingsType",
- "nullable": true,
+ "type": "object",
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/properties/properties/ddosSettings"
+ },
"description": "Optional. The DDoS protection plan configuration associated with the public IP address."
- }
+ },
+ "nullable": true
+ },
+ "deleteOption": {
+ "type": "string",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/properties/properties/deleteOption"
+ },
+ "description": "Optional. The delete option for the public IP address."
+ },
+ "nullable": true
},
"location": {
"type": "string",
@@ -21227,10 +21770,13 @@
},
"tags": {
"type": "object",
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/publicIPAddresses@2025-01-01#properties/tags"
+ },
"description": "Optional. Tags of the resource."
- }
+ },
+ "nullable": true
},
"diagnosticSettings": {
"type": "array",
@@ -21269,7 +21815,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-publicipaddress.{0}.{1}', replace('0.9.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-publicipaddress.{0}.{1}', replace('0.12.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -21287,7 +21833,7 @@
},
"publicIpAddress": {
"type": "Microsoft.Network/publicIPAddresses",
- "apiVersion": "2024-05-01",
+ "apiVersion": "2025-01-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -21303,7 +21849,8 @@
"publicIPAllocationMethod": "[parameters('publicIPAllocationMethod')]",
"publicIPPrefix": "[if(not(empty(parameters('publicIpPrefixResourceId'))), createObject('id', parameters('publicIpPrefixResourceId')), null())]",
"idleTimeoutInMinutes": "[parameters('idleTimeoutInMinutes')]",
- "ipTags": "[parameters('ipTags')]"
+ "ipTags": "[parameters('ipTags')]",
+ "deleteOption": "[parameters('deleteOption')]"
}
},
"publicIpAddress_lock": {
@@ -21314,7 +21861,7 @@
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
- "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]"
+ "notes": "[coalesce(tryGet(parameters('lock'), 'notes'), if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.'))]"
},
"dependsOn": [
"publicIpAddress"
@@ -21418,7 +21965,7 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('publicIpAddress', '2024-05-01', 'full').location]"
+ "value": "[reference('publicIpAddress', '2025-01-01', 'full').location]"
}
}
}
@@ -21426,7 +21973,7 @@
},
"networkInterface": {
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-NetworkInterface', deployment().name)]",
"properties": {
"expressionEvaluationOptions": {
@@ -21482,8 +22029,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.34.44.8038",
- "templateHash": "10218370167882238860"
+ "version": "0.38.5.1644",
+ "templateHash": "272838238520810437"
},
"name": "Network Interface",
"description": "This module deploys a Network Interface."
@@ -22054,12 +22601,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
}
}
},
@@ -22155,10 +22709,13 @@
},
"tags": {
"type": "object",
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/networkInterfaces@2024-07-01#properties/tags"
+ },
"description": "Optional. Resource tags."
- }
+ },
+ "nullable": true
},
"enableTelemetry": {
"type": "bool",
@@ -22304,7 +22861,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-networkinterface.{0}.{1}', replace('0.5.2', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-networkinterface.{0}.{1}', replace('0.5.3', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -22369,7 +22926,7 @@
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
- "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]"
+ "notes": "[coalesce(tryGet(parameters('lock'), 'notes'), if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.'))]"
},
"dependsOn": [
"networkInterface"
@@ -22509,7 +23066,7 @@
"vm_domainJoinExtension": {
"condition": "[and(contains(parameters('extensionDomainJoinConfig'), 'enabled'), parameters('extensionDomainJoinConfig').enabled)]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-DomainJoin', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -22542,7 +23099,7 @@
"value": "[coalesce(tryGet(parameters('extensionDomainJoinConfig'), 'enableAutomaticUpgrade'), false())]"
},
"settings": {
- "value": "[parameters('extensionDomainJoinConfig').settings]"
+ "value": "[coalesce(tryGet(parameters('extensionDomainJoinConfig'), 'settings'), createObject('Name', tryGet(parameters('extensionDomainJoinConfig'), 'domainName'), 'OUPath', tryGet(parameters('extensionDomainJoinConfig'), 'ouPath'), 'User', tryGet(parameters('extensionDomainJoinConfig'), 'user'), 'Restart', tryGet(parameters('extensionDomainJoinConfig'), 'restart'), 'Options', tryGet(parameters('extensionDomainJoinConfig'), 'options')))]"
},
"supressFailures": {
"value": "[coalesce(tryGet(parameters('extensionDomainJoinConfig'), 'supressFailures'), false())]"
@@ -22563,8 +23120,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -22745,7 +23302,7 @@
"vm_aadJoinExtension": {
"condition": "[parameters('extensionAadJoinConfig').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-AADLogin', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -22775,9 +23332,7 @@
"enableAutomaticUpgrade": {
"value": "[coalesce(tryGet(parameters('extensionAadJoinConfig'), 'enableAutomaticUpgrade'), false())]"
},
- "settings": {
- "value": "[coalesce(tryGet(parameters('extensionAadJoinConfig'), 'settings'), createObject())]"
- },
+ "settings": "[if(not(empty(variables('filteredAadJoinSettings'))), createObject('value', variables('filteredAadJoinSettings')), createObject('value', null()))]",
"supressFailures": {
"value": "[coalesce(tryGet(parameters('extensionAadJoinConfig'), 'supressFailures'), false())]"
},
@@ -22792,8 +23347,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -22975,7 +23530,7 @@
"vm_microsoftAntiMalwareExtension": {
"condition": "[parameters('extensionAntiMalwareConfig').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-MicrosoftAntiMalware', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -23024,8 +23579,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -23207,7 +23762,7 @@
"vm_azureMonitorAgentExtension": {
"condition": "[parameters('extensionMonitoringAgentConfig').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-AzureMonitorAgent', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -23237,6 +23792,9 @@
"enableAutomaticUpgrade": {
"value": "[coalesce(tryGet(parameters('extensionMonitoringAgentConfig'), 'enableAutomaticUpgrade'), false())]"
},
+ "settings": {
+ "value": "[coalesce(tryGet(parameters('extensionMonitoringAgentConfig'), 'settings'), createObject())]"
+ },
"supressFailures": {
"value": "[coalesce(tryGet(parameters('extensionMonitoringAgentConfig'), 'supressFailures'), false())]"
},
@@ -23251,8 +23809,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -23434,7 +23992,7 @@
"vm_dependencyAgentExtension": {
"condition": "[parameters('extensionDependencyAgentConfig').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-DependencyAgent', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -23483,8 +24041,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -23666,7 +24224,7 @@
"vm_networkWatcherAgentExtension": {
"condition": "[parameters('extensionNetworkWatcherAgentConfig').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-NetworkWatcherAgent', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -23710,8 +24268,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -23893,7 +24451,7 @@
"vm_desiredStateConfigurationExtension": {
"condition": "[parameters('extensionDSCConfig').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-DesiredStateConfiguration', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -23945,8 +24503,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -24128,7 +24686,7 @@
"vm_customScriptExtension": {
"condition": "[not(empty(parameters('extensionCustomScriptConfig')))]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-CustomScriptExtension', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -24185,8 +24743,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -24362,14 +24920,13 @@
},
"dependsOn": [
"cseIdentity",
- "vm",
- "vm_desiredStateConfigurationExtension"
+ "vm"
]
},
"vm_azureDiskEncryptionExtension": {
"condition": "[parameters('extensionAzureDiskEncryptionConfig').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-AzureDiskEncryption', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -24419,8 +24976,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -24602,7 +25159,7 @@
"vm_nvidiaGpuDriverWindowsExtension": {
"condition": "[parameters('extensionNvidiaGpuDriverWindows').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-NvidiaGpuDriverWindows', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -24648,8 +25205,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -24831,7 +25388,7 @@
"vm_hostPoolRegistrationExtension": {
"condition": "[parameters('extensionHostPoolRegistration').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-HostPoolRegistration', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -24869,12 +25426,20 @@
"configurationFunction": "[parameters('extensionHostPoolRegistration').configurationFunction]",
"properties": {
"hostPoolName": "[parameters('extensionHostPoolRegistration').hostPoolName]",
- "registrationInfoToken": "[parameters('extensionHostPoolRegistration').registrationInfoToken]",
"aadJoin": true
- },
- "supressFailures": "[coalesce(tryGet(parameters('extensionHostPoolRegistration'), 'supressFailures'), false())]"
+ }
}
},
+ "protectedSettings": {
+ "value": {
+ "properties": {
+ "registrationInfoToken": "[parameters('extensionHostPoolRegistration').registrationInfoToken]"
+ }
+ }
+ },
+ "supressFailures": {
+ "value": "[coalesce(tryGet(parameters('extensionHostPoolRegistration'), 'supressFailures'), false())]"
+ },
"tags": {
"value": "[coalesce(tryGet(parameters('extensionHostPoolRegistration'), 'tags'), parameters('tags'))]"
}
@@ -24886,8 +25451,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -25069,7 +25634,7 @@
"vm_azureGuestConfigurationExtension": {
"condition": "[parameters('extensionGuestConfigurationExtension').enabled]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-GuestConfiguration', uniqueString(deployment().name, parameters('location')))]",
"properties": {
"expressionEvaluationOptions": {
@@ -25120,8 +25685,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13125609748815648088"
+ "version": "0.41.2.15936",
+ "templateHash": "3581830278162851734"
},
"name": "Virtual Machine Extensions",
"description": "This module deploys a Virtual Machine Extension."
@@ -25303,7 +25868,7 @@
"vm_backup": {
"condition": "[not(empty(parameters('backupVaultName')))]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-VM-Backup', uniqueString(deployment().name, parameters('location')))]",
"resourceGroup": "[parameters('backupVaultResourceGroup')]",
"properties": {
@@ -25340,8 +25905,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13700395772485726477"
+ "version": "0.41.2.15936",
+ "templateHash": "17448691641471706096"
},
"name": "Recovery Service Vaults Protection Container Protected Item",
"description": "This module deploys a Recovery Services Vault Protection Container Protected Item."
@@ -25554,15 +26119,9 @@
"disableLocalAuth": {
"value": true
},
- "customSubDomainName": {
- "value": "[format('aif-{0}', variables('solutionSuffix'))]"
- },
"apiProperties": {
"value": {}
},
- "allowProjectManagement": {
- "value": true
- },
"managedIdentities": {
"value": {
"systemAssigned": true
@@ -25611,8 +26170,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "665208465907096971"
+ "version": "0.42.1.51946",
+ "templateHash": "9292767591417947872"
},
"name": "AI Services and Project Module",
"description": "This module creates an AI Services resource and an AI Foundry project within it. It supports private networking, OpenAI deployments, and role assignments."
@@ -25939,7 +26498,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -25981,7 +26540,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26022,7 +26581,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26051,7 +26610,7 @@
"metadata": {
"description": "An AVM-aligned type for the output of the secret set via the secrets export feature.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26117,7 +26676,7 @@
"metadata": {
"description": "An AVM-aligned type for a customer-managed key. To be used if the resource type does not support auto-rotation of the customer-managed key.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26239,7 +26798,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26264,12 +26823,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26297,7 +26863,7 @@
"metadata": {
"description": "An AVM-aligned type for a managed identity configuration. To be used if both a system-assigned & user-assigned identities are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26425,6 +26991,9 @@
"type": "object",
"nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2024-07-01#properties/tags"
+ },
"description": "Optional. Tags to be applied on all resources/Resource Groups in this deployment."
}
},
@@ -26439,7 +27008,7 @@
"metadata": {
"description": "An AVM-aligned type for a private endpoint. To be used if the private endpoint's default service / groupId can be assumed (i.e., for services that only have one Private Endpoint type like 'vault' for key vault).",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26514,7 +27083,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -26530,7 +27099,7 @@
"metadata": {
"description": "A map of the exported secrets",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -26672,13 +27241,6 @@
"description": "Optional. Whether or not public network access is allowed for this resource. For security reasons it should be disabled. If not specified, it will be disabled by default if private endpoints are set and networkAcls are not set."
}
},
- "customSubDomainName": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Conditional. Subdomain name used for token-based authentication. Required if 'networkAcls' or 'privateEndpoints' are set."
- }
- },
"networkAcls": {
"type": "object",
"nullable": true,
@@ -26793,13 +27355,6 @@
"metadata": {
"description": "Optional. Key vault reference and secret settings for the module's secrets export."
}
- },
- "allowProjectManagement": {
- "type": "bool",
- "nullable": true,
- "metadata": {
- "description": "Optional. Enable/Disable project management feature for AI Foundry."
- }
}
},
"variables": {
@@ -26824,7 +27379,7 @@
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
+ "apiVersion": "2025-04-01",
"name": "[format('46d3xbcp.res.cognitiveservices-account.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
@@ -26845,7 +27400,7 @@
"condition": "[not(empty(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId')))]",
"existing": true,
"type": "Microsoft.KeyVault/vaults",
- "apiVersion": "2025-05-01",
+ "apiVersion": "2026-02-01",
"subscriptionId": "[split(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'), '/')[2]]",
"resourceGroup": "[split(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'), '/')[4]]",
"name": "[last(split(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'), '/'))]"
@@ -26862,7 +27417,7 @@
"cognitiveServiceNew": {
"condition": "[not(variables('useExistingService'))]",
"type": "Microsoft.CognitiveServices/accounts",
- "apiVersion": "2025-07-01-preview",
+ "apiVersion": "2025-12-01",
"name": "[parameters('name')]",
"kind": "[parameters('kind')]",
"identity": "[variables('identity')]",
@@ -26896,7 +27451,7 @@
"condition": "[variables('useExistingService')]",
"existing": true,
"type": "Microsoft.CognitiveServices/accounts",
- "apiVersion": "2025-04-01-preview",
+ "apiVersion": "2025-12-01",
"subscriptionId": "[variables('existingCognitiveServiceDetails')[2]]",
"resourceGroup": "[variables('existingCognitiveServiceDetails')[4]]",
"name": "[variables('existingCognitiveServiceDetails')[8]]"
@@ -26952,8 +27507,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "7604365129625921085"
+ "version": "0.42.1.51946",
+ "templateHash": "17679330702241672588"
}
},
"definitions": {
@@ -27194,7 +27749,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27236,7 +27791,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27277,7 +27832,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27306,7 +27861,7 @@
"metadata": {
"description": "An AVM-aligned type for the output of the secret set via the secrets export feature.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27457,7 +28012,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27482,12 +28037,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27615,6 +28177,9 @@
"type": "object",
"nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2024-07-01#properties/tags"
+ },
"description": "Optional. Tags to be applied on all resources/Resource Groups in this deployment."
}
},
@@ -27629,7 +28194,7 @@
"metadata": {
"description": "An AVM-aligned type for a private endpoint. To be used if the private endpoint's default service / groupId can be assumed (i.e., for services that only have one Private Endpoint type like 'vault' for key vault).",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27704,7 +28269,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -27720,7 +28285,7 @@
"metadata": {
"description": "A map of the exported secrets",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -27892,7 +28457,7 @@
"cognitiveService": {
"existing": true,
"type": "Microsoft.CognitiveServices/accounts",
- "apiVersion": "2025-07-01-preview",
+ "apiVersion": "2025-12-01",
"name": "[parameters('name')]"
},
"cognitiveService_deployments": {
@@ -27903,7 +28468,7 @@
"batchSize": 1
},
"type": "Microsoft.CognitiveServices/accounts/deployments",
- "apiVersion": "2025-04-01-preview",
+ "apiVersion": "2026-03-01",
"name": "[format('{0}/{1}', parameters('name'), coalesce(tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'name'), format('{0}-deployments', parameters('name'))))]",
"properties": {
"model": "[coalesce(parameters('deployments'), createArray())[copyIndex()].model]",
@@ -28045,8 +28610,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.5.1644",
- "templateHash": "16604612898799598358"
+ "version": "0.41.2.15936",
+ "templateHash": "18436885663402767850"
},
"name": "Private Endpoints",
"description": "This module deploys a Private Endpoint."
@@ -28110,7 +28675,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -28209,7 +28774,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -28248,12 +28813,22 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/ipConfigurations"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/ipConfigurations"
},
"description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints."
},
"nullable": true
},
+ "ipVersionType": {
+ "type": "string",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/ipVersionType"
+ },
+ "description": "Optional. Specifies the IP version type for the private IPs of the private endpoint. If not defined, this defaults to IPv4."
+ },
+ "defaultValue": "IPv4"
+ },
"privateDnsZoneGroup": {
"$ref": "#/definitions/privateDnsZoneGroupType",
"nullable": true,
@@ -28289,7 +28864,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/tags"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/tags"
},
"description": "Optional. Tags to be applied on all resources/resource groups in this deployment."
},
@@ -28299,7 +28874,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/customDnsConfigs"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/customDnsConfigs"
},
"description": "Optional. Custom DNS configurations."
},
@@ -28309,7 +28884,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/manualPrivateLinkServiceConnections"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/manualPrivateLinkServiceConnections"
},
"description": "Conditional. A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. Required if `privateLinkServiceConnections` is empty."
},
@@ -28319,7 +28894,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/privateLinkServiceConnections"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/privateLinkServiceConnections"
},
"description": "Conditional. A grouping of information about the connection to the remote resource. Required if `manualPrivateLinkServiceConnections` is empty."
},
@@ -28359,7 +28934,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
- "name": "[format('46d3xbcp.res.network-privateendpoint.{0}.{1}', replace('0.11.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-privateendpoint.{0}.{1}', replace('0.12.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -28377,7 +28952,7 @@
},
"privateEndpoint": {
"type": "Microsoft.Network/privateEndpoints",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2025-05-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -28398,14 +28973,15 @@
"privateLinkServiceConnections": "[coalesce(parameters('privateLinkServiceConnections'), createArray())]",
"subnet": {
"id": "[parameters('subnetResourceId')]"
- }
+ },
+ "ipVersionType": "[parameters('ipVersionType')]"
}
},
"privateEndpoint_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Network/privateEndpoints/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateEndpoints', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -28422,7 +28998,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateEndpoints/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateEndpoints', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateEndpoints', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -28465,8 +29041,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.5.1644",
- "templateHash": "24141742673128945"
+ "version": "0.41.2.15936",
+ "templateHash": "9935179114830442414"
},
"name": "Private Endpoint Private DNS Zone Groups",
"description": "This module deploys a Private Endpoint Private DNS Zone Group."
@@ -28525,12 +29101,12 @@
"privateEndpoint": {
"existing": true,
"type": "Microsoft.Network/privateEndpoints",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2025-05-01",
"name": "[parameters('privateEndpointName')]"
},
"privateDnsZoneGroup": {
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2025-05-01",
"name": "[format('{0}/{1}', parameters('privateEndpointName'), parameters('name'))]",
"properties": {
"copy": [
@@ -28605,13 +29181,13 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('privateEndpoint', '2024-10-01', 'full').location]"
+ "value": "[reference('privateEndpoint', '2025-05-01', 'full').location]"
},
"customDnsConfigs": {
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/customDnsConfigs",
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/customDnsConfigs",
"output": true
},
"description": "The custom DNS configurations of the private endpoint."
@@ -28657,7 +29233,7 @@
"value": "[last(split(tryGet(parameters('secretsExportConfiguration'), 'keyVaultResourceId'), '/'))]"
},
"secretsToSet": {
- "value": "[union(createArray(), if(contains(parameters('secretsExportConfiguration'), 'accessKey1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey1Name'), 'value', listKeys('cognitiveService', '2025-07-01-preview').key1)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'accessKey2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey2Name'), 'value', listKeys('cognitiveService', '2025-07-01-preview').key2)), createArray()))]"
+ "value": "[union(createArray(), if(contains(parameters('secretsExportConfiguration'), 'accessKey1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey1Name'), 'value', listKeys('cognitiveService', '2025-12-01').key1)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'accessKey2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey2Name'), 'value', listKeys('cognitiveService', '2025-12-01').key2)), createArray()))]"
}
},
"template": {
@@ -28667,8 +29243,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "14939823368517410024"
+ "version": "0.42.1.51946",
+ "templateHash": "12801288885438838277"
}
},
"definitions": {
@@ -28697,7 +29273,7 @@
"metadata": {
"description": "An AVM-aligned type for the output of the secret set via the secrets export feature.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -28720,7 +29296,7 @@
"metadata": {
"description": "An AVM-aligned type for the secret to set via the secrets export feature.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -28746,7 +29322,7 @@
"keyVault": {
"existing": true,
"type": "Microsoft.KeyVault/vaults",
- "apiVersion": "2025-05-01",
+ "apiVersion": "2026-02-01",
"name": "[parameters('keyVaultName')]"
},
"secrets": {
@@ -28755,7 +29331,7 @@
"count": "[length(parameters('secretsToSet'))]"
},
"type": "Microsoft.KeyVault/vaults/secrets",
- "apiVersion": "2025-05-01",
+ "apiVersion": "2026-02-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretsToSet')[copyIndex()].name)]",
"properties": {
"value": "[parameters('secretsToSet')[copyIndex()].value]"
@@ -28821,8 +29397,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "13151306134286549002"
+ "version": "0.42.1.51946",
+ "templateHash": "6439859910553532577"
}
},
"definitions": {
@@ -28905,13 +29481,13 @@
"cogServiceReference": {
"existing": true,
"type": "Microsoft.CognitiveServices/accounts",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2026-03-01",
"name": "[parameters('aiServicesName')]"
},
"aiProject": {
"condition": "[not(variables('useExistingProject'))]",
"type": "Microsoft.CognitiveServices/accounts/projects",
- "apiVersion": "2025-07-01-preview",
+ "apiVersion": "2026-03-01",
"name": "[format('{0}/{1}', parameters('aiServicesName'), parameters('name'))]",
"tags": "[parameters('tags')]",
"location": "[parameters('location')]",
@@ -29039,8 +29615,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "7604365129625921085"
+ "version": "0.42.1.51946",
+ "templateHash": "17679330702241672588"
}
},
"definitions": {
@@ -29281,7 +29857,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29323,7 +29899,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29364,7 +29940,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29393,7 +29969,7 @@
"metadata": {
"description": "An AVM-aligned type for the output of the secret set via the secrets export feature.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29544,7 +30120,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29569,12 +30145,19 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
+ }
}
},
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29702,6 +30285,9 @@
"type": "object",
"nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2024-07-01#properties/tags"
+ },
"description": "Optional. Tags to be applied on all resources/Resource Groups in this deployment."
}
},
@@ -29716,7 +30302,7 @@
"metadata": {
"description": "An AVM-aligned type for a private endpoint. To be used if the private endpoint's default service / groupId can be assumed (i.e., for services that only have one Private Endpoint type like 'vault' for key vault).",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29791,7 +30377,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -29807,7 +30393,7 @@
"metadata": {
"description": "A map of the exported secrets",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -29979,7 +30565,7 @@
"cognitiveService": {
"existing": true,
"type": "Microsoft.CognitiveServices/accounts",
- "apiVersion": "2025-07-01-preview",
+ "apiVersion": "2025-12-01",
"name": "[parameters('name')]"
},
"cognitiveService_deployments": {
@@ -29990,7 +30576,7 @@
"batchSize": 1
},
"type": "Microsoft.CognitiveServices/accounts/deployments",
- "apiVersion": "2025-04-01-preview",
+ "apiVersion": "2026-03-01",
"name": "[format('{0}/{1}', parameters('name'), coalesce(tryGet(coalesce(parameters('deployments'), createArray())[copyIndex()], 'name'), format('{0}-deployments', parameters('name'))))]",
"properties": {
"model": "[coalesce(parameters('deployments'), createArray())[copyIndex()].model]",
@@ -30132,8 +30718,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.5.1644",
- "templateHash": "16604612898799598358"
+ "version": "0.41.2.15936",
+ "templateHash": "18436885663402767850"
},
"name": "Private Endpoints",
"description": "This module deploys a Private Endpoint."
@@ -30197,7 +30783,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -30296,7 +30882,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -30335,12 +30921,22 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/ipConfigurations"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/ipConfigurations"
},
"description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints."
},
"nullable": true
},
+ "ipVersionType": {
+ "type": "string",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/ipVersionType"
+ },
+ "description": "Optional. Specifies the IP version type for the private IPs of the private endpoint. If not defined, this defaults to IPv4."
+ },
+ "defaultValue": "IPv4"
+ },
"privateDnsZoneGroup": {
"$ref": "#/definitions/privateDnsZoneGroupType",
"nullable": true,
@@ -30376,7 +30972,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/tags"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/tags"
},
"description": "Optional. Tags to be applied on all resources/resource groups in this deployment."
},
@@ -30386,7 +30982,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/customDnsConfigs"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/customDnsConfigs"
},
"description": "Optional. Custom DNS configurations."
},
@@ -30396,7 +30992,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/manualPrivateLinkServiceConnections"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/manualPrivateLinkServiceConnections"
},
"description": "Conditional. A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. Required if `privateLinkServiceConnections` is empty."
},
@@ -30406,7 +31002,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/privateLinkServiceConnections"
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/privateLinkServiceConnections"
},
"description": "Conditional. A grouping of information about the connection to the remote resource. Required if `manualPrivateLinkServiceConnections` is empty."
},
@@ -30446,7 +31042,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
- "name": "[format('46d3xbcp.res.network-privateendpoint.{0}.{1}', replace('0.11.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.network-privateendpoint.{0}.{1}', replace('0.12.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -30464,7 +31060,7 @@
},
"privateEndpoint": {
"type": "Microsoft.Network/privateEndpoints",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2025-05-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -30485,14 +31081,15 @@
"privateLinkServiceConnections": "[coalesce(parameters('privateLinkServiceConnections'), createArray())]",
"subnet": {
"id": "[parameters('subnetResourceId')]"
- }
+ },
+ "ipVersionType": "[parameters('ipVersionType')]"
}
},
"privateEndpoint_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Network/privateEndpoints/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateEndpoints', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -30509,7 +31106,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateEndpoints/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateEndpoints', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateEndpoints', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -30552,8 +31149,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.5.1644",
- "templateHash": "24141742673128945"
+ "version": "0.41.2.15936",
+ "templateHash": "9935179114830442414"
},
"name": "Private Endpoint Private DNS Zone Groups",
"description": "This module deploys a Private Endpoint Private DNS Zone Group."
@@ -30612,12 +31209,12 @@
"privateEndpoint": {
"existing": true,
"type": "Microsoft.Network/privateEndpoints",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2025-05-01",
"name": "[parameters('privateEndpointName')]"
},
"privateDnsZoneGroup": {
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2025-05-01",
"name": "[format('{0}/{1}', parameters('privateEndpointName'), parameters('name'))]",
"properties": {
"copy": [
@@ -30692,13 +31289,13 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('privateEndpoint', '2024-10-01', 'full').location]"
+ "value": "[reference('privateEndpoint', '2025-05-01', 'full').location]"
},
"customDnsConfigs": {
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Network/privateEndpoints@2024-01-01#properties/properties/properties/customDnsConfigs",
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/customDnsConfigs",
"output": true
},
"description": "The custom DNS configurations of the private endpoint."
@@ -30744,7 +31341,7 @@
"value": "[last(split(tryGet(parameters('secretsExportConfiguration'), 'keyVaultResourceId'), '/'))]"
},
"secretsToSet": {
- "value": "[union(createArray(), if(contains(parameters('secretsExportConfiguration'), 'accessKey1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey1Name'), 'value', listKeys('cognitiveService', '2025-07-01-preview').key1)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'accessKey2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey2Name'), 'value', listKeys('cognitiveService', '2025-07-01-preview').key2)), createArray()))]"
+ "value": "[union(createArray(), if(contains(parameters('secretsExportConfiguration'), 'accessKey1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey1Name'), 'value', listKeys('cognitiveService', '2025-12-01').key1)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'accessKey2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey2Name'), 'value', listKeys('cognitiveService', '2025-12-01').key2)), createArray()))]"
}
},
"template": {
@@ -30754,8 +31351,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "14939823368517410024"
+ "version": "0.42.1.51946",
+ "templateHash": "12801288885438838277"
}
},
"definitions": {
@@ -30784,7 +31381,7 @@
"metadata": {
"description": "An AVM-aligned type for the output of the secret set via the secrets export feature.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -30807,7 +31404,7 @@
"metadata": {
"description": "An AVM-aligned type for the secret to set via the secrets export feature.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -30833,7 +31430,7 @@
"keyVault": {
"existing": true,
"type": "Microsoft.KeyVault/vaults",
- "apiVersion": "2025-05-01",
+ "apiVersion": "2026-02-01",
"name": "[parameters('keyVaultName')]"
},
"secrets": {
@@ -30842,7 +31439,7 @@
"count": "[length(parameters('secretsToSet'))]"
},
"type": "Microsoft.KeyVault/vaults/secrets",
- "apiVersion": "2025-05-01",
+ "apiVersion": "2026-02-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretsToSet')[copyIndex()].name)]",
"properties": {
"value": "[parameters('secretsToSet')[copyIndex()].value]"
@@ -30908,8 +31505,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "13151306134286549002"
+ "version": "0.42.1.51946",
+ "templateHash": "6439859910553532577"
}
},
"definitions": {
@@ -30992,13 +31589,13 @@
"cogServiceReference": {
"existing": true,
"type": "Microsoft.CognitiveServices/accounts",
- "apiVersion": "2024-10-01",
+ "apiVersion": "2026-03-01",
"name": "[parameters('aiServicesName')]"
},
"aiProject": {
"condition": "[not(variables('useExistingProject'))]",
"type": "Microsoft.CognitiveServices/accounts/projects",
- "apiVersion": "2025-07-01-preview",
+ "apiVersion": "2026-03-01",
"name": "[format('{0}/{1}', parameters('aiServicesName'), parameters('name'))]",
"tags": "[parameters('tags')]",
"location": "[parameters('location')]",
@@ -31098,14 +31695,14 @@
"metadata": {
"description": "The service endpoint of the cognitive services account."
},
- "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting').endpoint, if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-04-01-preview', 'full'), reference('cognitiveServiceNew', '2025-07-01-preview', 'full')).properties.endpoint)]"
+ "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting').endpoint, reference('cognitiveServiceNew').endpoint)]"
},
"endpoints": {
"$ref": "#/definitions/endpointType",
"metadata": {
"description": "All endpoints available for the cognitive services account, types depends on the cognitive service kind."
},
- "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting').endpoints, if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-04-01-preview', 'full'), reference('cognitiveServiceNew', '2025-07-01-preview', 'full')).properties.endpoints)]"
+ "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting').endpoints, reference('cognitiveServiceNew').endpoints)]"
},
"systemAssignedMIPrincipalId": {
"type": "string",
@@ -31113,14 +31710,14 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
- "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-04-01-preview', 'full').identity.principalId, tryGet(tryGet(if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-04-01-preview', 'full'), reference('cognitiveServiceNew', '2025-07-01-preview', 'full')), 'identity'), 'principalId'))]"
+ "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-12-01', 'full').identity.principalId, tryGet(tryGet(if(not(variables('useExistingService')), reference('cognitiveServiceNew', '2025-12-01', 'full'), null()), 'identity'), 'principalId'))]"
},
"location": {
"type": "string",
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-04-01-preview', 'full').location, if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-04-01-preview', 'full'), reference('cognitiveServiceNew', '2025-07-01-preview', 'full')).location)]"
+ "value": "[if(variables('useExistingService'), reference('cognitiveServiceExisting', '2025-12-01', 'full').location, reference('cognitiveServiceNew', '2025-12-01', 'full').location)]"
},
"exportedSecrets": {
"$ref": "#/definitions/secretsOutputType",
@@ -31217,12 +31814,11 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.30.23.60470",
- "templateHash": "2541425927059591098"
+ "version": "0.41.2.15936",
+ "templateHash": "18436885663402767850"
},
"name": "Private Endpoints",
- "description": "This module deploys a Private Endpoint.",
- "owner": "Azure/module-maintainers"
+ "description": "This module deploys a Private Endpoint."
},
"definitions": {
"privateDnsZoneGroupType": {
@@ -31244,80 +31840,11 @@
"description": "Required. The private DNS zone groups to associate the private endpoint. A DNS zone group can support up to 5 DNS zones."
}
}
- }
- },
- "roleAssignmentType": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. The name (as GUID) of the role assignment. If not provided, a GUID will be generated."
- }
- },
- "roleDefinitionIdOrName": {
- "type": "string",
- "metadata": {
- "description": "Required. The role to assign. You can provide either the display name of the role definition, the role definition GUID, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'."
- }
- },
- "principalId": {
- "type": "string",
- "metadata": {
- "description": "Required. The principal ID of the principal (user/group/identity) to assign the role to."
- }
- },
- "principalType": {
- "type": "string",
- "allowedValues": [
- "Device",
- "ForeignGroup",
- "Group",
- "ServicePrincipal",
- "User"
- ],
- "nullable": true,
- "metadata": {
- "description": "Optional. The principal type of the assigned principal ID."
- }
- },
- "description": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. The description of the role assignment."
- }
- },
- "condition": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase \"foo_storage_container\"."
- }
- },
- "conditionVersion": {
- "type": "string",
- "allowedValues": [
- "2.0"
- ],
- "nullable": true,
- "metadata": {
- "description": "Optional. Version of the condition."
- }
- },
- "delegatedManagedIdentityResourceId": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. The Resource Id of the delegated managed identity resource."
- }
- }
- }
},
- "nullable": true
+ "metadata": {
+ "__bicep_export!": true,
+ "description": "The type of a private dns zone group."
+ }
},
"lockType": {
"type": "object",
@@ -31340,165 +31867,21 @@
"metadata": {
"description": "Optional. Specify the type of lock."
}
- }
- },
- "nullable": true
- },
- "ipConfigurationsType": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "metadata": {
- "description": "Required. The name of the resource that is unique within a resource group."
- }
- },
- "properties": {
- "type": "object",
- "properties": {
- "groupId": {
- "type": "string",
- "metadata": {
- "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to. If used with private link service connection, this property must be defined as empty string."
- }
- },
- "memberName": {
- "type": "string",
- "metadata": {
- "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to. If used with private link service connection, this property must be defined as empty string."
- }
- },
- "privateIPAddress": {
- "type": "string",
- "metadata": {
- "description": "Required. A private IP address obtained from the private endpoint's subnet."
- }
- }
- },
- "metadata": {
- "description": "Required. Properties of private endpoint IP configurations."
- }
- }
- }
- },
- "nullable": true
- },
- "manualPrivateLinkServiceConnectionsType": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "metadata": {
- "description": "Required. The name of the private link service connection."
- }
- },
- "properties": {
- "type": "object",
- "properties": {
- "groupIds": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "metadata": {
- "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to. If used with private link service connection, this property must be defined as empty string array `[]`."
- }
- },
- "privateLinkServiceId": {
- "type": "string",
- "metadata": {
- "description": "Required. The resource id of private link service."
- }
- },
- "requestMessage": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars."
- }
- }
- },
- "metadata": {
- "description": "Required. Properties of private link service connection."
- }
- }
- }
- },
- "nullable": true
- },
- "privateLinkServiceConnectionsType": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "metadata": {
- "description": "Required. The name of the private link service connection."
- }
- },
- "properties": {
- "type": "object",
- "properties": {
- "groupIds": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "metadata": {
- "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to. If used with private link service connection, this property must be defined as empty string array `[]`."
- }
- },
- "privateLinkServiceId": {
- "type": "string",
- "metadata": {
- "description": "Required. The resource id of private link service."
- }
- },
- "requestMessage": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars."
- }
- }
- },
- "metadata": {
- "description": "Required. Properties of private link service connection."
- }
+ },
+ "notes": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Specify the notes of the lock."
}
}
},
- "nullable": true
- },
- "customDnsConfigType": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "fqdn": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. FQDN that resolves to private endpoint IP address."
- }
- },
- "ipAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "metadata": {
- "description": "Required. A list of private IP addresses of the private endpoint."
- }
- }
+ "metadata": {
+ "description": "An AVM-aligned type for a lock.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
- },
- "nullable": true
+ }
},
"privateDnsZoneGroupConfigType": {
"type": "object",
@@ -31518,10 +31901,86 @@
}
},
"metadata": {
+ "description": "The type of a private DNS zone group configuration.",
"__bicep_imported_from!": {
"sourceTemplate": "private-dns-zone-group/main.bicep"
}
}
+ },
+ "roleAssignmentType": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The name (as GUID) of the role assignment. If not provided, a GUID will be generated."
+ }
+ },
+ "roleDefinitionIdOrName": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The role to assign. You can provide either the display name of the role definition, the role definition GUID, or its fully qualified ID in the following format: '/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11'."
+ }
+ },
+ "principalId": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The principal ID of the principal (user/group/identity) to assign the role to."
+ }
+ },
+ "principalType": {
+ "type": "string",
+ "allowedValues": [
+ "Device",
+ "ForeignGroup",
+ "Group",
+ "ServicePrincipal",
+ "User"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The principal type of the assigned principal ID."
+ }
+ },
+ "description": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The description of the role assignment."
+ }
+ },
+ "condition": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The conditions on the role assignment. This limits the resources it can be assigned to. e.g.: @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:ContainerName] StringEqualsIgnoreCase \"foo_storage_container\"."
+ }
+ },
+ "conditionVersion": {
+ "type": "string",
+ "allowedValues": [
+ "2.0"
+ ],
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. Version of the condition."
+ }
+ },
+ "delegatedManagedIdentityResourceId": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The Resource Id of the delegated managed identity resource."
+ }
+ }
+ },
+ "metadata": {
+ "description": "An AVM-aligned type for a role assignment.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
+ }
+ }
}
},
"parameters": {
@@ -31539,6 +31998,9 @@
},
"applicationSecurityGroupResourceIds": {
"type": "array",
+ "items": {
+ "type": "string"
+ },
"nullable": true,
"metadata": {
"description": "Optional. Application security groups in which the private endpoint IP configuration is included."
@@ -31552,10 +32014,24 @@
}
},
"ipConfigurations": {
- "$ref": "#/definitions/ipConfigurationsType",
+ "type": "array",
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/ipConfigurations"
+ },
"description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints."
- }
+ },
+ "nullable": true
+ },
+ "ipVersionType": {
+ "type": "string",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/ipVersionType"
+ },
+ "description": "Optional. Specifies the IP version type for the private IPs of the private endpoint. If not defined, this defaults to IPv4."
+ },
+ "defaultValue": "IPv4"
},
"privateDnsZoneGroup": {
"$ref": "#/definitions/privateDnsZoneGroupType",
@@ -31573,40 +32049,60 @@
},
"lock": {
"$ref": "#/definitions/lockType",
+ "nullable": true,
"metadata": {
"description": "Optional. The lock settings of the service."
}
},
"roleAssignments": {
- "$ref": "#/definitions/roleAssignmentType",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/roleAssignmentType"
+ },
+ "nullable": true,
"metadata": {
"description": "Optional. Array of role assignments to create."
}
},
"tags": {
"type": "object",
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/tags"
+ },
"description": "Optional. Tags to be applied on all resources/resource groups in this deployment."
- }
+ },
+ "nullable": true
},
"customDnsConfigs": {
- "$ref": "#/definitions/customDnsConfigType",
+ "type": "array",
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/customDnsConfigs"
+ },
"description": "Optional. Custom DNS configurations."
- }
+ },
+ "nullable": true
},
"manualPrivateLinkServiceConnections": {
- "$ref": "#/definitions/manualPrivateLinkServiceConnectionsType",
+ "type": "array",
"metadata": {
- "description": "Optional. A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource."
- }
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/manualPrivateLinkServiceConnections"
+ },
+ "description": "Conditional. A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. Required if `privateLinkServiceConnections` is empty."
+ },
+ "nullable": true
},
"privateLinkServiceConnections": {
- "$ref": "#/definitions/privateLinkServiceConnectionsType",
+ "type": "array",
"metadata": {
- "description": "Optional. A grouping of information about the connection to the remote resource."
- }
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/privateLinkServiceConnections"
+ },
+ "description": "Conditional. A grouping of information about the connection to the remote resource. Required if `manualPrivateLinkServiceConnections` is empty."
+ },
+ "nullable": true
},
"enableTelemetry": {
"type": "bool",
@@ -31641,8 +32137,8 @@
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.network-privateendpoint.{0}.{1}', replace('0.8.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('46d3xbcp.res.network-privateendpoint.{0}.{1}', replace('0.12.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -31660,7 +32156,7 @@
},
"privateEndpoint": {
"type": "Microsoft.Network/privateEndpoints",
- "apiVersion": "2023-11-01",
+ "apiVersion": "2025-05-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -31681,18 +32177,19 @@
"privateLinkServiceConnections": "[coalesce(parameters('privateLinkServiceConnections'), createArray())]",
"subnet": {
"id": "[parameters('subnetResourceId')]"
- }
+ },
+ "ipVersionType": "[parameters('ipVersionType')]"
}
},
"privateEndpoint_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Network/privateEndpoints/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateEndpoints', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
- "notes": "[if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.')]"
+ "notes": "[coalesce(tryGet(parameters('lock'), 'notes'), if(equals(tryGet(parameters('lock'), 'kind'), 'CanNotDelete'), 'Cannot delete resource or child resources.', 'Cannot delete or modify the resource or child resources.'))]"
},
"dependsOn": [
"privateEndpoint"
@@ -31705,7 +32202,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Network/privateEndpoints/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Network/privateEndpoints', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Network/privateEndpoints', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -31723,7 +32220,7 @@
"privateEndpoint_privateDnsZoneGroup": {
"condition": "[not(empty(parameters('privateDnsZoneGroup')))]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-PrivateEndpoint-PrivateDnsZoneGroup', uniqueString(deployment().name))]",
"properties": {
"expressionEvaluationOptions": {
@@ -31748,12 +32245,11 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.30.23.60470",
- "templateHash": "12329174801198479603"
+ "version": "0.41.2.15936",
+ "templateHash": "9935179114830442414"
},
"name": "Private Endpoint Private DNS Zone Groups",
- "description": "This module deploys a Private Endpoint Private DNS Zone Group.",
- "owner": "Azure/module-maintainers"
+ "description": "This module deploys a Private Endpoint Private DNS Zone Group."
},
"definitions": {
"privateDnsZoneGroupConfigType": {
@@ -31774,7 +32270,8 @@
}
},
"metadata": {
- "__bicep_export!": true
+ "__bicep_export!": true,
+ "description": "The type of a private DNS zone group configuration."
}
}
},
@@ -31804,37 +32301,31 @@
}
}
},
- "variables": {
- "copy": [
- {
- "name": "privateDnsZoneConfigsVar",
- "count": "[length(parameters('privateDnsZoneConfigs'))]",
- "input": {
- "name": "[coalesce(tryGet(parameters('privateDnsZoneConfigs')[copyIndex('privateDnsZoneConfigsVar')], 'name'), last(split(parameters('privateDnsZoneConfigs')[copyIndex('privateDnsZoneConfigsVar')].privateDnsZoneResourceId, '/')))]",
- "properties": {
- "privateDnsZoneId": "[parameters('privateDnsZoneConfigs')[copyIndex('privateDnsZoneConfigsVar')].privateDnsZoneResourceId]"
- }
- }
- }
- ]
- },
"resources": {
"privateEndpoint": {
"existing": true,
"type": "Microsoft.Network/privateEndpoints",
- "apiVersion": "2023-11-01",
+ "apiVersion": "2025-05-01",
"name": "[parameters('privateEndpointName')]"
},
"privateDnsZoneGroup": {
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
- "apiVersion": "2023-11-01",
+ "apiVersion": "2025-05-01",
"name": "[format('{0}/{1}', parameters('privateEndpointName'), parameters('name'))]",
"properties": {
- "privateDnsZoneConfigs": "[variables('privateDnsZoneConfigsVar')]"
- },
- "dependsOn": [
- "privateEndpoint"
- ]
+ "copy": [
+ {
+ "name": "privateDnsZoneConfigs",
+ "count": "[length(parameters('privateDnsZoneConfigs'))]",
+ "input": {
+ "name": "[coalesce(tryGet(parameters('privateDnsZoneConfigs')[copyIndex('privateDnsZoneConfigs')], 'name'), last(split(parameters('privateDnsZoneConfigs')[copyIndex('privateDnsZoneConfigs')].privateDnsZoneResourceId, '/')))]",
+ "properties": {
+ "privateDnsZoneId": "[parameters('privateDnsZoneConfigs')[copyIndex('privateDnsZoneConfigs')].privateDnsZoneResourceId]"
+ }
+ }
+ }
+ ]
+ }
}
},
"outputs": {
@@ -31894,28 +32385,36 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('privateEndpoint', '2023-11-01', 'full').location]"
+ "value": "[reference('privateEndpoint', '2025-05-01', 'full').location]"
},
- "customDnsConfig": {
- "$ref": "#/definitions/customDnsConfigType",
+ "customDnsConfigs": {
+ "type": "array",
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.Network/privateEndpoints@2025-05-01#properties/properties/properties/customDnsConfigs",
+ "output": true
+ },
"description": "The custom DNS configurations of the private endpoint."
},
"value": "[reference('privateEndpoint').customDnsConfigs]"
},
- "networkInterfaceIds": {
+ "networkInterfaceResourceIds": {
"type": "array",
+ "items": {
+ "type": "string"
+ },
"metadata": {
- "description": "The IDs of the network interfaces associated with the private endpoint."
+ "description": "The resource IDs of the network interfaces associated with the private endpoint."
},
- "value": "[reference('privateEndpoint').networkInterfaces]"
+ "value": "[map(reference('privateEndpoint').networkInterfaces, lambda('nic', lambdaVariables('nic').id))]"
},
"groupId": {
"type": "string",
+ "nullable": true,
"metadata": {
"description": "The group Id for the private endpoint Group."
},
- "value": "[if(and(not(empty(reference('privateEndpoint').manualPrivateLinkServiceConnections)), greater(length(tryGet(reference('privateEndpoint').manualPrivateLinkServiceConnections[0].properties, 'groupIds')), 0)), coalesce(tryGet(reference('privateEndpoint').manualPrivateLinkServiceConnections[0].properties, 'groupIds', 0), ''), if(and(not(empty(reference('privateEndpoint').privateLinkServiceConnections)), greater(length(tryGet(reference('privateEndpoint').privateLinkServiceConnections[0].properties, 'groupIds')), 0)), coalesce(tryGet(reference('privateEndpoint').privateLinkServiceConnections[0].properties, 'groupIds', 0), ''), ''))]"
+ "value": "[coalesce(tryGet(tryGet(tryGet(tryGet(reference('privateEndpoint'), 'manualPrivateLinkServiceConnections'), 0, 'properties'), 'groupIds'), 0), tryGet(tryGet(tryGet(tryGet(reference('privateEndpoint'), 'privateLinkServiceConnections'), 0, 'properties'), 'groupIds'), 0))]"
}
}
}
@@ -31980,8 +32479,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "9525047811797133596"
+ "version": "0.42.1.51946",
+ "templateHash": "3598447245043879538"
}
},
"definitions": {
@@ -32091,7 +32590,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -32267,8 +32766,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "1609510538398847306"
+ "version": "0.41.2.15936",
+ "templateHash": "1254456195180100771"
},
"name": "Storage Accounts",
"description": "This module deploys a Storage Account."
@@ -32856,14 +33355,14 @@
"type": "bool",
"nullable": true,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API."
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. Defaults to false."
}
},
"allowProtectedAppendWritesAll": {
"type": "bool",
"nullable": true,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive."
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive. Defaults to false."
}
}
},
@@ -33536,6 +34035,22 @@
"description": "Optional. The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5120 (5TB). For Large File Shares, the maximum size is 102400 (100TB)."
}
},
+ "provisionedBandwidthMibps": {
+ "type": "int",
+ "nullable": true,
+ "maxValue": 10340,
+ "metadata": {
+ "description": "Optional. The provisioned bandwidth of the share, in mebibytes per second. Only applicable to FileStorage storage accounts (premium file shares). Must be between 0 and 10340."
+ }
+ },
+ "provisionedIops": {
+ "type": "int",
+ "nullable": true,
+ "maxValue": 102400,
+ "metadata": {
+ "description": "Optional. The provisioned IOPS of the share. Only applicable to FileStorage storage accounts (premium file shares). Must be between 0 and 102400."
+ }
+ },
"roleAssignments": {
"type": "array",
"items": {
@@ -34382,7 +34897,8 @@
"type": "string",
"defaultValue": "TLS1_2",
"allowedValues": [
- "TLS1_2"
+ "TLS1_2",
+ "TLS1_3"
],
"metadata": {
"description": "Optional. Set the minimum TLS version on request to storage. The TLS versions 1.0 and 1.1 are deprecated and not supported anymore."
@@ -34476,7 +34992,8 @@
"nullable": true,
"allowedValues": [
"Enabled",
- "Disabled"
+ "Disabled",
+ "SecuredByPerimeter"
],
"metadata": {
"description": "Optional. Whether or not public network access is allowed for this resource. For security reasons it should be disabled. If not specified, it will be disabled by default if private endpoints are set and networkAcls are not set."
@@ -34593,11 +35110,12 @@
"Storage Table Data Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '76199698-9eea-4c19-bc75-cec21354c6b6')]",
"User Access Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')]"
},
- "formattedManagementPolicies": "[union(coalesce(parameters('managementPolicyRules'), createArray()), if(and(and(not(empty(parameters('blobServices'))), coalesce(tryGet(parameters('blobServices'), 'isVersioningEnabled'), false())), not(equals(tryGet(parameters('blobServices'), 'versionDeletePolicyDays'), null()))), createArray(createObject('name', 'DeletePreviousVersions (auto-created)', 'enabled', true(), 'type', 'Lifecycle', 'definition', createObject('actions', createObject('version', createObject('delete', createObject('daysAfterCreationGreaterThan', parameters('blobServices').versionDeletePolicyDays))), 'filters', createObject('blobTypes', createArray('blockBlob', 'appendBlob'))))), createArray()))]"
+ "formattedManagementPolicies": "[union(coalesce(parameters('managementPolicyRules'), createArray()), if(and(and(not(empty(parameters('blobServices'))), coalesce(tryGet(parameters('blobServices'), 'isVersioningEnabled'), false())), not(equals(tryGet(parameters('blobServices'), 'versionDeletePolicyDays'), null()))), createArray(createObject('name', 'DeletePreviousVersions (auto-created)', 'enabled', true(), 'type', 'Lifecycle', 'definition', createObject('actions', createObject('version', createObject('delete', createObject('daysAfterCreationGreaterThan', parameters('blobServices').versionDeletePolicyDays))), 'filters', createObject('blobTypes', createArray('blockBlob', 'appendBlob'))))), createArray()))]",
+ "isHSMManagedCMK": "[equals(tryGet(split(coalesce(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'), ''), '/'), 7), 'managedHSMs')]"
},
"resources": {
"cMKKeyVault::cMKKey": {
- "condition": "[and(not(empty(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'))), and(not(empty(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'))), not(empty(tryGet(parameters('customerManagedKey'), 'keyName')))))]",
+ "condition": "[and(and(not(variables('isHSMManagedCMK')), not(empty(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId')))), and(not(empty(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'))), not(empty(tryGet(parameters('customerManagedKey'), 'keyName')))))]",
"existing": true,
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2024-11-01",
@@ -34609,7 +35127,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
- "name": "[format('46d3xbcp.res.storage-storageaccount.{0}.{1}', replace('0.28.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.storage-storageaccount.{0}.{1}', replace('0.32.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -34626,7 +35144,7 @@
}
},
"cMKKeyVault": {
- "condition": "[not(empty(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId')))]",
+ "condition": "[and(not(variables('isHSMManagedCMK')), not(empty(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'))))]",
"existing": true,
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2025-05-01",
@@ -34645,7 +35163,7 @@
},
"storageAccount": {
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2025-01-01",
+ "apiVersion": "2025-06-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"extendedLocation": "[if(not(empty(parameters('extendedLocationZone'))), createObject('name', parameters('extendedLocationZone'), 'type', 'EdgeZone'), null())]",
@@ -34655,7 +35173,7 @@
},
"identity": "[variables('identity')]",
"tags": "[parameters('tags')]",
- "properties": "[shallowMerge(createArray(createObject('allowSharedKeyAccess', parameters('allowSharedKeyAccess'), 'defaultToOAuthAuthentication', parameters('defaultToOAuthAuthentication'), 'allowCrossTenantReplication', parameters('allowCrossTenantReplication'), 'allowedCopyScope', parameters('allowedCopyScope'), 'customDomain', createObject('name', parameters('customDomainName'), 'useSubDomainName', parameters('customDomainUseSubDomainName')), 'dnsEndpointType', parameters('dnsEndpointType'), 'isLocalUserEnabled', parameters('isLocalUserEnabled'), 'encryption', union(createObject('keySource', if(not(empty(parameters('customerManagedKey'))), 'Microsoft.Keyvault', 'Microsoft.Storage'), 'services', createObject('blob', if(variables('supportsBlobService'), createObject('enabled', true()), null()), 'file', if(variables('supportsFileService'), createObject('enabled', true()), null()), 'table', createObject('enabled', true(), 'keyType', parameters('keyType')), 'queue', createObject('enabled', true(), 'keyType', parameters('keyType'))), 'keyvaultproperties', if(not(empty(parameters('customerManagedKey'))), createObject('keyname', parameters('customerManagedKey').keyName, 'keyvaulturi', reference('cMKKeyVault').vaultUri, 'keyversion', if(not(empty(tryGet(parameters('customerManagedKey'), 'keyVersion'))), parameters('customerManagedKey').keyVersion, if(coalesce(tryGet(parameters('customerManagedKey'), 'autoRotationEnabled'), true()), null(), last(split(reference('cMKKeyVault::cMKKey').keyUriWithVersion, '/'))))), null()), 'identity', createObject('userAssignedIdentity', if(not(empty(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'))), extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', split(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '/')[2], split(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '/')[4]), 'Microsoft.ManagedIdentity/userAssignedIdentities', last(split(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '/'))), null()))), if(parameters('requireInfrastructureEncryption'), createObject('requireInfrastructureEncryption', if(not(equals(parameters('kind'), 'Storage')), parameters('requireInfrastructureEncryption'), null())), createObject())), 'accessTier', if(and(not(equals(parameters('kind'), 'Storage')), not(equals(parameters('kind'), 'BlockBlobStorage'))), parameters('accessTier'), null()), 'sasPolicy', if(not(empty(parameters('sasExpirationPeriod'))), createObject('expirationAction', parameters('sasExpirationAction'), 'sasExpirationPeriod', parameters('sasExpirationPeriod')), null()), 'supportsHttpsTrafficOnly', parameters('supportsHttpsTrafficOnly'), 'isSftpEnabled', parameters('enableSftp'), 'isNfsV3Enabled', if(parameters('enableNfsV3'), parameters('enableNfsV3'), ''), 'largeFileSharesState', if(or(equals(parameters('skuName'), 'Standard_LRS'), equals(parameters('skuName'), 'Standard_ZRS')), parameters('largeFileSharesState'), null()), 'minimumTlsVersion', parameters('minimumTlsVersion'), 'networkAcls', if(not(empty(parameters('networkAcls'))), union(createObject('resourceAccessRules', tryGet(parameters('networkAcls'), 'resourceAccessRules'), 'defaultAction', coalesce(tryGet(parameters('networkAcls'), 'defaultAction'), 'Deny'), 'virtualNetworkRules', tryGet(parameters('networkAcls'), 'virtualNetworkRules'), 'ipRules', tryGet(parameters('networkAcls'), 'ipRules')), if(contains(parameters('networkAcls'), 'bypass'), createObject('bypass', tryGet(parameters('networkAcls'), 'bypass')), createObject())), createObject('bypass', 'AzureServices', 'defaultAction', 'Deny')), 'allowBlobPublicAccess', parameters('allowBlobPublicAccess'), 'publicNetworkAccess', if(not(empty(parameters('publicNetworkAccess'))), parameters('publicNetworkAccess'), if(and(not(empty(parameters('privateEndpoints'))), empty(parameters('networkAcls'))), 'Disabled', null()))), if(not(empty(parameters('azureFilesIdentityBasedAuthentication'))), createObject('azureFilesIdentityBasedAuthentication', parameters('azureFilesIdentityBasedAuthentication')), createObject()), if(not(equals(parameters('enableHierarchicalNamespace'), null())), createObject('isHnsEnabled', parameters('enableHierarchicalNamespace')), createObject()), createObject('immutableStorageWithVersioning', parameters('immutableStorageWithVersioning'))))]",
+ "properties": "[shallowMerge(createArray(createObject('allowSharedKeyAccess', parameters('allowSharedKeyAccess'), 'defaultToOAuthAuthentication', parameters('defaultToOAuthAuthentication'), 'allowCrossTenantReplication', parameters('allowCrossTenantReplication'), 'allowedCopyScope', parameters('allowedCopyScope'), 'customDomain', createObject('name', parameters('customDomainName'), 'useSubDomainName', parameters('customDomainUseSubDomainName')), 'dnsEndpointType', parameters('dnsEndpointType'), 'isLocalUserEnabled', parameters('isLocalUserEnabled'), 'encryption', union(createObject('keySource', if(not(empty(parameters('customerManagedKey'))), 'Microsoft.Keyvault', 'Microsoft.Storage'), 'services', createObject('blob', if(variables('supportsBlobService'), createObject('enabled', true()), null()), 'file', if(variables('supportsFileService'), createObject('enabled', true()), null()), 'table', createObject('enabled', true(), 'keyType', parameters('keyType')), 'queue', createObject('enabled', true(), 'keyType', parameters('keyType'))), 'keyvaultproperties', if(not(empty(parameters('customerManagedKey'))), createObject('keyname', parameters('customerManagedKey').keyName, 'keyvaulturi', if(not(variables('isHSMManagedCMK')), reference('cMKKeyVault').vaultUri, format('https://{0}.managedhsm.azure.net/', last(split(parameters('customerManagedKey').keyVaultResourceId, '/')))), 'keyversion', if(not(empty(tryGet(parameters('customerManagedKey'), 'keyVersion'))), parameters('customerManagedKey').keyVersion, if(coalesce(tryGet(parameters('customerManagedKey'), 'autoRotationEnabled'), true()), null(), if(not(variables('isHSMManagedCMK')), last(split(reference('cMKKeyVault::cMKKey').keyUriWithVersion, '/')), fail('Managed HSM CMK encryption requires either specifying the ''keyVersion'' or omitting the ''autoRotationEnabled'' property. Setting ''autoRotationEnabled'' to false without a ''keyVersion'' is not allowed.'))))), null()), 'identity', createObject('userAssignedIdentity', if(not(empty(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'))), extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', split(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '/')[2], split(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '/')[4]), 'Microsoft.ManagedIdentity/userAssignedIdentities', last(split(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '/'))), null()))), if(parameters('requireInfrastructureEncryption'), createObject('requireInfrastructureEncryption', if(not(equals(parameters('kind'), 'Storage')), parameters('requireInfrastructureEncryption'), null())), createObject())), 'accessTier', if(and(not(equals(parameters('kind'), 'Storage')), not(equals(parameters('kind'), 'BlockBlobStorage'))), parameters('accessTier'), null()), 'sasPolicy', if(not(empty(parameters('sasExpirationPeriod'))), createObject('expirationAction', parameters('sasExpirationAction'), 'sasExpirationPeriod', parameters('sasExpirationPeriod')), null()), 'supportsHttpsTrafficOnly', parameters('supportsHttpsTrafficOnly'), 'isSftpEnabled', parameters('enableSftp'), 'isNfsV3Enabled', if(parameters('enableNfsV3'), parameters('enableNfsV3'), ''), 'largeFileSharesState', if(or(equals(parameters('skuName'), 'Standard_LRS'), equals(parameters('skuName'), 'Standard_ZRS')), parameters('largeFileSharesState'), null()), 'minimumTlsVersion', parameters('minimumTlsVersion'), 'networkAcls', if(not(empty(parameters('networkAcls'))), union(createObject('resourceAccessRules', tryGet(parameters('networkAcls'), 'resourceAccessRules'), 'defaultAction', coalesce(tryGet(parameters('networkAcls'), 'defaultAction'), 'Deny'), 'virtualNetworkRules', tryGet(parameters('networkAcls'), 'virtualNetworkRules'), 'ipRules', tryGet(parameters('networkAcls'), 'ipRules')), if(contains(parameters('networkAcls'), 'bypass'), createObject('bypass', tryGet(parameters('networkAcls'), 'bypass')), createObject())), createObject('bypass', 'AzureServices', 'defaultAction', 'Deny')), 'allowBlobPublicAccess', parameters('allowBlobPublicAccess'), 'publicNetworkAccess', if(not(empty(parameters('publicNetworkAccess'))), parameters('publicNetworkAccess'), if(and(not(empty(parameters('privateEndpoints'))), empty(parameters('networkAcls'))), 'Disabled', null()))), if(not(empty(parameters('azureFilesIdentityBasedAuthentication'))), createObject('azureFilesIdentityBasedAuthentication', parameters('azureFilesIdentityBasedAuthentication')), createObject()), if(not(equals(parameters('enableHierarchicalNamespace'), null())), createObject('isHnsEnabled', parameters('enableHierarchicalNamespace')), createObject()), createObject('immutableStorageWithVersioning', parameters('immutableStorageWithVersioning'))))]",
"dependsOn": [
"cMKKeyVault",
"cMKKeyVault::cMKKey"
@@ -34668,7 +35186,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', parameters('name')))]",
"properties": {
"copy": [
@@ -34697,7 +35215,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -34714,7 +35232,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Storage/storageAccounts', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -35405,6 +35923,9 @@
},
"rules": {
"value": "[variables('formattedManagementPolicies')]"
+ },
+ "enableTelemetry": {
+ "value": "[variables('enableReferencedModulesTelemetry')]"
}
},
"template": {
@@ -35413,8 +35934,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "6960218931054567030"
+ "version": "0.41.2.15936",
+ "templateHash": "4000605059554016072"
},
"name": "Storage Account Management Policies",
"description": "This module deploys a Storage Account Management Policy."
@@ -35431,16 +35952,43 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.Storage/storageAccounts/managementPolicies@2024-01-01#properties/properties/properties/policy/properties/rules"
+ "source": "Microsoft.Storage/storageAccounts/managementPolicies@2025-06-01#properties/properties/properties/policy/properties/rules"
},
"description": "Required. The Storage Account ManagementPolicies Rules."
}
+ },
+ "enableTelemetry": {
+ "type": "bool",
+ "defaultValue": true,
+ "metadata": {
+ "description": "Optional. Enable/Disable usage telemetry for module."
+ }
}
},
"resources": [
+ {
+ "condition": "[parameters('enableTelemetry')]",
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2024-03-01",
+ "name": "[format('46d3xbcp.res.storage-mgmtpolicy.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "properties": {
+ "mode": "Incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "resources": [],
+ "outputs": {
+ "telemetry": {
+ "type": "String",
+ "value": "For more information, see https://aka.ms/avm/TelemetryInfo"
+ }
+ }
+ }
+ }
+ },
{
"type": "Microsoft.Storage/storageAccounts/managementPolicies",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), 'default')]",
"properties": {
"policy": {
@@ -35516,6 +36064,9 @@
},
"sshAuthorizedKeys": {
"value": "[tryGet(coalesce(parameters('localUsers'), createArray())[copyIndex()], 'sshAuthorizedKeys')]"
+ },
+ "enableTelemetry": {
+ "value": "[variables('enableReferencedModulesTelemetry')]"
}
},
"template": {
@@ -35525,8 +36076,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "9436518181019837288"
+ "version": "0.41.2.15936",
+ "templateHash": "1801226901235196767"
},
"name": "Storage Account Local Users",
"description": "This module deploys a Storage Account Local User, which is used for SFTP authentication."
@@ -35638,18 +36189,45 @@
"metadata": {
"description": "Optional. The local user SSH authorized keys for SFTP."
}
+ },
+ "enableTelemetry": {
+ "type": "bool",
+ "defaultValue": true,
+ "metadata": {
+ "description": "Optional. Enable/Disable usage telemetry for module."
+ }
}
},
"resources": {
+ "avmTelemetry": {
+ "condition": "[parameters('enableTelemetry')]",
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2024-03-01",
+ "name": "[format('46d3xbcp.res.storage-localuser.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "properties": {
+ "mode": "Incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "resources": [],
+ "outputs": {
+ "telemetry": {
+ "type": "String",
+ "value": "For more information, see https://aka.ms/avm/TelemetryInfo"
+ }
+ }
+ }
+ }
+ },
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]"
},
"localUsers": {
"type": "Microsoft.Storage/storageAccounts/localUsers",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), parameters('name'))]",
"properties": {
"hasSharedKey": "[parameters('hasSharedKey')]",
@@ -35763,8 +36341,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "8062953820630056631"
+ "version": "0.41.2.15936",
+ "templateHash": "468225492069709453"
},
"name": "Storage Account blob Services",
"description": "This module deploys a Storage Account Blob Service."
@@ -36055,14 +36633,14 @@
"type": "bool",
"nullable": true,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API."
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. Defaults to false."
}
},
"allowProtectedAppendWritesAll": {
"type": "bool",
"nullable": true,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive."
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive. Defaults to false."
}
}
},
@@ -36338,7 +36916,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}/blobServices/{1}', parameters('storageAccountName'), variables('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccountName'), variables('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', variables('name')))]",
"properties": {
"copy": [
@@ -36433,8 +37011,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "12049267755110696809"
+ "version": "0.41.2.15936",
+ "templateHash": "273904034769611992"
},
"name": "Storage Account Blob Containers",
"description": "This module deploys a Storage Account Blob Container."
@@ -36454,14 +37032,14 @@
"type": "bool",
"nullable": true,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API."
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. Defaults to false."
}
},
"allowProtectedAppendWritesAll": {
"type": "bool",
"nullable": true,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive."
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive. Defaults to false."
}
}
},
@@ -36671,7 +37249,8 @@
"Storage Blob Data Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1')]",
"Storage Blob Delegator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'db58b8e5-c6ad-4a2a-8342-4190687cbf4a')]",
"User Access Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')]"
- }
+ },
+ "enableReferencedModulesTelemetry": false
},
"resources": {
"storageAccount::blobServices": {
@@ -36684,7 +37263,7 @@
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.storage-blobcontainer.{0}.{1}', replace('0.3.1', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.storage-blobcontainer.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -36727,7 +37306,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}/blobServices/{1}/containers/{2}', parameters('storageAccountName'), parameters('blobServiceName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', parameters('storageAccountName'), parameters('blobServiceName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', parameters('storageAccountName'), parameters('blobServiceName'), parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -36767,6 +37346,9 @@
},
"allowProtectedAppendWritesAll": {
"value": "[tryGet(parameters('immutabilityPolicy'), 'allowProtectedAppendWritesAll')]"
+ },
+ "enableTelemetry": {
+ "value": "[variables('enableReferencedModulesTelemetry')]"
}
},
"template": {
@@ -36775,8 +37357,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "1872120962131123050"
+ "version": "0.41.2.15936",
+ "templateHash": "15304742179563677019"
},
"name": "Storage Account Blob Container Immutability Policies",
"description": "This module deploys a Storage Account Blob Container Immutability Policy."
@@ -36804,27 +37386,51 @@
},
"allowProtectedAppendWrites": {
"type": "bool",
- "defaultValue": true,
+ "defaultValue": false,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive."
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive. Defaults to false."
}
},
"allowProtectedAppendWritesAll": {
+ "type": "bool",
+ "defaultValue": false,
+ "metadata": {
+ "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive. Defaults to false."
+ }
+ },
+ "enableTelemetry": {
"type": "bool",
"defaultValue": true,
"metadata": {
- "description": "Optional. This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both \"Append and Block Blobs\" while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The \"allowProtectedAppendWrites\" and \"allowProtectedAppendWritesAll\" properties are mutually exclusive."
+ "description": "Optional. Enable/Disable usage telemetry for module."
}
}
},
- "variables": {
- "name": "default"
- },
"resources": [
+ {
+ "condition": "[parameters('enableTelemetry')]",
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2024-03-01",
+ "name": "[format('46d3xbcp.res.storage-containerimmutpolicy.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "properties": {
+ "mode": "Incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "resources": [],
+ "outputs": {
+ "telemetry": {
+ "type": "String",
+ "value": "For more information, see https://aka.ms/avm/TelemetryInfo"
+ }
+ }
+ }
+ }
+ },
{
"type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies",
"apiVersion": "2025-01-01",
- "name": "[format('{0}/{1}/{2}/{3}', parameters('storageAccountName'), 'default', parameters('containerName'), variables('name'))]",
+ "name": "[format('{0}/{1}/{2}/{3}', parameters('storageAccountName'), 'default', parameters('containerName'), 'default')]",
"properties": {
"immutabilityPeriodSinceCreationInDays": "[parameters('immutabilityPeriodSinceCreationInDays')]",
"allowProtectedAppendWrites": "[parameters('allowProtectedAppendWrites')]",
@@ -36838,14 +37444,14 @@
"metadata": {
"description": "The name of the deployed immutability policy."
},
- "value": "[variables('name')]"
+ "value": "default"
},
"resourceId": {
"type": "string",
"metadata": {
"description": "The resource ID of the deployed immutability policy."
},
- "value": "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies', parameters('storageAccountName'), 'default', parameters('containerName'), variables('name'))]"
+ "value": "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies', parameters('storageAccountName'), 'default', parameters('containerName'), 'default')]"
},
"resourceGroupName": {
"type": "string",
@@ -36958,8 +37564,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "7372615490119026510"
+ "version": "0.41.2.15936",
+ "templateHash": "17583198711200998285"
},
"name": "Storage Account File Share Services",
"description": "This module deploys a Storage Account File Share Service."
@@ -37077,6 +37683,22 @@
"description": "Optional. The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5120 (5TB). For Large File Shares, the maximum size is 102400 (100TB)."
}
},
+ "provisionedBandwidthMibps": {
+ "type": "int",
+ "nullable": true,
+ "maxValue": 10340,
+ "metadata": {
+ "description": "Optional. The provisioned bandwidth of the share, in mebibytes per second. Only applicable to FileStorage storage accounts (premium file shares). Must be between 0 and 10340."
+ }
+ },
+ "provisionedIops": {
+ "type": "int",
+ "nullable": true,
+ "maxValue": 102400,
+ "metadata": {
+ "description": "Optional. The provisioned IOPS of the share. Only applicable to FileStorage storage accounts (premium file shares). Must be between 0 and 102400."
+ }
+ },
"roleAssignments": {
"type": "array",
"items": {
@@ -37367,12 +37989,12 @@
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]"
},
"fileServices": {
"type": "Microsoft.Storage/storageAccounts/fileServices",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), parameters('name'))]",
"properties": {
"cors": "[if(not(equals(parameters('corsRules'), null())), createObject('corsRules', parameters('corsRules')), null())]",
@@ -37387,7 +38009,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}/fileServices/{1}', parameters('storageAccountName'), parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts/fileServices', parameters('storageAccountName'), parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', parameters('name')))]",
"properties": {
"copy": [
@@ -37445,7 +38067,7 @@
"value": "[coalesce(parameters('shares'), createArray())[copyIndex()].name]"
},
"accessTier": {
- "value": "[coalesce(tryGet(coalesce(parameters('shares'), createArray())[copyIndex()], 'accessTier'), if(equals(reference('storageAccount', '2024-01-01', 'full').kind, 'FileStorage'), 'Premium', 'TransactionOptimized'))]"
+ "value": "[coalesce(tryGet(coalesce(parameters('shares'), createArray())[copyIndex()], 'accessTier'), if(equals(reference('storageAccount', '2025-06-01', 'full').kind, 'FileStorage'), if(startsWith(reference('storageAccount', '2025-06-01', 'full').sku.name, 'PremiumV2_'), null(), 'Premium'), 'TransactionOptimized'))]"
},
"enabledProtocols": {
"value": "[tryGet(coalesce(parameters('shares'), createArray())[copyIndex()], 'enabledProtocols')]"
@@ -37456,6 +38078,12 @@
"shareQuota": {
"value": "[tryGet(coalesce(parameters('shares'), createArray())[copyIndex()], 'shareQuota')]"
},
+ "provisionedBandwidthMibps": {
+ "value": "[tryGet(coalesce(parameters('shares'), createArray())[copyIndex()], 'provisionedBandwidthMibps')]"
+ },
+ "provisionedIops": {
+ "value": "[tryGet(coalesce(parameters('shares'), createArray())[copyIndex()], 'provisionedIops')]"
+ },
"roleAssignments": {
"value": "[tryGet(coalesce(parameters('shares'), createArray())[copyIndex()], 'roleAssignments')]"
},
@@ -37470,8 +38098,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "6443667442431835489"
+ "version": "0.41.2.15936",
+ "templateHash": "10353179772982843397"
},
"name": "Storage Account File Shares",
"description": "This module deploys a Storage Account File Share."
@@ -37576,7 +38204,7 @@
},
"accessTier": {
"type": "string",
- "defaultValue": "TransactionOptimized",
+ "nullable": true,
"allowedValues": [
"Premium",
"Hot",
@@ -37584,7 +38212,7 @@
"TransactionOptimized"
],
"metadata": {
- "description": "Conditional. Access tier for specific share. Required if the Storage Account kind is set to FileStorage (should be set to \"Premium\"). GpV2 account can choose between TransactionOptimized (default), Hot, and Cool."
+ "description": "Conditional. Access tier for specific share. Required if the Storage Account kind is set to FileStorage (should be set to \"Premium\"). GpV2 account can choose between TransactionOptimized, Hot, and Cool."
}
},
"shareQuota": {
@@ -37617,6 +38245,24 @@
"description": "Optional. Permissions for NFS file shares are enforced by the client OS rather than the Azure Files service. Toggling the root squash behavior reduces the rights of the root user for NFS shares."
}
},
+ "provisionedBandwidthMibps": {
+ "type": "int",
+ "nullable": true,
+ "minValue": 0,
+ "maxValue": 10340,
+ "metadata": {
+ "description": "Optional. The provisioned bandwidth of the share, in mebibytes per second. Only applicable to FileStorage storage accounts (premium file shares). Must be between 0 and 10340."
+ }
+ },
+ "provisionedIops": {
+ "type": "int",
+ "nullable": true,
+ "minValue": 0,
+ "maxValue": 102400,
+ "metadata": {
+ "description": "Optional. The provisioned IOPS of the share. Only applicable to FileStorage storage accounts (premium file shares). Must be between 0 and 102400."
+ }
+ },
"enableTelemetry": {
"type": "bool",
"defaultValue": true,
@@ -37662,14 +38308,14 @@
"storageAccount::fileService": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts/fileServices",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-01-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), parameters('fileServicesName'))]"
},
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.storage-fileshare.{0}.{1}', replace('0.1.1', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "name": "[format('46d3xbcp.res.storage-fileshare.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -37688,19 +38334,24 @@
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-01-01",
"name": "[parameters('storageAccountName')]"
},
"fileShare": {
"type": "Microsoft.Storage/storageAccounts/fileServices/shares",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-01-01",
"name": "[format('{0}/{1}/{2}', parameters('storageAccountName'), parameters('fileServicesName'), parameters('name'))]",
"properties": {
"accessTier": "[parameters('accessTier')]",
"shareQuota": "[parameters('shareQuota')]",
"rootSquash": "[if(equals(parameters('enabledProtocols'), 'NFS'), parameters('rootSquash'), null())]",
- "enabledProtocols": "[parameters('enabledProtocols')]"
- }
+ "enabledProtocols": "[parameters('enabledProtocols')]",
+ "provisionedBandwidthMibps": "[if(equals(reference('storageAccount', '2025-01-01', 'full').kind, 'FileStorage'), parameters('provisionedBandwidthMibps'), null())]",
+ "provisionedIops": "[if(equals(reference('storageAccount', '2025-01-01', 'full').kind, 'FileStorage'), parameters('provisionedIops'), null())]"
+ },
+ "dependsOn": [
+ "storageAccount"
+ ]
},
"fileShare_roleAssignments": {
"copy": {
@@ -37932,8 +38583,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "14320740623684459446"
+ "version": "0.41.2.15936",
+ "templateHash": "9644461291744477521"
},
"name": "Storage Account Queue Services",
"description": "This module deploys a Storage Account Queue Service."
@@ -38272,18 +38923,19 @@
}
},
"variables": {
- "name": "default"
+ "name": "default",
+ "enableReferencedModulesTelemetry": false
},
"resources": {
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]"
},
"queueServices": {
"type": "Microsoft.Storage/storageAccounts/queueServices",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), variables('name'))]",
"properties": {
"cors": "[if(not(equals(parameters('corsRules'), null())), createObject('corsRules', parameters('corsRules')), null())]"
@@ -38296,7 +38948,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}/queueServices/{1}', parameters('storageAccountName'), variables('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts/queueServices', parameters('storageAccountName'), variables('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', variables('name')))]",
"properties": {
"copy": [
@@ -38355,6 +39007,9 @@
},
"roleAssignments": {
"value": "[tryGet(coalesce(parameters('queues'), createArray())[copyIndex()], 'roleAssignments')]"
+ },
+ "enableTelemetry": {
+ "value": "[variables('enableReferencedModulesTelemetry')]"
}
},
"template": {
@@ -38364,8 +39019,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "17820569818642693530"
+ "version": "0.41.2.15936",
+ "templateHash": "12812824360066955039"
},
"name": "Storage Account Queues",
"description": "This module deploys a Storage Account Queue."
@@ -38480,6 +39135,13 @@
"metadata": {
"description": "Optional. Array of role assignments to create."
}
+ },
+ "enableTelemetry": {
+ "type": "bool",
+ "defaultValue": true,
+ "metadata": {
+ "description": "Optional. Enable/Disable usage telemetry for module."
+ }
}
},
"variables": {
@@ -38510,18 +39172,38 @@
"storageAccount::queueServices": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts/queueServices",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), 'default')]"
},
+ "avmTelemetry": {
+ "condition": "[parameters('enableTelemetry')]",
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2024-03-01",
+ "name": "[format('46d3xbcp.res.storage-queue.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "properties": {
+ "mode": "Incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "resources": [],
+ "outputs": {
+ "telemetry": {
+ "type": "String",
+ "value": "For more information, see https://aka.ms/avm/TelemetryInfo"
+ }
+ }
+ }
+ }
+ },
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]"
},
"queue": {
"type": "Microsoft.Storage/storageAccounts/queueServices/queues",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}/{2}', parameters('storageAccountName'), 'default', parameters('name'))]",
"properties": {
"metadata": "[parameters('metadata')]"
@@ -38534,7 +39216,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}/queueServices/{1}/queues/{2}', parameters('storageAccountName'), 'default', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts/queueServices/queues', parameters('storageAccountName'), 'default', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Storage/storageAccounts/queueServices/queues', parameters('storageAccountName'), 'default', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -38637,8 +39319,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "15397070691540239144"
+ "version": "0.41.2.15936",
+ "templateHash": "10320403358700650147"
},
"name": "Storage Account Table Services",
"description": "This module deploys a Storage Account Table Service."
@@ -38967,18 +39649,19 @@
}
},
"variables": {
- "name": "default"
+ "name": "default",
+ "enableReferencedModulesTelemetry": false
},
"resources": {
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]"
},
"tableServices": {
"type": "Microsoft.Storage/storageAccounts/tableServices",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), variables('name'))]",
"properties": {
"cors": "[if(not(equals(parameters('corsRules'), null())), createObject('corsRules', parameters('corsRules')), null())]"
@@ -38991,7 +39674,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}/tableServices/{1}', parameters('storageAccountName'), variables('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts/tableServices', parameters('storageAccountName'), variables('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', variables('name')))]",
"properties": {
"copy": [
@@ -39047,6 +39730,9 @@
},
"roleAssignments": {
"value": "[tryGet(coalesce(parameters('tables'), createArray())[copyIndex()], 'roleAssignments')]"
+ },
+ "enableTelemetry": {
+ "value": "[variables('enableReferencedModulesTelemetry')]"
}
},
"template": {
@@ -39056,8 +39742,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "2494851345252564065"
+ "version": "0.41.2.15936",
+ "templateHash": "11362260974696477885"
},
"name": "Storage Account Table",
"description": "This module deploys a Storage Account Table."
@@ -39162,6 +39848,13 @@
"metadata": {
"description": "Required. Name of the table."
}
+ },
+ "enableTelemetry": {
+ "type": "bool",
+ "defaultValue": true,
+ "metadata": {
+ "description": "Optional. Enable/Disable usage telemetry for module."
+ }
}
},
"variables": {
@@ -39190,18 +39883,38 @@
"storageAccount::tableServices": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts/tableServices",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}', parameters('storageAccountName'), 'default')]"
},
+ "avmTelemetry": {
+ "condition": "[parameters('enableTelemetry')]",
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2024-03-01",
+ "name": "[format('46d3xbcp.res.storage-table.{0}.{1}', replace('-..--..-', '.', '-'), substring(uniqueString(deployment().name), 0, 4))]",
+ "properties": {
+ "mode": "Incremental",
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "resources": [],
+ "outputs": {
+ "telemetry": {
+ "type": "String",
+ "value": "For more information, see https://aka.ms/avm/TelemetryInfo"
+ }
+ }
+ }
+ }
+ },
"storageAccount": {
"existing": true,
"type": "Microsoft.Storage/storageAccounts",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]"
},
"table": {
"type": "Microsoft.Storage/storageAccounts/tableServices/tables",
- "apiVersion": "2024-01-01",
+ "apiVersion": "2025-06-01",
"name": "[format('{0}/{1}/{2}', parameters('storageAccountName'), 'default', parameters('name'))]"
},
"table_roleAssignments": {
@@ -39211,7 +39924,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.Storage/storageAccounts/{0}/tableServices/{1}/tables/{2}', parameters('storageAccountName'), 'default', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.Storage/storageAccounts/tableServices/tables', parameters('storageAccountName'), 'default', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.Storage/storageAccounts/tableServices/tables', parameters('storageAccountName'), 'default', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -39300,7 +40013,7 @@
"value": "[last(split(tryGet(parameters('secretsExportConfiguration'), 'keyVaultResourceId'), '/'))]"
},
"secretsToSet": {
- "value": "[union(createArray(), if(contains(parameters('secretsExportConfiguration'), 'accessKey1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey1Name'), 'value', listKeys('storageAccount', '2025-01-01').keys[0].value)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'connectionString1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'connectionString1Name'), 'value', format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-01-01').keys[0].value, environment().suffixes.storage))), createArray()), if(contains(parameters('secretsExportConfiguration'), 'accessKey2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey2Name'), 'value', listKeys('storageAccount', '2025-01-01').keys[1].value)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'connectionString2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'connectionString2Name'), 'value', format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-01-01').keys[1].value, environment().suffixes.storage))), createArray()))]"
+ "value": "[union(createArray(), if(contains(parameters('secretsExportConfiguration'), 'accessKey1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey1Name'), 'value', listKeys('storageAccount', '2025-06-01').keys[0].value)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'connectionString1Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'connectionString1Name'), 'value', format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-06-01').keys[0].value, environment().suffixes.storage))), createArray()), if(contains(parameters('secretsExportConfiguration'), 'accessKey2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'accessKey2Name'), 'value', listKeys('storageAccount', '2025-06-01').keys[1].value)), createArray()), if(contains(parameters('secretsExportConfiguration'), 'connectionString2Name'), createArray(createObject('name', tryGet(parameters('secretsExportConfiguration'), 'connectionString2Name'), 'value', format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-06-01').keys[1].value, environment().suffixes.storage))), createArray()))]"
}
},
"template": {
@@ -39310,8 +40023,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "15162266628501794465"
+ "version": "0.41.2.15936",
+ "templateHash": "13227497656004178962"
}
},
"definitions": {
@@ -39464,8 +40177,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "7981342209922290627"
+ "version": "0.41.2.15936",
+ "templateHash": "1894366578172550759"
},
"name": "Storage Account Object Replication Policy",
"description": "This module deploys a Storage Account Object Replication Policy for both the source account and destination account."
@@ -39618,8 +40331,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "13231340475360081313"
+ "version": "0.41.2.15936",
+ "templateHash": "14995722372031126283"
},
"name": "Storage Account Object Replication Policy",
"description": "This module deploys a Storage Account Object Replication Policy for a provided storage account."
@@ -39835,8 +40548,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "13231340475360081313"
+ "version": "0.41.2.15936",
+ "templateHash": "14995722372031126283"
},
"name": "Storage Account Object Replication Policy",
"description": "This module deploys a Storage Account Object Replication Policy for a provided storage account."
@@ -40080,14 +40793,14 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
- "value": "[tryGet(tryGet(reference('storageAccount', '2025-01-01', 'full'), 'identity'), 'principalId')]"
+ "value": "[tryGet(tryGet(reference('storageAccount', '2025-06-01', 'full'), 'identity'), 'principalId')]"
},
"location": {
"type": "string",
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('storageAccount', '2025-01-01', 'full').location]"
+ "value": "[reference('storageAccount', '2025-06-01', 'full').location]"
},
"serviceEndpoints": {
"type": "object",
@@ -40127,28 +40840,28 @@
"metadata": {
"description": "The primary access key of the storage account."
},
- "value": "[listKeys('storageAccount', '2025-01-01').keys[0].value]"
+ "value": "[listKeys('storageAccount', '2025-06-01').keys[0].value]"
},
"secondaryAccessKey": {
"type": "securestring",
"metadata": {
"description": "The secondary access key of the storage account."
},
- "value": "[listKeys('storageAccount', '2025-01-01').keys[1].value]"
+ "value": "[listKeys('storageAccount', '2025-06-01').keys[1].value]"
},
"primaryConnectionString": {
"type": "securestring",
"metadata": {
"description": "The primary connection string of the storage account."
},
- "value": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-01-01').keys[0].value, environment().suffixes.storage)]"
+ "value": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-06-01').keys[0].value, environment().suffixes.storage)]"
},
"secondaryConnectionString": {
"type": "securestring",
"metadata": {
"description": "The secondary connection string of the storage account."
},
- "value": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-01-01').keys[1].value, environment().suffixes.storage)]"
+ "value": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1};EndpointSuffix={2}', parameters('name'), listKeys('storageAccount', '2025-06-01').keys[1].value, environment().suffixes.storage)]"
}
}
}
@@ -40175,8 +40888,8 @@
},
"dependsOn": [
"appIdentity",
- "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageFile)]",
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
+ "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageFile)]",
"logAnalyticsWorkspace",
"virtualNetwork"
]
@@ -40225,8 +40938,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "9495092499292590311"
+ "version": "0.42.1.51946",
+ "templateHash": "18406833646069425594"
}
},
"definitions": {
@@ -40406,7 +41119,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -44088,8 +44801,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.40.2.10011",
- "templateHash": "17583156542522410309"
+ "version": "0.42.1.51946",
+ "templateHash": "14534421541012182178"
}
},
"definitions": {
@@ -44194,7 +44907,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.5.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -44281,7 +44994,7 @@
"sqlContributorRoleDefinition": {
"existing": true,
"type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions",
- "apiVersion": "2024-11-15",
+ "apiVersion": "2025-11-01-preview",
"name": "[format('{0}/00000000-0000-0000-0000-000000000002', parameters('name'))]"
},
"cosmosAccount": {
@@ -44395,8 +45108,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "11889744396543212232"
+ "version": "0.40.2.10011",
+ "templateHash": "1772014800591596213"
},
"name": "Azure Cosmos DB account",
"description": "This module deploys an Azure Cosmos DB account. The API used for the account is determined by the child resources that are deployed."
@@ -45086,7 +45799,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -45128,7 +45841,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -45169,7 +45882,7 @@
},
"metadata": {
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -45479,6 +46192,29 @@
}
}
},
+ "customerManagedKeyAndVaultOnlyType": {
+ "type": "object",
+ "properties": {
+ "keyVaultResourceId": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The resource ID of a key vault to reference a customer managed key for encryption from."
+ }
+ },
+ "keyName": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The name of the customer managed key to use for encryption."
+ }
+ }
+ },
+ "metadata": {
+ "description": "An AVM-aligned type for a customer-managed key. To be used if only the key vault & key may be specified.",
+ "__bicep_imported_from!": {
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
+ }
+ }
+ },
"diagnosticSettingFullType": {
"type": "object",
"properties": {
@@ -45597,7 +46333,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if both logs & metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -45681,7 +46417,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -45709,7 +46445,7 @@
"metadata": {
"description": "An AVM-aligned type for a managed identity configuration. To be used if both a system-assigned & user-assigned identities are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -45885,7 +46621,7 @@
"metadata": {
"description": "An AVM-aligned type for a private endpoint. To be used if the private endpoint's default service / groupId can NOT be assumed (i.e., for services that have more than one subresource, like Storage Account with Blob (blob, table, queue, file, ...).",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
},
@@ -45960,7 +46696,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.7.0"
}
}
}
@@ -46405,6 +47141,13 @@
"metadata": {
"description": "Optional. The default identity for accessing key vault used in features like customer managed keys. Use `FirstPartyIdentity` to use the tenant-level CosmosDB enterprise application. The default identity needs to be explicitly set by the users."
}
+ },
+ "customerManagedKey": {
+ "$ref": "#/definitions/customerManagedKeyAndVaultOnlyType",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The customer managed key definition. If specified, the parameter `defaultIdentity` must be configured as well."
+ }
}
},
"variables": {
@@ -46417,7 +47160,7 @@
],
"enableReferencedModulesTelemetry": false,
"formattedUserAssignedIdentities": "[reduce(map(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createArray()), lambda('id', createObject(format('{0}', lambdaVariables('id')), createObject()))), createObject(), lambda('cur', 'next', union(lambdaVariables('cur'), lambdaVariables('next'))))]",
- "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'UserAssigned', null())), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
+ "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(variables('formattedUserAssignedIdentities'))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(variables('formattedUserAssignedIdentities'))), 'UserAssigned', null())), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
"builtInControlPlaneRoleNames": {
"Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"Cosmos DB Account Reader Role": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'fbdf93bf-df7d-467e-a4d2-9458aa1360c8')]",
@@ -46429,14 +47172,24 @@
"Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')]",
"Role Based Access Control Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f58310d9-a9f6-439a-9e8d-f62e7b41a168')]",
"User Access Administrator": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '18d7d88d-d35e-4fb5-a5c3-7773c20a72d9')]"
- }
+ },
+ "isHSMManagedCMK": "[equals(tryGet(split(coalesce(tryGet(parameters('customerManagedKey'), 'keyVaultResourceId'), ''), '/'), 7), 'managedHSMs')]"
},
"resources": {
+ "cMKKeyVault::cMKKey": {
+ "condition": "[and(and(not(empty(parameters('customerManagedKey'))), not(variables('isHSMManagedCMK'))), and(not(empty(parameters('customerManagedKey'))), not(variables('isHSMManagedCMK'))))]",
+ "existing": true,
+ "type": "Microsoft.KeyVault/vaults/keys",
+ "apiVersion": "2024-11-01",
+ "subscriptionId": "[split(parameters('customerManagedKey').keyVaultResourceId, '/')[2]]",
+ "resourceGroup": "[split(parameters('customerManagedKey').keyVaultResourceId, '/')[4]]",
+ "name": "[format('{0}/{1}', last(split(parameters('customerManagedKey').keyVaultResourceId, '/')), parameters('customerManagedKey').keyName)]"
+ },
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-07-01",
- "name": "[format('46d3xbcp.res.documentdb-databaseaccount.{0}.{1}', replace('0.18.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.documentdb-databaseaccount.{0}.{1}', replace('0.19.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -46452,6 +47205,15 @@
}
}
},
+ "cMKKeyVault": {
+ "condition": "[and(not(empty(parameters('customerManagedKey'))), not(variables('isHSMManagedCMK')))]",
+ "existing": true,
+ "type": "Microsoft.KeyVault/vaults",
+ "apiVersion": "2024-11-01",
+ "subscriptionId": "[split(parameters('customerManagedKey').keyVaultResourceId, '/')[2]]",
+ "resourceGroup": "[split(parameters('customerManagedKey').keyVaultResourceId, '/')[4]]",
+ "name": "[last(split(parameters('customerManagedKey').keyVaultResourceId, '/'))]"
+ },
"databaseAccount": {
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2025-04-15",
@@ -46460,13 +47222,16 @@
"tags": "[parameters('tags')]",
"identity": "[variables('identity')]",
"kind": "[if(not(empty(parameters('mongodbDatabases'))), 'MongoDB', 'GlobalDocumentDB')]",
- "properties": "[shallowMerge(createArray(createObject('enableBurstCapacity', if(not(contains(coalesce(parameters('capabilitiesToAdd'), createArray()), 'EnableServerless')), parameters('enableBurstCapacity'), false()), 'analyticalStorageConfiguration', parameters('analyticalStorageConfiguration'), 'defaultIdentity', if(and(not(empty(parameters('defaultIdentity'))), not(equals(tryGet(parameters('defaultIdentity'), 'name'), 'UserAssignedIdentity'))), parameters('defaultIdentity').name, format('UserAssignedIdentity={0}', tryGet(parameters('defaultIdentity'), 'resourceId'))), 'enablePartitionMerge', parameters('enablePartitionMerge'), 'enablePerRegionPerPartitionAutoscale', parameters('enablePerRegionPerPartitionAutoscale'), 'databaseAccountOfferType', parameters('databaseAccountOfferType'), 'backupPolicy', shallowMerge(createArray(createObject('type', parameters('backupPolicyType')), if(equals(parameters('backupPolicyType'), 'Continuous'), createObject('continuousModeProperties', createObject('tier', parameters('backupPolicyContinuousTier'))), createObject()), if(equals(parameters('backupPolicyType'), 'Periodic'), createObject('periodicModeProperties', createObject('backupIntervalInMinutes', parameters('backupIntervalInMinutes'), 'backupRetentionIntervalInHours', parameters('backupRetentionIntervalInHours'), 'backupStorageRedundancy', parameters('backupStorageRedundancy'))), createObject()))), 'capabilities', map(coalesce(parameters('capabilitiesToAdd'), createArray()), lambda('capability', createObject('name', lambdaVariables('capability'))))), if(not(empty(parameters('cors'))), createObject('cors', parameters('cors')), createObject()), if(contains(coalesce(parameters('capabilitiesToAdd'), createArray()), 'EnableCassandra'), createObject('connectorOffer', if(parameters('enableCassandraConnector'), 'Small', null()), 'enableCassandraConnector', parameters('enableCassandraConnector')), createObject()), createObject('minimalTlsVersion', parameters('minimumTlsVersion'), 'capacity', createObject('totalThroughputLimit', parameters('totalThroughputLimit')), 'publicNetworkAccess', coalesce(tryGet(parameters('networkRestrictions'), 'publicNetworkAccess'), 'Disabled')), if(or(or(or(or(not(empty(parameters('sqlDatabases'))), not(empty(parameters('mongodbDatabases')))), not(empty(parameters('gremlinDatabases')))), not(empty(parameters('tables')))), not(empty(parameters('cassandraKeyspaces')))), createObject('consistencyPolicy', shallowMerge(createArray(createObject('defaultConsistencyLevel', parameters('defaultConsistencyLevel')), if(equals(parameters('defaultConsistencyLevel'), 'BoundedStaleness'), createObject('maxStalenessPrefix', parameters('maxStalenessPrefix'), 'maxIntervalInSeconds', parameters('maxIntervalInSeconds')), createObject()))), 'enableMultipleWriteLocations', parameters('enableMultipleWriteLocations'), 'locations', if(not(empty(parameters('failoverLocations'))), map(parameters('failoverLocations'), lambda('failoverLocation', createObject('failoverPriority', lambdaVariables('failoverLocation').failoverPriority, 'locationName', lambdaVariables('failoverLocation').locationName, 'isZoneRedundant', coalesce(tryGet(lambdaVariables('failoverLocation'), 'isZoneRedundant'), true())))), createArray(createObject('failoverPriority', 0, 'locationName', parameters('location'), 'isZoneRedundant', parameters('zoneRedundant')))), 'ipRules', map(coalesce(tryGet(parameters('networkRestrictions'), 'ipRules'), createArray()), lambda('ipRule', createObject('ipAddressOrRange', lambdaVariables('ipRule')))), 'virtualNetworkRules', map(coalesce(tryGet(parameters('networkRestrictions'), 'virtualNetworkRules'), createArray()), lambda('rule', createObject('id', lambdaVariables('rule').subnetResourceId, 'ignoreMissingVNetServiceEndpoint', false()))), 'networkAclBypass', coalesce(tryGet(parameters('networkRestrictions'), 'networkAclBypass'), 'None'), 'networkAclBypassResourceIds', tryGet(parameters('networkRestrictions'), 'networkAclBypassResourceIds'), 'isVirtualNetworkFilterEnabled', or(not(empty(tryGet(parameters('networkRestrictions'), 'ipRules'))), not(empty(tryGet(parameters('networkRestrictions'), 'virtualNetworkRules')))), 'enableFreeTier', parameters('enableFreeTier'), 'enableAutomaticFailover', parameters('enableAutomaticFailover'), 'enableAnalyticalStorage', parameters('enableAnalyticalStorage')), createObject()), if(or(or(not(empty(parameters('mongodbDatabases'))), not(empty(parameters('gremlinDatabases')))), not(empty(parameters('cassandraKeyspaces')))), createObject('disableLocalAuth', false(), 'disableKeyBasedMetadataWriteAccess', false()), createObject('disableLocalAuth', parameters('disableLocalAuthentication'), 'disableKeyBasedMetadataWriteAccess', parameters('disableKeyBasedMetadataWriteAccess'))), if(not(empty(parameters('mongodbDatabases'))), createObject('apiProperties', createObject('serverVersion', parameters('serverVersion'))), createObject())))]"
+ "properties": "[shallowMerge(createArray(createObject('enableBurstCapacity', if(not(contains(coalesce(parameters('capabilitiesToAdd'), createArray()), 'EnableServerless')), parameters('enableBurstCapacity'), false()), 'databaseAccountOfferType', parameters('databaseAccountOfferType'), 'analyticalStorageConfiguration', parameters('analyticalStorageConfiguration'), 'defaultIdentity', if(and(not(empty(parameters('defaultIdentity'))), not(equals(tryGet(parameters('defaultIdentity'), 'name'), 'UserAssignedIdentity'))), parameters('defaultIdentity').name, format('UserAssignedIdentity={0}', tryGet(parameters('defaultIdentity'), 'resourceId'))), 'keyVaultKeyUri', if(not(empty(parameters('customerManagedKey'))), if(not(variables('isHSMManagedCMK')), format('{0}', reference('cMKKeyVault::cMKKey').keyUri), format('https://{0}.managedhsm.azure.net/keys/{1}', last(split(parameters('customerManagedKey').keyVaultResourceId, '/')), parameters('customerManagedKey').keyName)), null()), 'enablePartitionMerge', parameters('enablePartitionMerge'), 'enablePerRegionPerPartitionAutoscale', parameters('enablePerRegionPerPartitionAutoscale'), 'backupPolicy', shallowMerge(createArray(createObject('type', parameters('backupPolicyType')), if(equals(parameters('backupPolicyType'), 'Continuous'), createObject('continuousModeProperties', createObject('tier', parameters('backupPolicyContinuousTier'))), createObject()), if(equals(parameters('backupPolicyType'), 'Periodic'), createObject('periodicModeProperties', createObject('backupIntervalInMinutes', parameters('backupIntervalInMinutes'), 'backupRetentionIntervalInHours', parameters('backupRetentionIntervalInHours'), 'backupStorageRedundancy', parameters('backupStorageRedundancy'))), createObject()))), 'capabilities', map(coalesce(parameters('capabilitiesToAdd'), createArray()), lambda('capability', createObject('name', lambdaVariables('capability'))))), if(not(empty(parameters('cors'))), createObject('cors', parameters('cors')), createObject()), if(contains(coalesce(parameters('capabilitiesToAdd'), createArray()), 'EnableCassandra'), createObject('connectorOffer', if(parameters('enableCassandraConnector'), 'Small', null()), 'enableCassandraConnector', parameters('enableCassandraConnector')), createObject()), createObject('minimalTlsVersion', parameters('minimumTlsVersion'), 'capacity', createObject('totalThroughputLimit', parameters('totalThroughputLimit')), 'publicNetworkAccess', coalesce(tryGet(parameters('networkRestrictions'), 'publicNetworkAccess'), 'Disabled'), 'locations', if(not(empty(parameters('failoverLocations'))), map(parameters('failoverLocations'), lambda('failoverLocation', createObject('failoverPriority', lambdaVariables('failoverLocation').failoverPriority, 'locationName', lambdaVariables('failoverLocation').locationName, 'isZoneRedundant', coalesce(tryGet(lambdaVariables('failoverLocation'), 'isZoneRedundant'), true())))), createArray(createObject('failoverPriority', 0, 'locationName', parameters('location'), 'isZoneRedundant', parameters('zoneRedundant'))))), if(or(or(or(or(not(empty(parameters('sqlDatabases'))), not(empty(parameters('mongodbDatabases')))), not(empty(parameters('gremlinDatabases')))), not(empty(parameters('tables')))), not(empty(parameters('cassandraKeyspaces')))), createObject('consistencyPolicy', shallowMerge(createArray(createObject('defaultConsistencyLevel', parameters('defaultConsistencyLevel')), if(equals(parameters('defaultConsistencyLevel'), 'BoundedStaleness'), createObject('maxStalenessPrefix', parameters('maxStalenessPrefix'), 'maxIntervalInSeconds', parameters('maxIntervalInSeconds')), createObject()))), 'enableMultipleWriteLocations', parameters('enableMultipleWriteLocations'), 'ipRules', map(coalesce(tryGet(parameters('networkRestrictions'), 'ipRules'), createArray()), lambda('ipRule', createObject('ipAddressOrRange', lambdaVariables('ipRule')))), 'virtualNetworkRules', map(coalesce(tryGet(parameters('networkRestrictions'), 'virtualNetworkRules'), createArray()), lambda('rule', createObject('id', lambdaVariables('rule').subnetResourceId, 'ignoreMissingVNetServiceEndpoint', false()))), 'networkAclBypass', coalesce(tryGet(parameters('networkRestrictions'), 'networkAclBypass'), 'None'), 'networkAclBypassResourceIds', tryGet(parameters('networkRestrictions'), 'networkAclBypassResourceIds'), 'isVirtualNetworkFilterEnabled', or(not(empty(tryGet(parameters('networkRestrictions'), 'ipRules'))), not(empty(tryGet(parameters('networkRestrictions'), 'virtualNetworkRules')))), 'enableFreeTier', parameters('enableFreeTier'), 'enableAutomaticFailover', parameters('enableAutomaticFailover'), 'enableAnalyticalStorage', parameters('enableAnalyticalStorage')), createObject()), if(or(or(not(empty(parameters('mongodbDatabases'))), not(empty(parameters('gremlinDatabases')))), not(empty(parameters('cassandraKeyspaces')))), createObject('disableLocalAuth', false(), 'disableKeyBasedMetadataWriteAccess', false()), createObject('disableLocalAuth', parameters('disableLocalAuthentication'), 'disableKeyBasedMetadataWriteAccess', parameters('disableKeyBasedMetadataWriteAccess'))), if(not(empty(parameters('mongodbDatabases'))), createObject('apiProperties', createObject('serverVersion', parameters('serverVersion'))), createObject())))]",
+ "dependsOn": [
+ "cMKKeyVault::cMKKey"
+ ]
},
"databaseAccount_lock": {
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.DocumentDB/databaseAccounts/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -46483,7 +47248,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.DocumentDB/databaseAccounts/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', parameters('name')))]",
"properties": {
"copy": [
@@ -46524,7 +47289,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.DocumentDB/databaseAccounts/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -46576,8 +47341,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "1549250134356326406"
+ "version": "0.40.2.10011",
+ "templateHash": "3972888645334640168"
},
"name": "DocumentDB Database Account SQL Databases",
"description": "This module deploys a SQL Database in a CosmosDB Account."
@@ -46832,8 +47597,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "1005439058963058082"
+ "version": "0.40.2.10011",
+ "templateHash": "4781880351108045502"
},
"name": "DocumentDB Database Account SQL Database Containers",
"description": "This module deploys a SQL Database Container in a CosmosDB Account."
@@ -47100,8 +47865,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "8600771348637416058"
+ "version": "0.40.2.10011",
+ "templateHash": "8514367433037227852"
},
"name": "DocumentDB Database Account SQL Role Definitions.",
"description": "This module deploys a SQL Role Definision in a CosmosDB Account."
@@ -47277,8 +48042,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "17007224102611744259"
+ "version": "0.40.2.10011",
+ "templateHash": "11817543900771838380"
},
"name": "DocumentDB Database Account SQL Role Assignments.",
"description": "This module deploys a SQL Role Assignment in a CosmosDB Account."
@@ -47476,8 +48241,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "17007224102611744259"
+ "version": "0.40.2.10011",
+ "templateHash": "11817543900771838380"
},
"name": "DocumentDB Database Account SQL Role Assignments.",
"description": "This module deploys a SQL Role Assignment in a CosmosDB Account."
@@ -47643,8 +48408,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "17859939500809924517"
+ "version": "0.40.2.10011",
+ "templateHash": "10787709019875067397"
},
"name": "DocumentDB Database Account Cassandra Role Definitions.",
"description": "This module deploys a Cassandra Role Definition in a CosmosDB Account."
@@ -47800,8 +48565,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "552115240340341941"
+ "version": "0.40.2.10011",
+ "templateHash": "14764024820910071147"
},
"name": "DocumentDB Database Account Cassandra Role Assignments.",
"description": "This module deploys a Cassandra Role Assignment in a CosmosDB Account."
@@ -47954,8 +48719,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "552115240340341941"
+ "version": "0.40.2.10011",
+ "templateHash": "14764024820910071147"
},
"name": "DocumentDB Database Account Cassandra Role Assignments.",
"description": "This module deploys a Cassandra Role Assignment in a CosmosDB Account."
@@ -48083,8 +48848,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "7289795303297936310"
+ "version": "0.40.2.10011",
+ "templateHash": "13897098552792121791"
},
"name": "DocumentDB Database Account MongoDB Databases",
"description": "This module deploys a MongoDB Database within a CosmosDB Account."
@@ -48243,8 +49008,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "4317369978166598876"
+ "version": "0.40.2.10011",
+ "templateHash": "16151461445994734468"
},
"name": "DocumentDB Database Account MongoDB Database Collections",
"description": "This module deploys a MongoDB Database Collection."
@@ -48408,8 +49173,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "14708982296215631776"
+ "version": "0.40.2.10011",
+ "templateHash": "11959636451300474346"
},
"name": "DocumentDB Database Account Gremlin Databases",
"description": "This module deploys a Gremlin Database within a CosmosDB Account."
@@ -48568,8 +49333,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "15097132107382000570"
+ "version": "0.40.2.10011",
+ "templateHash": "10487122333182352122"
},
"name": "DocumentDB Database Accounts Gremlin Databases Graphs",
"description": "This module deploys a DocumentDB Database Accounts Gremlin Database Graph."
@@ -48749,8 +49514,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "11768488776074268398"
+ "version": "0.40.2.10011",
+ "templateHash": "1787500858429182824"
},
"name": "Azure Cosmos DB account tables",
"description": "This module deploys a table within an Azure Cosmos DB Account."
@@ -48888,8 +49653,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "63327155428300562"
+ "version": "0.40.2.10011",
+ "templateHash": "15257396763463366586"
},
"name": "DocumentDB Database Account Cassandra Keyspaces",
"description": "This module deploys a Cassandra Keyspace within a CosmosDB Account."
@@ -49132,8 +49897,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "785607874724829202"
+ "version": "0.40.2.10011",
+ "templateHash": "15998065591386988132"
},
"name": "DocumentDB Database Account Cassandra Keyspaces Tables",
"description": "This module deploys a Cassandra Table within a Cassandra Keyspace in a CosmosDB Account."
@@ -49309,8 +50074,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "14021794949328228224"
+ "version": "0.40.2.10011",
+ "templateHash": "6617803098467821091"
},
"name": "DocumentDB Database Account Cassandra Keyspaces Views",
"description": "This module deploys a Cassandra View (Materialized View) within a Cassandra Keyspace in a CosmosDB Account."
@@ -50331,7 +51096,7 @@
}
},
"appInsightsConnectionString": "[if(parameters('enableMonitoring'), createObject('value', reference('applicationInsights').outputs.connectionString.value), createObject('value', null()))]",
- "appLogsConfiguration": "[if(parameters('enableMonitoring'), createObject('value', createObject('destination', 'log-analytics', 'logAnalyticsConfiguration', createObject('customerId', if(variables('useExistingLogAnalytics'), reference('existingLogAnalyticsWorkspace').customerId, reference('logAnalyticsWorkspace').outputs.logAnalyticsWorkspaceId.value), 'sharedKey', if(variables('useExistingLogAnalytics'), listKeys('existingLogAnalyticsWorkspace', '2020-08-01').primarySharedKey, listOutputsWithSecureValues('logAnalyticsWorkspace', '2025-04-01').primarySharedKey)))), createObject('value', createObject()))]",
+ "appLogsConfiguration": "[if(parameters('enableMonitoring'), createObject('value', createObject('destination', 'log-analytics', 'logAnalyticsWorkspaceResourceId', if(variables('useExistingLogAnalytics'), parameters('existingLogAnalyticsWorkspaceId'), reference('logAnalyticsWorkspace').outputs.resourceId.value), 'logAnalyticsConfiguration', createObject('customerId', if(variables('useExistingLogAnalytics'), reference('existingLogAnalyticsWorkspace').customerId, reference('logAnalyticsWorkspace').outputs.logAnalyticsWorkspaceId.value), 'sharedKey', if(variables('useExistingLogAnalytics'), listKeys('existingLogAnalyticsWorkspace', '2025-07-01').primarySharedKey, listOutputsWithSecureValues('logAnalyticsWorkspace', '2025-04-01').primarySharedKey)))), createObject('value', null()))]",
"workloadProfiles": "[if(parameters('enablePrivateNetworking'), createObject('value', createArray(createObject('name', 'Consumption', 'workloadProfileType', 'Consumption'))), createObject('value', createArray()))]",
"tags": {
"value": "[variables('allTags')]"
@@ -50347,8 +51112,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "1345160196550942789"
+ "version": "0.41.2.15936",
+ "templateHash": "16720885128976229647"
},
"name": "App ManagedEnvironments",
"description": "This module deploys an App Managed Environment (also known as a Container App Environment)."
@@ -50383,7 +51148,7 @@
}
},
"certificatePassword": {
- "type": "string",
+ "type": "securestring",
"nullable": true,
"metadata": {
"description": "Optional. The password of the certificate."
@@ -50395,6 +51160,23 @@
"metadata": {
"description": "Optional. A key vault reference."
}
+ },
+ "location": {
+ "type": "string",
+ "nullable": true,
+ "metadata": {
+ "description": "Optional. The location for the resource."
+ }
+ },
+ "tags": {
+ "type": "object",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments/certificates@2025-10-02-preview#properties/tags"
+ },
+ "description": "Optional. Tags of the resource."
+ },
+ "nullable": true
}
},
"metadata": {
@@ -50431,7 +51213,7 @@
"description": "Required. Storage account name."
}
},
- "shareName": {
+ "name": {
"type": "string",
"metadata": {
"description": "Required. File share name."
@@ -50444,45 +51226,61 @@
}
},
"appLogsConfigurationType": {
+ "type": "object",
+ "discriminator": {
+ "propertyName": "destination",
+ "mapping": {
+ "azure-monitor": {
+ "$ref": "#/definitions/appLogsConfigurationMonitorType"
+ },
+ "log-analytics": {
+ "$ref": "#/definitions/appLogsConfigurationLawType"
+ }
+ }
+ },
+ "metadata": {
+ "__bicep_export!": true,
+ "description": "The type for the App Logs Configuration."
+ }
+ },
+ "appLogsConfigurationMonitorType": {
"type": "object",
"properties": {
"destination": {
"type": "string",
"allowedValues": [
- "azure-monitor",
- "log-analytics",
- "none"
+ "azure-monitor"
],
- "nullable": true,
"metadata": {
- "description": "Optional. The destination of the logs."
+ "description": "Required. The destination of the logs."
+ }
+ }
+ },
+ "metadata": {
+ "description": "The type for the App Logs Configuration if using azure-monitor."
+ }
+ },
+ "appLogsConfigurationLawType": {
+ "type": "object",
+ "properties": {
+ "destination": {
+ "type": "string",
+ "allowedValues": [
+ "log-analytics"
+ ],
+ "metadata": {
+ "description": "Required. The destination of the logs."
}
},
- "logAnalyticsConfiguration": {
- "type": "object",
- "properties": {
- "customerId": {
- "type": "string",
- "metadata": {
- "description": "Required. The Log Analytics Workspace ID."
- }
- },
- "sharedKey": {
- "type": "securestring",
- "metadata": {
- "description": "Required. The shared key of the Log Analytics workspace."
- }
- }
- },
- "nullable": true,
+ "logAnalyticsWorkspaceResourceId": {
+ "type": "string",
"metadata": {
- "description": "Conditional. The Log Analytics configuration. Required if `destination` is `log-analytics`."
+ "description": "Required. Existing Log Analytics Workspace resource ID."
}
}
},
"metadata": {
- "__bicep_export!": true,
- "description": "The type for the App Logs Configuration."
+ "description": "The type for the App Logs Configuration if using log-analytics."
}
},
"certificateKeyVaultPropertiesType": {
@@ -50667,7 +51465,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/managedEnvironments@2024-10-02-preview#properties/tags"
+ "source": "Microsoft.App/managedEnvironments@2025-10-02-preview#properties/tags"
},
"description": "Optional. Tags of the resource."
},
@@ -50704,6 +51502,46 @@
"description": "Optional. Application Insights connection string."
}
},
+ "daprConfiguration": {
+ "type": "object",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments@2025-10-02-preview#properties/properties/properties/daprConfiguration"
+ },
+ "description": "Optional. The configuration of Dapr component."
+ },
+ "nullable": true
+ },
+ "ingressConfiguration": {
+ "type": "object",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments@2025-10-02-preview#properties/properties/properties/ingressConfiguration"
+ },
+ "description": "Optional. Ingress configuration for the Managed Environment."
+ },
+ "nullable": true
+ },
+ "kedaConfiguration": {
+ "type": "object",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments@2025-10-02-preview#properties/properties/properties/kedaConfiguration"
+ },
+ "description": "Optional. The configuration of Keda component."
+ },
+ "nullable": true
+ },
+ "peerAuthentication": {
+ "type": "object",
+ "metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments@2025-10-02-preview#properties/properties/properties/peerAuthentication"
+ },
+ "description": "Optional. Peer authentication settings for the Managed Environment."
+ },
+ "nullable": true
+ },
"daprAIConnectionString": {
"type": "securestring",
"defaultValue": "",
@@ -50727,7 +51565,7 @@
},
"infrastructureSubnetResourceId": {
"type": "string",
- "defaultValue": "",
+ "nullable": true,
"metadata": {
"description": "Conditional. Resource ID of a subnet for infrastructure components. This is used to deploy the environment into a virtual network. Must not overlap with any other provided IP ranges. Required if \"internal\" is set to true. Required if zoneRedundant is set to true to make the resource WAF compliant."
}
@@ -50736,7 +51574,7 @@
"type": "bool",
"defaultValue": false,
"metadata": {
- "description": "Conditional. Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. If set to true, then \"infrastructureSubnetId\" must be provided. Required if zoneRedundant is set to true to make the resource WAF compliant."
+ "description": "Conditional. Boolean indicating the environment only has an internal load balancer. These environments do not have a public static IP resource. If set to true, then \"infrastructureSubnetResourceId\" must be provided. Required if zoneRedundant is set to true to make the resource WAF compliant."
}
},
"platformReservedCidr": {
@@ -50787,7 +51625,7 @@
},
"certificateValue": {
"type": "securestring",
- "defaultValue": "",
+ "nullable": true,
"metadata": {
"description": "Optional. Certificate to use for the custom domain. PFX or PEM."
}
@@ -50808,17 +51646,23 @@
},
"openTelemetryConfiguration": {
"type": "object",
- "defaultValue": {},
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments@2025-02-02-preview#properties/properties/properties/openTelemetryConfiguration"
+ },
"description": "Optional. Open Telemetry configuration."
- }
+ },
+ "nullable": true
},
"workloadProfiles": {
"type": "array",
- "defaultValue": [],
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments@2025-10-02-preview#properties/properties/properties/workloadProfiles"
+ },
"description": "Conditional. Workload profiles configured for the Managed Environment. Required if zoneRedundant is set to true to make the resource WAF compliant."
- }
+ },
+ "nullable": true
},
"infrastructureResourceGroupName": {
"type": "string",
@@ -50861,7 +51705,7 @@
}
],
"formattedUserAssignedIdentities": "[reduce(map(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createArray()), lambda('id', createObject(format('{0}', lambdaVariables('id')), createObject()))), createObject(), lambda('cur', 'next', union(lambdaVariables('cur'), lambdaVariables('next'))))]",
- "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
+ "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(variables('formattedUserAssignedIdentities'))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(variables('formattedUserAssignedIdentities'))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
"builtInRoleNames": {
"Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"Owner": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
@@ -50871,27 +51715,11 @@
}
},
"resources": {
- "managedEnvironment::storage": {
- "copy": {
- "name": "managedEnvironment::storage",
- "count": "[length(coalesce(parameters('storages'), createArray()))]"
- },
- "type": "Microsoft.App/managedEnvironments/storages",
- "apiVersion": "2024-10-02-preview",
- "name": "[format('{0}/{1}', parameters('name'), coalesce(parameters('storages'), createArray())[copyIndex()].shareName)]",
- "properties": {
- "nfsAzureFile": "[if(equals(coalesce(parameters('storages'), createArray())[copyIndex()].kind, 'NFS'), createObject('accessMode', coalesce(parameters('storages'), createArray())[copyIndex()].accessMode, 'server', format('{0}.file.{1}', coalesce(parameters('storages'), createArray())[copyIndex()].storageAccountName, environment().suffixes.storage), 'shareName', format('/{0}/{1}', coalesce(parameters('storages'), createArray())[copyIndex()].storageAccountName, coalesce(parameters('storages'), createArray())[copyIndex()].shareName)), null())]",
- "azureFile": "[if(equals(coalesce(parameters('storages'), createArray())[copyIndex()].kind, 'SMB'), createObject('accessMode', coalesce(parameters('storages'), createArray())[copyIndex()].accessMode, 'accountName', coalesce(parameters('storages'), createArray())[copyIndex()].storageAccountName, 'accountKey', listkeys(resourceId('Microsoft.Storage/storageAccounts', coalesce(parameters('storages'), createArray())[copyIndex()].storageAccountName), '2023-01-01').keys[0].value, 'shareName', coalesce(parameters('storages'), createArray())[copyIndex()].shareName), null())]"
- },
- "dependsOn": [
- "managedEnvironment"
- ]
- },
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2024-11-01",
- "name": "[format('46d3xbcp.res.app-managedenvironment.{0}.{1}', replace('0.11.3', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "name": "[format('46d3xbcp.res.app-managedenvironment.{0}.{1}', replace('0.13.1', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -50907,9 +51735,18 @@
}
}
},
+ "logAnalyticsWorkspace": {
+ "condition": "[not(empty(tryGet(parameters('appLogsConfiguration'), 'logAnalyticsWorkspaceResourceId')))]",
+ "existing": true,
+ "type": "Microsoft.OperationalInsights/workspaces",
+ "apiVersion": "2025-02-01",
+ "subscriptionId": "[split(tryGet(parameters('appLogsConfiguration'), 'logAnalyticsWorkspaceResourceId'), '/')[2]]",
+ "resourceGroup": "[split(tryGet(parameters('appLogsConfiguration'), 'logAnalyticsWorkspaceResourceId'), '/')[4]]",
+ "name": "[last(split(tryGet(parameters('appLogsConfiguration'), 'logAnalyticsWorkspaceResourceId'), '/'))]"
+ },
"managedEnvironment": {
"type": "Microsoft.App/managedEnvironments",
- "apiVersion": "2024-10-02-preview",
+ "apiVersion": "2025-10-02-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
@@ -50918,16 +51755,20 @@
"appInsightsConfiguration": {
"connectionString": "[parameters('appInsightsConnectionString')]"
},
- "appLogsConfiguration": "[parameters('appLogsConfiguration')]",
+ "daprConfiguration": "[parameters('daprConfiguration')]",
+ "ingressConfiguration": "[parameters('ingressConfiguration')]",
+ "kedaConfiguration": "[parameters('kedaConfiguration')]",
+ "peerAuthentication": "[parameters('peerAuthentication')]",
+ "appLogsConfiguration": "[if(not(empty(parameters('appLogsConfiguration'))), shallowMerge(createArray(createObject('destination', parameters('appLogsConfiguration').destination), if(not(empty(tryGet(parameters('appLogsConfiguration'), 'logAnalyticsWorkspaceResourceId'))), createObject('logAnalyticsConfiguration', createObject('customerId', reference('logAnalyticsWorkspace').customerId, 'sharedKey', listKeys('logAnalyticsWorkspace', '2025-02-01').primarySharedKey)), createObject()))), null())]",
"daprAIConnectionString": "[parameters('daprAIConnectionString')]",
"daprAIInstrumentationKey": "[parameters('daprAIInstrumentationKey')]",
"customDomainConfiguration": {
"certificatePassword": "[parameters('certificatePassword')]",
- "certificateValue": "[if(not(empty(parameters('certificateValue'))), parameters('certificateValue'), null())]",
+ "certificateValue": "[parameters('certificateValue')]",
"dnsSuffix": "[parameters('dnsSuffix')]",
"certificateKeyVaultProperties": "[if(not(empty(tryGet(parameters('certificate'), 'certificateKeyVaultProperties'))), createObject('identity', tryGet(parameters('certificate'), 'certificateKeyVaultProperties', 'identityResourceId'), 'keyVaultUrl', tryGet(parameters('certificate'), 'certificateKeyVaultProperties', 'keyVaultUrl')), null())]"
},
- "openTelemetryConfiguration": "[if(not(empty(parameters('openTelemetryConfiguration'))), parameters('openTelemetryConfiguration'), null())]",
+ "openTelemetryConfiguration": "[parameters('openTelemetryConfiguration')]",
"peerTrafficConfiguration": {
"encryption": {
"enabled": "[parameters('peerTrafficEncryption')]"
@@ -50936,15 +51777,18 @@
"publicNetworkAccess": "[parameters('publicNetworkAccess')]",
"vnetConfiguration": {
"internal": "[parameters('internal')]",
- "infrastructureSubnetId": "[if(not(empty(parameters('infrastructureSubnetResourceId'))), parameters('infrastructureSubnetResourceId'), null())]",
+ "infrastructureSubnetId": "[parameters('infrastructureSubnetResourceId')]",
"dockerBridgeCidr": "[if(not(empty(parameters('infrastructureSubnetResourceId'))), parameters('dockerBridgeCidr'), null())]",
"platformReservedCidr": "[if(and(empty(parameters('workloadProfiles')), not(empty(parameters('infrastructureSubnetResourceId')))), parameters('platformReservedCidr'), null())]",
"platformReservedDnsIP": "[if(and(empty(parameters('workloadProfiles')), not(empty(parameters('infrastructureSubnetResourceId')))), parameters('platformReservedDnsIP'), null())]"
},
- "workloadProfiles": "[if(not(empty(parameters('workloadProfiles'))), parameters('workloadProfiles'), null())]",
+ "workloadProfiles": "[parameters('workloadProfiles')]",
"zoneRedundant": "[parameters('zoneRedundant')]",
"infrastructureResourceGroup": "[parameters('infrastructureResourceGroupName')]"
- }
+ },
+ "dependsOn": [
+ "logAnalyticsWorkspace"
+ ]
},
"managedEnvironment_roleAssignments": {
"copy": {
@@ -50953,7 +51797,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.App/managedEnvironments/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/managedEnvironments', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.App/managedEnvironments', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -50972,7 +51816,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.App/managedEnvironments/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/managedEnvironments', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -50982,10 +51826,135 @@
"managedEnvironment"
]
},
+ "managedEnvironment_storage": {
+ "copy": {
+ "name": "managedEnvironment_storage",
+ "count": "[length(coalesce(parameters('storages'), createArray()))]"
+ },
+ "type": "Microsoft.Resources/deployments",
+ "apiVersion": "2025-04-01",
+ "name": "[format('{0}-Managed-Environment-Storage-{1}', uniqueString(deployment().name), copyIndex())]",
+ "properties": {
+ "expressionEvaluationOptions": {
+ "scope": "inner"
+ },
+ "mode": "Incremental",
+ "parameters": {
+ "name": {
+ "value": "[coalesce(parameters('storages'), createArray())[copyIndex()].name]"
+ },
+ "managedEnvironmentName": {
+ "value": "[parameters('name')]"
+ },
+ "kind": {
+ "value": "[coalesce(parameters('storages'), createArray())[copyIndex()].kind]"
+ },
+ "accessMode": {
+ "value": "[coalesce(parameters('storages'), createArray())[copyIndex()].accessMode]"
+ },
+ "storageAccountName": {
+ "value": "[coalesce(parameters('storages'), createArray())[copyIndex()].storageAccountName]"
+ }
+ },
+ "template": {
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "languageVersion": "2.0",
+ "contentVersion": "1.0.0.0",
+ "metadata": {
+ "_generator": {
+ "name": "bicep",
+ "version": "0.41.2.15936",
+ "templateHash": "12148192527952992187"
+ },
+ "name": "App ManagedEnvironments Certificates",
+ "description": "This module deploys a App Managed Environment Certificate."
+ },
+ "parameters": {
+ "name": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The name of the file share."
+ }
+ },
+ "managedEnvironmentName": {
+ "type": "string",
+ "metadata": {
+ "description": "Conditional. The name of the parent app managed environment. Required if the template is used in a standalone deployment."
+ }
+ },
+ "accessMode": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. The access mode for the storage."
+ }
+ },
+ "kind": {
+ "type": "string",
+ "allowedValues": [
+ "NFS",
+ "SMB"
+ ],
+ "metadata": {
+ "description": "Required. Type of storage: \"SMB\" or \"NFS\"."
+ }
+ },
+ "storageAccountName": {
+ "type": "string",
+ "metadata": {
+ "description": "Required. Storage account name."
+ }
+ }
+ },
+ "resources": {
+ "managedEnvironment": {
+ "existing": true,
+ "type": "Microsoft.App/managedEnvironments",
+ "apiVersion": "2025-10-02-preview",
+ "name": "[parameters('managedEnvironmentName')]"
+ },
+ "storage": {
+ "type": "Microsoft.App/managedEnvironments/storages",
+ "apiVersion": "2025-10-02-preview",
+ "name": "[format('{0}/{1}', parameters('managedEnvironmentName'), parameters('name'))]",
+ "properties": {
+ "nfsAzureFile": "[if(equals(parameters('kind'), 'NFS'), createObject('accessMode', parameters('accessMode'), 'server', format('{0}.file.{1}', parameters('storageAccountName'), environment().suffixes.storage), 'shareName', format('/{0}/{1}', parameters('storageAccountName'), parameters('name'))), null())]",
+ "azureFile": "[if(equals(parameters('kind'), 'SMB'), createObject('accessMode', parameters('accessMode'), 'accountName', parameters('storageAccountName'), 'accountKey', listkeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2025-01-01').keys[0].value, 'shareName', parameters('name')), null())]"
+ }
+ }
+ },
+ "outputs": {
+ "name": {
+ "type": "string",
+ "metadata": {
+ "description": "The name of the file share."
+ },
+ "value": "[parameters('name')]"
+ },
+ "resourceId": {
+ "type": "string",
+ "metadata": {
+ "description": "The resource ID of the file share."
+ },
+ "value": "[resourceId('Microsoft.App/managedEnvironments/storages', parameters('managedEnvironmentName'), parameters('name'))]"
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "metadata": {
+ "description": "The resource group the file share was deployed into."
+ },
+ "value": "[resourceGroup().name]"
+ }
+ }
+ }
+ },
+ "dependsOn": [
+ "managedEnvironment"
+ ]
+ },
"managedEnvironment_certificate": {
"condition": "[not(empty(parameters('certificate')))]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2022-09-01",
+ "apiVersion": "2025-04-01",
"name": "[format('{0}-Managed-Environment-Certificate', uniqueString(deployment().name))]",
"properties": {
"expressionEvaluationOptions": {
@@ -51010,6 +51979,12 @@
},
"certificatePassword": {
"value": "[tryGet(parameters('certificate'), 'certificatePassword')]"
+ },
+ "location": {
+ "value": "[tryGet(parameters('certificate'), 'location')]"
+ },
+ "tags": {
+ "value": "[tryGet(parameters('certificate'), 'tags')]"
}
},
"template": {
@@ -51019,8 +51994,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.37.4.10188",
- "templateHash": "13507794255589178049"
+ "version": "0.41.2.15936",
+ "templateHash": "3685452564310390968"
},
"name": "App ManagedEnvironments Certificates",
"description": "This module deploys a App Managed Environment Certificate."
@@ -51102,22 +52077,25 @@
},
"tags": {
"type": "object",
- "nullable": true,
"metadata": {
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/managedEnvironments/certificates@2025-10-02-preview#properties/tags"
+ },
"description": "Optional. Tags of the resource."
- }
+ },
+ "nullable": true
}
},
"resources": {
"managedEnvironment": {
"existing": true,
"type": "Microsoft.App/managedEnvironments",
- "apiVersion": "2024-10-02-preview",
+ "apiVersion": "2025-10-02-preview",
"name": "[parameters('managedEnvironmentName')]"
},
"managedEnvironmentCertificate": {
"type": "Microsoft.App/managedEnvironments/certificates",
- "apiVersion": "2024-10-02-preview",
+ "apiVersion": "2025-10-02-preview",
"name": "[format('{0}/{1}', parameters('managedEnvironmentName'), parameters('name'))]",
"location": "[parameters('location')]",
"properties": {
@@ -51147,7 +52125,7 @@
"resourceGroupName": {
"type": "string",
"metadata": {
- "description": "The resource group the batch account was deployed into."
+ "description": "The resource group the certificate was deployed into."
},
"value": "[resourceGroup().name]"
}
@@ -51172,7 +52150,7 @@
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('managedEnvironment', '2024-10-02-preview', 'full').location]"
+ "value": "[reference('managedEnvironment', '2025-10-02-preview', 'full').location]"
},
"name": {
"type": "string",
@@ -51194,7 +52172,7 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
- "value": "[tryGet(tryGet(reference('managedEnvironment', '2024-10-02-preview', 'full'), 'identity'), 'principalId')]"
+ "value": "[tryGet(tryGet(reference('managedEnvironment', '2025-10-02-preview', 'full'), 'identity'), 'principalId')]"
},
"defaultDomain": {
"type": "string",
@@ -51295,8 +52273,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "7056981135113238663"
+ "version": "0.42.1.51946",
+ "templateHash": "14994565436716579607"
},
"name": "Container Apps",
"description": "This module deploys a Container App."
@@ -51776,7 +52754,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/encryptionSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/encryptionSettings"
},
"description": "Optional. The configuration settings of the secrets references of encryption key and signing key for ContainerApp Service Authentication/Authorization."
},
@@ -51786,7 +52764,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/globalValidation"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/globalValidation"
},
"description": "Optional. The configuration settings that determines the validation flow of users using Service Authentication and/or Authorization."
},
@@ -51796,7 +52774,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/httpSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/httpSettings"
},
"description": "Optional. The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp Service Authentication/Authorization."
},
@@ -51806,7 +52784,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/identityProviders"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/identityProviders"
},
"description": "Optional. The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization."
},
@@ -51816,7 +52794,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/login"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/login"
},
"description": "Optional. The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization."
},
@@ -51826,7 +52804,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/platform"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/platform"
},
"description": "Optional. The configuration settings of the platform of ContainerApp Service Authentication/Authorization."
},
@@ -51923,7 +52901,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if only metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -51960,7 +52938,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -51988,7 +52966,7 @@
"metadata": {
"description": "An AVM-aligned type for a managed identity configuration. To be used if both a system-assigned & user-assigned identities are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.4.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -52063,7 +53041,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.4.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
}
@@ -52155,7 +53133,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/service"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/service"
},
"description": "Optional. Dev ContainerApp service type."
},
@@ -52240,7 +53218,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/tags"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/tags"
},
"description": "Optional. Tags of the resource."
},
@@ -52250,7 +53228,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/registries"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/registries"
},
"description": "Optional. Collection of private container registry credentials for containers used by the Container app."
},
@@ -52284,7 +53262,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/ingress/properties/customDomains"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/ingress/properties/customDomains"
},
"description": "Optional. Custom domain bindings for Container App hostnames."
},
@@ -52301,45 +53279,27 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/ingress/properties/ipSecurityRestrictions"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/ingress/properties/ipSecurityRestrictions"
},
"description": "Optional. Rules to restrict incoming IP address."
},
"nullable": true
},
- "trafficLabel": {
- "type": "string",
- "defaultValue": "label-1",
- "metadata": {
- "description": "Optional. Associates a traffic label with a revision. Label name should be consist of lower case alphanumeric characters or dashes."
- }
- },
- "trafficLatestRevision": {
- "type": "bool",
- "defaultValue": true,
- "metadata": {
- "description": "Optional. Indicates that the traffic weight belongs to a latest stable revision."
- }
- },
- "trafficRevisionName": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. Name of a revision."
- }
- },
- "trafficWeight": {
- "type": "int",
- "defaultValue": 100,
+ "traffic": {
+ "type": "array",
"metadata": {
- "description": "Optional. Traffic weight assigned to a revision."
- }
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/ingress/properties/traffic"
+ },
+ "description": "Optional. Traffic weight configuration for routing traffic across revisions. Each entry specifies a revision (or latest) and its traffic percentage. Supports blue-green and canary deployment patterns."
+ },
+ "nullable": true
},
"dapr": {
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/dapr"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/dapr"
},
"description": "Optional. Dapr configuration for the Container App."
},
@@ -52349,7 +53309,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/identitySettings"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/identitySettings"
},
"description": "Optional. Settings for Managed Identities that are assigned to the Container App. If a Managed Identity is not specified here, default settings will be used."
},
@@ -52366,7 +53326,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/runtime"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/runtime"
},
"description": "Optional. Runtime configuration for the Container App."
},
@@ -52376,7 +53336,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/template/properties/containers"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/template/properties/containers"
},
"description": "Required. List of container definitions for the Container App."
}
@@ -52392,7 +53352,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/template/properties/initContainers"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/template/properties/initContainers"
},
"description": "Optional. List of specialized containers that run before app containers."
},
@@ -52419,7 +53379,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/template/properties/volumes"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/template/properties/volumes"
},
"description": "Optional. List of volume definitions for the Container App."
},
@@ -52459,7 +53419,7 @@
}
],
"formattedUserAssignedIdentities": "[reduce(map(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createArray()), lambda('id', createObject(format('{0}', lambdaVariables('id')), createObject()))), createObject(), lambda('cur', 'next', union(lambdaVariables('cur'), lambdaVariables('next'))))]",
- "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
+ "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(variables('formattedUserAssignedIdentities'))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(variables('formattedUserAssignedIdentities'))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
"builtInRoleNames": {
"ContainerApp Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'ad2dd5fb-cd4b-4fd4-a9b6-4fed3630980b')]",
"Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
@@ -52473,8 +53433,8 @@
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.app-containerapp.{0}.{1}', replace('0.19.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('46d3xbcp.res.app-containerapp.{0}.{1}', replace('0.22.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -52492,7 +53452,7 @@
},
"containerApp": {
"type": "Microsoft.App/containerApps",
- "apiVersion": "2025-02-02-preview",
+ "apiVersion": "2026-01-01",
"name": "[parameters('name')]",
"tags": "[parameters('tags')]",
"kind": "[parameters('kind')]",
@@ -52504,22 +53464,22 @@
"template": {
"containers": "[parameters('containers')]",
"terminationGracePeriodSeconds": "[parameters('terminationGracePeriodSeconds')]",
- "initContainers": "[if(not(empty(parameters('initContainersTemplate'))), parameters('initContainersTemplate'), null())]",
+ "initContainers": "[parameters('initContainersTemplate')]",
"revisionSuffix": "[parameters('revisionSuffix')]",
"scale": "[parameters('scaleSettings')]",
- "serviceBinds": "[if(and(parameters('includeAddOns'), not(empty(parameters('serviceBinds')))), parameters('serviceBinds'), null())]",
- "volumes": "[if(not(empty(parameters('volumes'))), parameters('volumes'), null())]"
+ "serviceBinds": "[if(parameters('includeAddOns'), parameters('serviceBinds'), null())]",
+ "volumes": "[parameters('volumes')]"
},
"configuration": {
"activeRevisionsMode": "[parameters('activeRevisionsMode')]",
- "dapr": "[if(not(empty(parameters('dapr'))), parameters('dapr'), null())]",
- "identitySettings": "[if(not(empty(parameters('identitySettings'))), parameters('identitySettings'), null())]",
- "ingress": "[if(parameters('disableIngress'), null(), createObject('additionalPortMappings', parameters('additionalPortMappings'), 'allowInsecure', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('ingressAllowInsecure'), false()), 'customDomains', if(not(empty(parameters('customDomains'))), parameters('customDomains'), null()), 'corsPolicy', if(and(not(equals(parameters('corsPolicy'), null())), not(equals(parameters('ingressTransport'), 'tcp'))), createObject('allowCredentials', coalesce(tryGet(parameters('corsPolicy'), 'allowCredentials'), false()), 'allowedHeaders', coalesce(tryGet(parameters('corsPolicy'), 'allowedHeaders'), createArray()), 'allowedMethods', coalesce(tryGet(parameters('corsPolicy'), 'allowedMethods'), createArray()), 'allowedOrigins', coalesce(tryGet(parameters('corsPolicy'), 'allowedOrigins'), createArray()), 'exposeHeaders', coalesce(tryGet(parameters('corsPolicy'), 'exposeHeaders'), createArray()), 'maxAge', tryGet(parameters('corsPolicy'), 'maxAge')), null()), 'clientCertificateMode', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('clientCertificateMode'), null()), 'exposedPort', parameters('exposedPort'), 'external', parameters('ingressExternal'), 'ipSecurityRestrictions', if(not(empty(parameters('ipSecurityRestrictions'))), parameters('ipSecurityRestrictions'), null()), 'targetPort', parameters('ingressTargetPort'), 'stickySessions', createObject('affinity', parameters('stickySessionsAffinity')), 'traffic', if(not(equals(parameters('ingressTransport'), 'tcp')), createArray(createObject('label', parameters('trafficLabel'), 'latestRevision', parameters('trafficLatestRevision'), 'revisionName', parameters('trafficRevisionName'), 'weight', parameters('trafficWeight'))), null()), 'transport', parameters('ingressTransport')))]",
- "service": "[if(and(parameters('includeAddOns'), not(empty(parameters('service')))), parameters('service'), null())]",
+ "dapr": "[parameters('dapr')]",
+ "identitySettings": "[parameters('identitySettings')]",
+ "ingress": "[if(parameters('disableIngress'), null(), createObject('additionalPortMappings', parameters('additionalPortMappings'), 'allowInsecure', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('ingressAllowInsecure'), false()), 'customDomains', parameters('customDomains'), 'corsPolicy', if(and(not(equals(parameters('corsPolicy'), null())), not(equals(parameters('ingressTransport'), 'tcp'))), createObject('allowCredentials', coalesce(tryGet(parameters('corsPolicy'), 'allowCredentials'), false()), 'allowedHeaders', coalesce(tryGet(parameters('corsPolicy'), 'allowedHeaders'), createArray()), 'allowedMethods', coalesce(tryGet(parameters('corsPolicy'), 'allowedMethods'), createArray()), 'allowedOrigins', coalesce(tryGet(parameters('corsPolicy'), 'allowedOrigins'), createArray()), 'exposeHeaders', coalesce(tryGet(parameters('corsPolicy'), 'exposeHeaders'), createArray()), 'maxAge', tryGet(parameters('corsPolicy'), 'maxAge')), null()), 'clientCertificateMode', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('clientCertificateMode'), null()), 'exposedPort', parameters('exposedPort'), 'external', parameters('ingressExternal'), 'ipSecurityRestrictions', parameters('ipSecurityRestrictions'), 'targetPort', parameters('ingressTargetPort'), 'stickySessions', createObject('affinity', parameters('stickySessionsAffinity')), 'traffic', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('traffic'), null()), 'transport', parameters('ingressTransport')))]",
+ "service": "[if(parameters('includeAddOns'), parameters('service'), null())]",
"maxInactiveRevisions": "[parameters('maxInactiveRevisions')]",
- "registries": "[if(not(empty(parameters('registries'))), parameters('registries'), null())]",
+ "registries": "[parameters('registries')]",
"secrets": "[parameters('secrets')]",
- "runtime": "[if(not(empty(parameters('runtime'))), parameters('runtime'), null())]"
+ "runtime": "[parameters('runtime')]"
}
}
},
@@ -52527,7 +53487,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.App/containerApps/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/containerApps', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -52544,7 +53504,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.App/containerApps/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/containerApps', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.App/containerApps', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -52566,7 +53526,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.App/containerApps/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/containerApps', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', parameters('name')))]",
"properties": {
"copy": [
@@ -52631,8 +53591,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "12480411243596309951"
+ "version": "0.42.1.51946",
+ "templateHash": "12173377941230147433"
},
"name": "Container App Auth Configs",
"description": "This module deploys Container App Auth Configs."
@@ -52648,7 +53608,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/encryptionSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/encryptionSettings"
},
"description": "Optional. The configuration settings of the secrets references of encryption key and signing key for ContainerApp Service Authentication/Authorization."
},
@@ -52658,7 +53618,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/globalValidation"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/globalValidation"
},
"description": "Optional. The configuration settings that determines the validation flow of users using Service Authentication and/or Authorization."
},
@@ -52668,7 +53628,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/httpSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/httpSettings"
},
"description": "Optional. The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp Service Authentication/Authorization."
},
@@ -52678,7 +53638,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/identityProviders"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/identityProviders"
},
"description": "Optional. The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization."
},
@@ -52688,7 +53648,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/login"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/login"
},
"description": "Optional. The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization."
},
@@ -52698,7 +53658,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/platform"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/platform"
},
"description": "Optional. The configuration settings of the platform of ContainerApp Service Authentication/Authorization."
},
@@ -52709,12 +53669,12 @@
"containerApp": {
"existing": true,
"type": "Microsoft.App/containerApps",
- "apiVersion": "2025-02-02-preview",
+ "apiVersion": "2026-01-01",
"name": "[parameters('containerAppName')]"
},
"containerAppAuthConfigs": {
"type": "Microsoft.App/containerApps/authConfigs",
- "apiVersion": "2025-02-02-preview",
+ "apiVersion": "2026-01-01",
"name": "[format('{0}/{1}', parameters('containerAppName'), 'current')]",
"properties": {
"encryptionSettings": "[parameters('encryptionSettings')]",
@@ -52791,14 +53751,14 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
- "value": "[tryGet(tryGet(reference('containerApp', '2025-02-02-preview', 'full'), 'identity'), 'principalId')]"
+ "value": "[tryGet(tryGet(reference('containerApp', '2026-01-01', 'full'), 'identity'), 'principalId')]"
},
"location": {
"type": "string",
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('containerApp', '2025-02-02-preview', 'full').location]"
+ "value": "[reference('containerApp', '2026-01-01', 'full').location]"
}
}
}
@@ -52887,8 +53847,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "7056981135113238663"
+ "version": "0.42.1.51946",
+ "templateHash": "14994565436716579607"
},
"name": "Container Apps",
"description": "This module deploys a Container App."
@@ -53368,7 +54328,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/encryptionSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/encryptionSettings"
},
"description": "Optional. The configuration settings of the secrets references of encryption key and signing key for ContainerApp Service Authentication/Authorization."
},
@@ -53378,7 +54338,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/globalValidation"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/globalValidation"
},
"description": "Optional. The configuration settings that determines the validation flow of users using Service Authentication and/or Authorization."
},
@@ -53388,7 +54348,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/httpSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/httpSettings"
},
"description": "Optional. The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp Service Authentication/Authorization."
},
@@ -53398,7 +54358,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/identityProviders"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/identityProviders"
},
"description": "Optional. The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization."
},
@@ -53408,7 +54368,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/login"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/login"
},
"description": "Optional. The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization."
},
@@ -53418,7 +54378,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/platform"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/platform"
},
"description": "Optional. The configuration settings of the platform of ContainerApp Service Authentication/Authorization."
},
@@ -53515,7 +54475,7 @@
"metadata": {
"description": "An AVM-aligned type for a diagnostic setting. To be used if only metrics are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -53552,7 +54512,7 @@
"metadata": {
"description": "An AVM-aligned type for a lock.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.0"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -53580,7 +54540,7 @@
"metadata": {
"description": "An AVM-aligned type for a managed identity configuration. To be used if both a system-assigned & user-assigned identities are supported by the resource provider.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.4.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
},
@@ -53655,7 +54615,7 @@
"metadata": {
"description": "An AVM-aligned type for a role assignment.",
"__bicep_imported_from!": {
- "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.4.1"
+ "sourceTemplate": "br:mcr.microsoft.com/bicep/avm/utl/types/avm-common-types:0.6.1"
}
}
}
@@ -53747,7 +54707,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/service"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/service"
},
"description": "Optional. Dev ContainerApp service type."
},
@@ -53832,7 +54792,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/tags"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/tags"
},
"description": "Optional. Tags of the resource."
},
@@ -53842,7 +54802,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/registries"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/registries"
},
"description": "Optional. Collection of private container registry credentials for containers used by the Container app."
},
@@ -53876,7 +54836,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/ingress/properties/customDomains"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/ingress/properties/customDomains"
},
"description": "Optional. Custom domain bindings for Container App hostnames."
},
@@ -53893,45 +54853,27 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/ingress/properties/ipSecurityRestrictions"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/ingress/properties/ipSecurityRestrictions"
},
"description": "Optional. Rules to restrict incoming IP address."
},
"nullable": true
},
- "trafficLabel": {
- "type": "string",
- "defaultValue": "label-1",
- "metadata": {
- "description": "Optional. Associates a traffic label with a revision. Label name should be consist of lower case alphanumeric characters or dashes."
- }
- },
- "trafficLatestRevision": {
- "type": "bool",
- "defaultValue": true,
- "metadata": {
- "description": "Optional. Indicates that the traffic weight belongs to a latest stable revision."
- }
- },
- "trafficRevisionName": {
- "type": "string",
- "nullable": true,
- "metadata": {
- "description": "Optional. Name of a revision."
- }
- },
- "trafficWeight": {
- "type": "int",
- "defaultValue": 100,
+ "traffic": {
+ "type": "array",
"metadata": {
- "description": "Optional. Traffic weight assigned to a revision."
- }
+ "__bicep_resource_derived_type!": {
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/ingress/properties/traffic"
+ },
+ "description": "Optional. Traffic weight configuration for routing traffic across revisions. Each entry specifies a revision (or latest) and its traffic percentage. Supports blue-green and canary deployment patterns."
+ },
+ "nullable": true
},
"dapr": {
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/dapr"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/dapr"
},
"description": "Optional. Dapr configuration for the Container App."
},
@@ -53941,7 +54883,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/identitySettings"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/identitySettings"
},
"description": "Optional. Settings for Managed Identities that are assigned to the Container App. If a Managed Identity is not specified here, default settings will be used."
},
@@ -53958,7 +54900,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/configuration/properties/runtime"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/configuration/properties/runtime"
},
"description": "Optional. Runtime configuration for the Container App."
},
@@ -53968,7 +54910,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/template/properties/containers"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/template/properties/containers"
},
"description": "Required. List of container definitions for the Container App."
}
@@ -53984,7 +54926,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/template/properties/initContainers"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/template/properties/initContainers"
},
"description": "Optional. List of specialized containers that run before app containers."
},
@@ -54011,7 +54953,7 @@
"type": "array",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps@2025-02-02-preview#properties/properties/properties/template/properties/volumes"
+ "source": "Microsoft.App/containerApps@2026-01-01#properties/properties/properties/template/properties/volumes"
},
"description": "Optional. List of volume definitions for the Container App."
},
@@ -54051,7 +54993,7 @@
}
],
"formattedUserAssignedIdentities": "[reduce(map(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createArray()), lambda('id', createObject(format('{0}', lambdaVariables('id')), createObject()))), createObject(), lambda('cur', 'next', union(lambdaVariables('cur'), lambdaVariables('next'))))]",
- "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
+ "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(coalesce(tryGet(parameters('managedIdentities'), 'systemAssigned'), false()), if(not(empty(variables('formattedUserAssignedIdentities'))), 'SystemAssigned,UserAssigned', 'SystemAssigned'), if(not(empty(variables('formattedUserAssignedIdentities'))), 'UserAssigned', 'None')), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]",
"builtInRoleNames": {
"ContainerApp Reader": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'ad2dd5fb-cd4b-4fd4-a9b6-4fed3630980b')]",
"Contributor": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
@@ -54065,8 +55007,8 @@
"avmTelemetry": {
"condition": "[parameters('enableTelemetry')]",
"type": "Microsoft.Resources/deployments",
- "apiVersion": "2024-03-01",
- "name": "[format('46d3xbcp.res.app-containerapp.{0}.{1}', replace('0.19.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
+ "apiVersion": "2025-04-01",
+ "name": "[format('46d3xbcp.res.app-containerapp.{0}.{1}', replace('0.22.0', '.', '-'), substring(uniqueString(deployment().name, parameters('location')), 0, 4))]",
"properties": {
"mode": "Incremental",
"template": {
@@ -54084,7 +55026,7 @@
},
"containerApp": {
"type": "Microsoft.App/containerApps",
- "apiVersion": "2025-02-02-preview",
+ "apiVersion": "2026-01-01",
"name": "[parameters('name')]",
"tags": "[parameters('tags')]",
"kind": "[parameters('kind')]",
@@ -54096,22 +55038,22 @@
"template": {
"containers": "[parameters('containers')]",
"terminationGracePeriodSeconds": "[parameters('terminationGracePeriodSeconds')]",
- "initContainers": "[if(not(empty(parameters('initContainersTemplate'))), parameters('initContainersTemplate'), null())]",
+ "initContainers": "[parameters('initContainersTemplate')]",
"revisionSuffix": "[parameters('revisionSuffix')]",
"scale": "[parameters('scaleSettings')]",
- "serviceBinds": "[if(and(parameters('includeAddOns'), not(empty(parameters('serviceBinds')))), parameters('serviceBinds'), null())]",
- "volumes": "[if(not(empty(parameters('volumes'))), parameters('volumes'), null())]"
+ "serviceBinds": "[if(parameters('includeAddOns'), parameters('serviceBinds'), null())]",
+ "volumes": "[parameters('volumes')]"
},
"configuration": {
"activeRevisionsMode": "[parameters('activeRevisionsMode')]",
- "dapr": "[if(not(empty(parameters('dapr'))), parameters('dapr'), null())]",
- "identitySettings": "[if(not(empty(parameters('identitySettings'))), parameters('identitySettings'), null())]",
- "ingress": "[if(parameters('disableIngress'), null(), createObject('additionalPortMappings', parameters('additionalPortMappings'), 'allowInsecure', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('ingressAllowInsecure'), false()), 'customDomains', if(not(empty(parameters('customDomains'))), parameters('customDomains'), null()), 'corsPolicy', if(and(not(equals(parameters('corsPolicy'), null())), not(equals(parameters('ingressTransport'), 'tcp'))), createObject('allowCredentials', coalesce(tryGet(parameters('corsPolicy'), 'allowCredentials'), false()), 'allowedHeaders', coalesce(tryGet(parameters('corsPolicy'), 'allowedHeaders'), createArray()), 'allowedMethods', coalesce(tryGet(parameters('corsPolicy'), 'allowedMethods'), createArray()), 'allowedOrigins', coalesce(tryGet(parameters('corsPolicy'), 'allowedOrigins'), createArray()), 'exposeHeaders', coalesce(tryGet(parameters('corsPolicy'), 'exposeHeaders'), createArray()), 'maxAge', tryGet(parameters('corsPolicy'), 'maxAge')), null()), 'clientCertificateMode', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('clientCertificateMode'), null()), 'exposedPort', parameters('exposedPort'), 'external', parameters('ingressExternal'), 'ipSecurityRestrictions', if(not(empty(parameters('ipSecurityRestrictions'))), parameters('ipSecurityRestrictions'), null()), 'targetPort', parameters('ingressTargetPort'), 'stickySessions', createObject('affinity', parameters('stickySessionsAffinity')), 'traffic', if(not(equals(parameters('ingressTransport'), 'tcp')), createArray(createObject('label', parameters('trafficLabel'), 'latestRevision', parameters('trafficLatestRevision'), 'revisionName', parameters('trafficRevisionName'), 'weight', parameters('trafficWeight'))), null()), 'transport', parameters('ingressTransport')))]",
- "service": "[if(and(parameters('includeAddOns'), not(empty(parameters('service')))), parameters('service'), null())]",
+ "dapr": "[parameters('dapr')]",
+ "identitySettings": "[parameters('identitySettings')]",
+ "ingress": "[if(parameters('disableIngress'), null(), createObject('additionalPortMappings', parameters('additionalPortMappings'), 'allowInsecure', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('ingressAllowInsecure'), false()), 'customDomains', parameters('customDomains'), 'corsPolicy', if(and(not(equals(parameters('corsPolicy'), null())), not(equals(parameters('ingressTransport'), 'tcp'))), createObject('allowCredentials', coalesce(tryGet(parameters('corsPolicy'), 'allowCredentials'), false()), 'allowedHeaders', coalesce(tryGet(parameters('corsPolicy'), 'allowedHeaders'), createArray()), 'allowedMethods', coalesce(tryGet(parameters('corsPolicy'), 'allowedMethods'), createArray()), 'allowedOrigins', coalesce(tryGet(parameters('corsPolicy'), 'allowedOrigins'), createArray()), 'exposeHeaders', coalesce(tryGet(parameters('corsPolicy'), 'exposeHeaders'), createArray()), 'maxAge', tryGet(parameters('corsPolicy'), 'maxAge')), null()), 'clientCertificateMode', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('clientCertificateMode'), null()), 'exposedPort', parameters('exposedPort'), 'external', parameters('ingressExternal'), 'ipSecurityRestrictions', parameters('ipSecurityRestrictions'), 'targetPort', parameters('ingressTargetPort'), 'stickySessions', createObject('affinity', parameters('stickySessionsAffinity')), 'traffic', if(not(equals(parameters('ingressTransport'), 'tcp')), parameters('traffic'), null()), 'transport', parameters('ingressTransport')))]",
+ "service": "[if(parameters('includeAddOns'), parameters('service'), null())]",
"maxInactiveRevisions": "[parameters('maxInactiveRevisions')]",
- "registries": "[if(not(empty(parameters('registries'))), parameters('registries'), null())]",
+ "registries": "[parameters('registries')]",
"secrets": "[parameters('secrets')]",
- "runtime": "[if(not(empty(parameters('runtime'))), parameters('runtime'), null())]"
+ "runtime": "[parameters('runtime')]"
}
}
},
@@ -54119,7 +55061,7 @@
"condition": "[and(not(empty(coalesce(parameters('lock'), createObject()))), not(equals(tryGet(parameters('lock'), 'kind'), 'None')))]",
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
- "scope": "[format('Microsoft.App/containerApps/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/containerApps', parameters('name'))]",
"name": "[coalesce(tryGet(parameters('lock'), 'name'), format('lock-{0}', parameters('name')))]",
"properties": {
"level": "[coalesce(tryGet(parameters('lock'), 'kind'), '')]",
@@ -54136,7 +55078,7 @@
},
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
- "scope": "[format('Microsoft.App/containerApps/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/containerApps', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()], 'name'), guid(resourceId('Microsoft.App/containerApps', parameters('name')), coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].principalId, coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId))]",
"properties": {
"roleDefinitionId": "[coalesce(variables('formattedRoleAssignments'), createArray())[copyIndex()].roleDefinitionId]",
@@ -54158,7 +55100,7 @@
},
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
- "scope": "[format('Microsoft.App/containerApps/{0}', parameters('name'))]",
+ "scope": "[resourceId('Microsoft.App/containerApps', parameters('name'))]",
"name": "[coalesce(tryGet(coalesce(parameters('diagnosticSettings'), createArray())[copyIndex()], 'name'), format('{0}-diagnosticSettings', parameters('name')))]",
"properties": {
"copy": [
@@ -54223,8 +55165,8 @@
"metadata": {
"_generator": {
"name": "bicep",
- "version": "0.38.33.27573",
- "templateHash": "12480411243596309951"
+ "version": "0.42.1.51946",
+ "templateHash": "12173377941230147433"
},
"name": "Container App Auth Configs",
"description": "This module deploys Container App Auth Configs."
@@ -54240,7 +55182,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/encryptionSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/encryptionSettings"
},
"description": "Optional. The configuration settings of the secrets references of encryption key and signing key for ContainerApp Service Authentication/Authorization."
},
@@ -54250,7 +55192,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/globalValidation"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/globalValidation"
},
"description": "Optional. The configuration settings that determines the validation flow of users using Service Authentication and/or Authorization."
},
@@ -54260,7 +55202,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/httpSettings"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/httpSettings"
},
"description": "Optional. The configuration settings of the HTTP requests for authentication and authorization requests made against ContainerApp Service Authentication/Authorization."
},
@@ -54270,7 +55212,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/identityProviders"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/identityProviders"
},
"description": "Optional. The configuration settings of each of the identity providers used to configure ContainerApp Service Authentication/Authorization."
},
@@ -54280,7 +55222,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/login"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/login"
},
"description": "Optional. The configuration settings of the login flow of users using ContainerApp Service Authentication/Authorization."
},
@@ -54290,7 +55232,7 @@
"type": "object",
"metadata": {
"__bicep_resource_derived_type!": {
- "source": "Microsoft.App/containerApps/authConfigs@2025-02-02-preview#properties/properties/properties/platform"
+ "source": "Microsoft.App/containerApps/authConfigs@2026-01-01#properties/properties/properties/platform"
},
"description": "Optional. The configuration settings of the platform of ContainerApp Service Authentication/Authorization."
},
@@ -54301,12 +55243,12 @@
"containerApp": {
"existing": true,
"type": "Microsoft.App/containerApps",
- "apiVersion": "2025-02-02-preview",
+ "apiVersion": "2026-01-01",
"name": "[parameters('containerAppName')]"
},
"containerAppAuthConfigs": {
"type": "Microsoft.App/containerApps/authConfigs",
- "apiVersion": "2025-02-02-preview",
+ "apiVersion": "2026-01-01",
"name": "[format('{0}/{1}', parameters('containerAppName'), 'current')]",
"properties": {
"encryptionSettings": "[parameters('encryptionSettings')]",
@@ -54383,14 +55325,14 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
- "value": "[tryGet(tryGet(reference('containerApp', '2025-02-02-preview', 'full'), 'identity'), 'principalId')]"
+ "value": "[tryGet(tryGet(reference('containerApp', '2026-01-01', 'full'), 'identity'), 'principalId')]"
},
"location": {
"type": "string",
"metadata": {
"description": "The location the resource was deployed into."
},
- "value": "[reference('containerApp', '2025-02-02-preview', 'full').location]"
+ "value": "[reference('containerApp', '2026-01-01', 'full').location]"
}
}
}
@@ -54424,7 +55366,7 @@
},
"AZURE_BLOB_ENDPOINT": {
"type": "string",
- "value": "[format('https://{0}.blob.core.windows.net/', reference('storageAccount').outputs.name.value)]"
+ "value": "[format('https://{0}.blob.{1}/', reference('storageAccount').outputs.name.value, environment().suffixes.storage)]"
},
"AZURE_AI_AGENT_PROJECT_NAME": {
"type": "string",
diff --git a/infra/main.parameters.json b/infra/main.parameters.json
index ca5d1cd2..2d38a529 100644
--- a/infra/main.parameters.json
+++ b/infra/main.parameters.json
@@ -46,21 +46,6 @@
},
"vmAdminPassword": {
"value": "${AZURE_ENV_VM_ADMIN_PASSWORD}"
- },
- "aiModelDeployments": {
- "value": [
- {
- "name": "${AZURE_ENV_GPT_MODEL_NAME}",
- "model": {
- "name": "${AZURE_ENV_GPT_MODEL_NAME}",
- "version": "${AZURE_ENV_GPT_MODEL_VERSION}"
- },
- "sku": {
- "name": "${AZURE_ENV_MODEL_DEPLOYMENT_TYPE}",
- "capacity": "${AZURE_ENV_GPT_MODEL_CAPACITY}"
- }
- }
- ]
}
}
}
\ No newline at end of file
diff --git a/infra/main.waf.parameters.json b/infra/main.waf.parameters.json
index e5ac4968..7d9f2f32 100644
--- a/infra/main.waf.parameters.json
+++ b/infra/main.waf.parameters.json
@@ -55,21 +55,6 @@
},
"enableScalability": {
"value": true
- },
- "aiModelDeployments": {
- "value": [
- {
- "name": "${AZURE_ENV_GPT_MODEL_NAME}",
- "model": {
- "name": "${AZURE_ENV_GPT_MODEL_NAME}",
- "version": "${AZURE_ENV_GPT_MODEL_VERSION}"
- },
- "sku": {
- "name": "${AZURE_ENV_MODEL_DEPLOYMENT_TYPE}",
- "capacity": "${AZURE_ENV_GPT_MODEL_CAPACITY}"
- }
- }
- ]
}
}
}
\ No newline at end of file
diff --git a/infra/main_custom.bicep b/infra/main_custom.bicep
index 398378fd..446c84ca 100644
--- a/infra/main_custom.bicep
+++ b/infra/main_custom.bicep
@@ -167,7 +167,7 @@ var resourceGroupTagsValue = union(
)
// ========== Resource Group Tag ========== //
-resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = {
+resource resourceGroupTags 'Microsoft.Resources/tags@2025-04-01' = {
name: 'default'
properties: {
tags: resourceGroupTagsValue
@@ -175,7 +175,7 @@ resource resourceGroupTags 'Microsoft.Resources/tags@2021-04-01' = {
}
#disable-next-line no-deployments-resources
-resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableTelemetry) {
+resource avmTelemetry 'Microsoft.Resources/deployments@2025-04-01' = if (enableTelemetry) {
name: take(
'46d3xbcp.ptn.sa-modernizeyourcode.${replace('-..--..-', '.', '-')}.${substring(uniqueString(deployment().name, location), 0, 4)}',
64
@@ -196,7 +196,7 @@ resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableT
}
}
-module appIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.4.2' = {
+module appIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.5.0' = {
name: take('avm.res.managed-identity.user-assigned-identity.${solutionSuffix}', 64)
params: {
name: 'id-${solutionSuffix}'
@@ -212,13 +212,13 @@ var existingLawSubscription = useExistingLogAnalytics ? split(existingLogAnalyti
var existingLawResourceGroup = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[4] : ''
var existingLawName = useExistingLogAnalytics ? split(existingLogAnalyticsWorkspaceId, '/')[8] : ''
-resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = if (useExistingLogAnalytics) {
+resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' existing = if (useExistingLogAnalytics) {
name: existingLawName
scope: resourceGroup(existingLawSubscription, existingLawResourceGroup)
}
// Deploy new Log Analytics workspace only if required and not using existing
-module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.12.0' = if ((enableMonitoring || enablePrivateNetworking) && !useExistingLogAnalytics) {
+module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.15.0' = if ((enableMonitoring || enablePrivateNetworking) && !useExistingLogAnalytics) {
name: take('avm.res.operational-insights.workspace.${solutionSuffix}', 64)
params: {
name: 'log-${solutionSuffix}'
@@ -229,7 +229,7 @@ module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0
tags: allTags
enableTelemetry: enableTelemetry
// WAF aligned configuration for Redundancy
- dailyQuotaGb: enableRedundancy ? 10 : null //WAF recommendation: 10 GB per day is a good starting point for most workloads
+ dailyQuotaGb: enableRedundancy ? '10' : null //WAF recommendation: 10 GB per day is a good starting point for most workloads
replication: enableRedundancy
? {
enabled: true
@@ -278,11 +278,9 @@ module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0
// Log Analytics workspace ID, customer ID, and shared key (existing or new)
var logAnalyticsWorkspaceResourceId = useExistingLogAnalytics ? existingLogAnalyticsWorkspaceId : logAnalyticsWorkspace!.outputs.resourceId
-var LogAnalyticsPrimarySharedKey string = useExistingLogAnalytics? existingLogAnalyticsWorkspace.listKeys().primarySharedKey : logAnalyticsWorkspace.outputs.primarySharedKey
-var LogAnalyticsWorkspaceId = useExistingLogAnalytics? existingLogAnalyticsWorkspace.properties.customerId : logAnalyticsWorkspace!.outputs.logAnalyticsWorkspaceId
var logAnalyticsWorkspaceName = useExistingLogAnalytics ? existingLawName : logAnalyticsWorkspace!.outputs.name
-module applicationInsights 'br/public:avm/res/insights/component:0.7.0' = if (enableMonitoring) {
+module applicationInsights 'br/public:avm/res/insights/component:0.7.1' = if (enableMonitoring) {
name: take('avm.res.insights.component.${solutionSuffix}', 64)
params: {
name: 'appi-${solutionSuffix}'
@@ -341,7 +339,7 @@ var dnsZoneIndex = {
// - Excludes AI-related zones when using with an existing Foundry project
// ===================================================
@batchSize(5)
-module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.0' = [
+module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.1' = [
for (zone, i) in privateDnsZones: if (enablePrivateNetworking) {
name: take('avm.res.network.private-dns-zone.${split(zone, '.')[1]}.${solutionSuffix}', 64)
params: {
@@ -360,7 +358,7 @@ module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.8.0' = [
// Azure Bastion Host
var bastionHostName = 'bas-${solutionSuffix}'
-module bastionHost 'br/public:avm/res/network/bastion-host:0.8.0' = if (enablePrivateNetworking) {
+module bastionHost 'br/public:avm/res/network/bastion-host:0.8.2' = if (enablePrivateNetworking) {
name: take('avm.res.network.bastion-host.${bastionHostName}', 64)
params: {
name: bastionHostName
@@ -383,14 +381,14 @@ module bastionHost 'br/public:avm/res/network/bastion-host:0.8.0' = if (enablePr
enableTelemetry: enableTelemetry
publicIPAddressObject: {
name: 'pip-${bastionHostName}'
- zones: []
+ availabilityZones: []
}
}
}
// ========== Jumpbox Virtual machine ========== //
var maintenanceConfigurationResourceName = 'mc-${solutionSuffix}'
-module maintenanceConfiguration 'br/public:avm/res/maintenance/maintenance-configuration:0.3.2' = if (enablePrivateNetworking) {
+module maintenanceConfiguration 'br/public:avm/res/maintenance/maintenance-configuration:0.4.0' = if (enablePrivateNetworking) {
name: take('avm.res.compute.virtual-machine.${maintenanceConfigurationResourceName}', 64)
params: {
name: maintenanceConfigurationResourceName
@@ -430,7 +428,7 @@ var dataCollectionRulesResourceName = 'dcr-${solutionSuffix}'
var dataCollectionRulesLocation = useExistingLogAnalytics
? existingLogAnalyticsWorkspace!.location
: logAnalyticsWorkspace!.outputs.location
-module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-rule:0.8.0' = if (enablePrivateNetworking && enableMonitoring) {
+module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-rule:0.11.0' = if (enablePrivateNetworking && enableMonitoring) {
name: take('avm.res.insights.data-collection-rule.${dataCollectionRulesResourceName}', 64)
params: {
name: dataCollectionRulesResourceName
@@ -503,15 +501,6 @@ module windowsVmDataCollectionRules 'br/public:avm/res/insights/data-collection-
streams: [
'Microsoft-WindowsEvent'
]
- eventLogName: 'Security'
- eventTypes: [
- {
- eventType: 'Audit Success'
- }
- {
- eventType: 'Audit Failure'
- }
- ]
xPathQueries: [
'Security!*[System[(EventID=4624 or EventID=4625)]]'
]
@@ -556,7 +545,7 @@ module proximityPlacementGroup 'br/public:avm/res/compute/proximity-placement-gr
var virtualMachineResourceName = take('vm-jumpbox-${solutionSuffix}', 15)
-module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (enablePrivateNetworking) {
+module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.22.0' = if (enablePrivateNetworking) {
name: take('avm.res.compute.virtual-machine.${virtualMachineResourceName}', 64)
params: {
name: virtualMachineResourceName
@@ -565,7 +554,7 @@ module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (e
enableTelemetry: enableTelemetry
computerName: take(virtualMachineResourceName, 15)
osType: 'Windows'
- vmSize: !empty(vmSize) ? vmSize : 'Standard_D2s_v5'
+ vmSize: !empty(vmSize) ? vmSize! : 'Standard_D2s_v5'
adminUsername: !empty(vmAdminUsername) ? vmAdminUsername : 'JumpboxAdminUser'
adminPassword: !empty(vmAdminPassword) ? vmAdminPassword : 'JumpboxAdminP@ssw0rd1234!'
managedIdentities: {
@@ -573,10 +562,10 @@ module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (e
}
patchMode: 'AutomaticByPlatform'
bypassPlatformSafetyChecksOnUserSchedule: true
- maintenanceConfigurationResourceId: maintenanceConfiguration.outputs.resourceId
+ maintenanceConfigurationResourceId: maintenanceConfiguration!.outputs.resourceId
enableAutomaticUpdates: true
encryptionAtHost: false
- proximityPlacementGroupResourceId: proximityPlacementGroup.outputs.resourceId
+ proximityPlacementGroupResourceId: proximityPlacementGroup!.outputs.resourceId
availabilityZone: enableRedundancy ? 1 : -1
imageReference: {
publisher: 'microsoft-dsvm'
@@ -642,7 +631,7 @@ module virtualMachine 'br/public:avm/res/compute/virtual-machine:0.20.0' = if (e
? {
dataCollectionRuleAssociations: [
{
- dataCollectionRuleResourceId: windowsVmDataCollectionRules.outputs.resourceId
+ dataCollectionRuleResourceId: windowsVmDataCollectionRules!.outputs.resourceId
name: 'send-${logAnalyticsWorkspaceName}'
}
]
@@ -673,11 +662,9 @@ module aiServices 'modules/ai-foundry/aifoundry.bicep' = {
privateNetworking: null // Private endpoint is handled by the standalone aiFoundryPrivateEndpoint module
existingFoundryProjectResourceId: existingFoundryProjectResourceId
disableLocalAuth: true //Should be set to true for WAF aligned configuration
- customSubDomainName: 'aif-${solutionSuffix}'
apiProperties: {
//staticsEnabled: false
}
- allowProjectManagement: true
managedIdentities: {
systemAssigned: true
}
@@ -712,7 +699,7 @@ module aiServices 'modules/ai-foundry/aifoundry.bicep' = {
var aiFoundryAiServicesResourceName = 'aif-${solutionSuffix}'
var useExistingAiFoundryAiProject = !empty(existingFoundryProjectResourceId)
-module aiFoundryPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.8.1' = if (enablePrivateNetworking && !useExistingAiFoundryAiProject) {
+module aiFoundryPrivateEndpoint 'br/public:avm/res/network/private-endpoint:0.12.0' = if (enablePrivateNetworking && !useExistingAiFoundryAiProject) {
name: take('pep-${aiFoundryAiServicesResourceName}-deployment', 64)
params: {
name: 'pep-${aiFoundryAiServicesResourceName}'
@@ -788,7 +775,7 @@ module storageAccount 'modules/storageAccount.bicep' = {
}
// Azure Container Registry for azd container deployments
-resource containerRegistry 'Microsoft.ContainerRegistry/registries@2023-07-01' = {
+resource containerRegistry 'Microsoft.ContainerRegistry/registries@2025-11-01' = {
name: take('acrreg${solutionSuffix}', 50)
location: location
sku: {
@@ -863,7 +850,7 @@ module cosmosDb 'modules/cosmosDb.bicep' = {
var containerAppsEnvironmentName = 'cae-${solutionSuffix}'
-module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.3' = {
+module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.13.1' = {
name: take('avm.res.app.managed-environment.${solutionSuffix}', 64)
#disable-next-line no-unnecessary-dependson
dependsOn: [applicationInsights, logAnalyticsWorkspace, virtualNetwork] // required due to optional flags that could change dependency
@@ -879,16 +866,17 @@ module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.
appIdentity.outputs.resourceId
]
}
- appInsightsConnectionString: enableMonitoring ? applicationInsights.outputs.connectionString : null
+ appInsightsConnectionString: enableMonitoring ? applicationInsights!.outputs.connectionString : null
appLogsConfiguration: enableMonitoring
? {
destination: 'log-analytics'
logAnalyticsConfiguration: {
- customerId: LogAnalyticsWorkspaceId
- sharedKey: LogAnalyticsPrimarySharedKey
+ customerId: useExistingLogAnalytics ? existingLogAnalyticsWorkspace.properties.customerId : logAnalyticsWorkspace.outputs.logAnalyticsWorkspaceId
+ sharedKey: useExistingLogAnalytics ? existingLogAnalyticsWorkspace.listKeys().primarySharedKey : logAnalyticsWorkspace.outputs.primarySharedKey
}
+ logAnalyticsWorkspaceResourceId: logAnalyticsWorkspaceResourceId
}
- : {}
+ : null
workloadProfiles: enablePrivateNetworking
? [
// NOTE: workload profiles are required for private networking
@@ -903,7 +891,7 @@ module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.
}
}
-module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
+module containerAppBackend 'br/public:avm/res/app/container-app:0.22.0' = {
name: take('avm.res.app.container-app.backend.${solutionSuffix}', 64)
#disable-next-line no-unnecessary-dependson
dependsOn: [applicationInsights] // required due to optional flags that could change dependency
@@ -1034,11 +1022,11 @@ module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
? [
{
name: 'APPLICATIONINSIGHTS_INSTRUMENTATION_KEY'
- value: applicationInsights.outputs.instrumentationKey
+ value: applicationInsights!.outputs.instrumentationKey
}
{
name: 'APPLICATIONINSIGHTS_CONNECTION_STRING'
- value: applicationInsights.outputs.connectionString
+ value: applicationInsights!.outputs.connectionString
}
]
: []
@@ -1088,7 +1076,7 @@ module containerAppBackend 'br/public:avm/res/app/container-app:0.19.0' = {
}
}
-module containerAppFrontend 'br/public:avm/res/app/container-app:0.19.0' = {
+module containerAppFrontend 'br/public:avm/res/app/container-app:0.22.0' = {
name: take('avm.res.app.container-app.frontend.${solutionSuffix}', 64)
params: {
name: take('ca-frontend-${solutionSuffix}', 32)
@@ -1155,7 +1143,7 @@ output resourceGroupName string = resourceGroup().name
output WEB_APP_URL string = 'https://${containerAppFrontend.outputs.fqdn}'
output COSMOSDB_ENDPOINT string = cosmosDb.outputs.endpoint
output AZURE_BLOB_ACCOUNT_NAME string = storageAccount.outputs.name
-output AZURE_BLOB_ENDPOINT string = 'https://${storageAccount.outputs.name}.blob.core.windows.net/'
+output AZURE_BLOB_ENDPOINT string = 'https://${storageAccount.outputs.name}.blob.${environment().suffixes.storage}/'
output AZURE_CONTAINER_REGISTRY_ENDPOINT string = containerRegistry.properties.loginServer
output AZURE_AI_AGENT_PROJECT_NAME string = aiServices.outputs.aiProjectInfo.name
output AZURE_AI_AGENT_ENDPOINT string = aiServices.outputs.aiProjectInfo.apiEndpoint
@@ -1169,7 +1157,7 @@ output COSMOSDB_DATABASE string = cosmosDb.outputs.databaseName
output COSMOSDB_BATCH_CONTAINER string = cosmosDb.outputs.containerNames.batch
output COSMOSDB_FILE_CONTAINER string = cosmosDb.outputs.containerNames.file
output COSMOSDB_LOG_CONTAINER string = cosmosDb.outputs.containerNames.log
-output APPLICATIONINSIGHTS_CONNECTION_STRING string = enableMonitoring ? applicationInsights.outputs.connectionString : ''
+output APPLICATIONINSIGHTS_CONNECTION_STRING string = enableMonitoring ? applicationInsights!.outputs.connectionString : ''
output MIGRATOR_AGENT_MODEL_DEPLOY string = modelDeployment.name
output PICKER_AGENT_MODEL_DEPLOY string = modelDeployment.name
output FIXER_AGENT_MODEL_DEPLOY string = modelDeployment.name
diff --git a/infra/modules/ai-foundry/ai-services.bicep b/infra/modules/ai-foundry/ai-services.bicep
index c0b161bd..1cbb2a51 100644
--- a/infra/modules/ai-foundry/ai-services.bicep
+++ b/infra/modules/ai-foundry/ai-services.bicep
@@ -1,5 +1,5 @@
// This module is here solely to provide network injection for Cognitive Services.
-// The AVM Module 'br/public:avm/res/cognitive-services/account:0.11.0' does not support that feature as of version 0.11.0
+// The AVM Module 'br/public:avm/res/cognitive-services/account:0.14.2' does not support that feature as of version 0.14.2
metadata name = 'Cognitive Services'
metadata description = 'This module deploys a Cognitive Service.'
@@ -60,7 +60,7 @@ param sku string = 'S0'
@description('Optional. Location for all Resources.')
param location string = resourceGroup().location
-import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The diagnostic settings of the service.')
param diagnosticSettings diagnosticSettingFullType[]?
@@ -80,11 +80,11 @@ param networkAcls object?
@description('Optional. The network injection subnet resource Id for the Cognitive Services account. This allows to use the AI Services account with a virtual network.')
param networkInjectionSubnetResourceId string?
-import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Configuration details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible.')
param privateEndpoints privateEndpointSingleServiceType[]?
-import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Array of role assignments to create.')
param roleAssignments roleAssignmentType[]?
@@ -116,7 +116,7 @@ param restrictOutboundNetworkAccess bool = true
@description('Optional. The storage accounts for this resource.')
param userOwnedStorage array?
-import { managedIdentityAllType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { managedIdentityAllType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The managed identity definition for this resource.')
param managedIdentities managedIdentityAllType?
@@ -260,7 +260,7 @@ var formattedRoleAssignments = [
})
]
-resource cognitiveService 'Microsoft.CognitiveServices/accounts@2025-07-01-preview' = {
+resource cognitiveService 'Microsoft.CognitiveServices/accounts@2026-03-01' = {
name: name
kind: kind
identity: identity
@@ -306,7 +306,7 @@ resource cognitiveService 'Microsoft.CognitiveServices/accounts@2025-07-01-previ
}
@batchSize(1)
-resource cognitiveService_deployments 'Microsoft.CognitiveServices/accounts/deployments@2024-10-01' = [
+resource cognitiveService_deployments 'Microsoft.CognitiveServices/accounts/deployments@2026-03-01' = [
for (deployment, index) in (deployments ?? []): {
parent: cognitiveService
name: deployment.?name ?? '${name}-deployments'
@@ -355,7 +355,7 @@ resource cognitiveService_diagnosticSettings 'Microsoft.Insights/diagnosticSetti
}
]
-module cognitiveService_privateEndpoints 'br/public:avm/res/network/private-endpoint:0.11.1' = [
+module cognitiveService_privateEndpoints 'br/public:avm/res/network/private-endpoint:0.12.0' = [
for (privateEndpoint, index) in (privateEndpoints ?? []): {
name: take('${uniqueString(deployment().name, location)}-cognitiveService-PrivateEndpoint-${index}', 64)
scope: resourceGroup(
diff --git a/infra/modules/ai-foundry/aifoundry.bicep b/infra/modules/ai-foundry/aifoundry.bicep
index 77b35262..a390e504 100644
--- a/infra/modules/ai-foundry/aifoundry.bicep
+++ b/infra/modules/ai-foundry/aifoundry.bicep
@@ -65,14 +65,14 @@ param existingFoundryProjectResourceId string = ''
@description('Optional. Specifies the OpenAI deployments to create.')
param deployments deploymentType[]?
-import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Array of role assignments to create.')
param roleAssignments roleAssignmentType[] = []
@description('Optional. Values to establish private networking for the AI Services resource.')
param privateNetworking aiServicesPrivateNetworkingType?
-import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The diagnostic settings of the service.')
param diagnosticSettings diagnosticSettingFullType[]?
@@ -83,17 +83,14 @@ param diagnosticSettings diagnosticSettingFullType[]?
])
param publicNetworkAccess string?
-@description('Conditional. Subdomain name used for token-based authentication. Required if \'networkAcls\' or \'privateEndpoints\' are set.')
-param customSubDomainName string?
-
@description('Optional. A collection of rules governing the accessibility from specific network locations.')
param networkAcls object?
-import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Configuration details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible.')
param privateEndpoints privateEndpointSingleServiceType[]?
-import { lockType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { lockType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The lock settings of the service.')
param lock lockType?
@@ -109,7 +106,7 @@ param apiProperties object?
@description('Optional. Allow only Azure AD authentication. Should be enabled for security reasons.')
param disableLocalAuth bool = true
-import { customerManagedKeyType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { customerManagedKeyType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The customer managed key definition.')
param customerManagedKey customerManagedKeyType?
@@ -129,7 +126,7 @@ param restrictOutboundNetworkAccess bool = true
@description('Optional. The storage accounts for this resource.')
param userOwnedStorage array?
-import { managedIdentityAllType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { managedIdentityAllType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The managed identity definition for this resource.')
param managedIdentities managedIdentityAllType?
@@ -139,9 +136,6 @@ param enableTelemetry bool = true
@description('Optional. Key vault reference and secret settings for the module\'s secrets export.')
param secretsExportConfiguration secretsExportConfigurationType?
-@description('Optional. Enable/Disable project management feature for AI Foundry.')
-param allowProjectManagement bool?
-
var formattedUserAssignedIdentities = reduce(
map((managedIdentities.?userAssignedResourceIds ?? []), (id) => { '${id}': {} }),
{},
@@ -158,7 +152,7 @@ var identity = !empty(managedIdentities)
: null
#disable-next-line no-deployments-resources
-resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableTelemetry) {
+resource avmTelemetry 'Microsoft.Resources/deployments@2025-04-01' = if (enableTelemetry) {
name: '46d3xbcp.res.cognitiveservices-account.${replace('-..--..-', '.', '-')}.${substring(uniqueString(deployment().name, location), 0, 4)}'
properties: {
mode: 'Incremental'
@@ -176,7 +170,7 @@ resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableT
}
}
-resource cMKKeyVault 'Microsoft.KeyVault/vaults@2025-05-01' existing = if (!empty(customerManagedKey.?keyVaultResourceId)) {
+resource cMKKeyVault 'Microsoft.KeyVault/vaults@2026-02-01' existing = if (!empty(customerManagedKey.?keyVaultResourceId)) {
name: last(split(customerManagedKey.?keyVaultResourceId!, '/'))
scope: resourceGroup(
split(customerManagedKey.?keyVaultResourceId!, '/')[2],
@@ -208,7 +202,7 @@ var aiServicesPrivateDnsZoneResourceId = privateNetworking != null
? privateNetworking.?aiServicesPrivateDnsZoneResourceId ?? ''
: ''
-resource cognitiveServiceNew 'Microsoft.CognitiveServices/accounts@2025-07-01-preview' = if(!useExistingService) {
+resource cognitiveServiceNew 'Microsoft.CognitiveServices/accounts@2025-12-01' = if(!useExistingService) {
name: name
kind: kind
identity: identity
@@ -238,13 +232,13 @@ resource cognitiveServiceNew 'Microsoft.CognitiveServices/accounts@2025-07-01-pr
keySource: 'Microsoft.KeyVault'
keyVaultProperties: {
identityClientId: !empty(customerManagedKey.?userAssignedIdentityResourceId ?? '')
- ? cMKUserAssignedIdentity.properties.clientId
+ ? cMKUserAssignedIdentity!.properties.clientId
: null
- keyVaultUri: cMKKeyVault.properties.vaultUri
+ keyVaultUri: cMKKeyVault!.properties.vaultUri
keyName: customerManagedKey!.keyName
keyVersion: !empty(customerManagedKey.?keyVersion ?? '')
? customerManagedKey!.?keyVersion
- : last(split(cMKKeyVault::cMKKey.properties.keyUriWithVersion, '/'))
+ : last(split(cMKKeyVault::cMKKey!.properties.keyUriWithVersion, '/'))
}
}
: null
@@ -258,7 +252,7 @@ resource cognitiveServiceNew 'Microsoft.CognitiveServices/accounts@2025-07-01-pr
var existingCognitiveServiceDetails = split(existingFoundryProjectResourceId, '/')
-resource cognitiveServiceExisting 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' existing = if(useExistingService) {
+resource cognitiveServiceExisting 'Microsoft.CognitiveServices/accounts@2025-12-01' existing = if(useExistingService) {
name: existingCognitiveServiceDetails[8]
scope: resourceGroup(existingCognitiveServiceDetails[2], existingCognitiveServiceDetails[4])
}
@@ -397,8 +391,6 @@ module existing_cognitive_service_dependencies './dependencies.bicep' = if(useEx
// }
// }
-var cognitiveService = useExistingService ? cognitiveServiceExisting : cognitiveServiceNew
-
@description('The name of the cognitive services account.')
output name string = useExistingService ? cognitiveServiceExisting.name : cognitiveServiceNew.name
@@ -412,26 +404,26 @@ output subscriptionId string = useExistingService ? existingCognitiveServiceDet
output resourceGroupName string = useExistingService ? existingCognitiveServiceDetails[4] : resourceGroup().name
@description('The service endpoint of the cognitive services account.')
-output endpoint string = useExistingService ? cognitiveServiceExisting.properties.endpoint : cognitiveService.properties.endpoint
+output endpoint string = useExistingService ? cognitiveServiceExisting!.properties.endpoint : cognitiveServiceNew!.properties.endpoint
@description('All endpoints available for the cognitive services account, types depends on the cognitive service kind.')
-output endpoints endpointType = useExistingService ? cognitiveServiceExisting.properties.endpoints : cognitiveService.properties.endpoints
+output endpoints endpointType = useExistingService ? cognitiveServiceExisting!.properties.endpoints : cognitiveServiceNew!.properties.endpoints
@description('The principal ID of the system assigned identity.')
-output systemAssignedMIPrincipalId string? = useExistingService ? cognitiveServiceExisting.identity.principalId : cognitiveService.?identity.?principalId
+output systemAssignedMIPrincipalId string? = useExistingService ? cognitiveServiceExisting!.identity.principalId : cognitiveServiceNew!.?identity.?principalId
@description('The location the resource was deployed into.')
-output location string = useExistingService ? cognitiveServiceExisting.location : cognitiveService.location
+output location string = useExistingService ? cognitiveServiceExisting!.location : cognitiveServiceNew!.location
-import { secretsOutputType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { secretsOutputType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('A hashtable of references to the secrets exported to the provided Key Vault. The key of each reference is each secret\'s name.')
-output exportedSecrets secretsOutputType = useExistingService ? existing_cognitive_service_dependencies.outputs.exportedSecrets : cognitive_service_dependencies.outputs.exportedSecrets
+output exportedSecrets secretsOutputType = useExistingService ? existing_cognitive_service_dependencies!.outputs.exportedSecrets : cognitive_service_dependencies!.outputs.exportedSecrets
@description('The private endpoints of the congitive services account.')
-output privateEndpoints privateEndpointOutputType[] = useExistingService ? existing_cognitive_service_dependencies.outputs.privateEndpoints : cognitive_service_dependencies.outputs.privateEndpoints
+output privateEndpoints privateEndpointOutputType[] = useExistingService ? existing_cognitive_service_dependencies!.outputs.privateEndpoints : cognitive_service_dependencies!.outputs.privateEndpoints
import { aiProjectOutputType } from './project.bicep'
-output aiProjectInfo aiProjectOutputType = useExistingService ? existing_cognitive_service_dependencies.outputs.aiProjectInfo : cognitive_service_dependencies.outputs.aiProjectInfo
+output aiProjectInfo aiProjectOutputType = useExistingService ? existing_cognitive_service_dependencies!.outputs.aiProjectInfo : cognitive_service_dependencies!.outputs.aiProjectInfo
@export()
@description('A custom AVM-aligned type for a role assignment for AI Services and Project.')
diff --git a/infra/modules/ai-foundry/dependencies.bicep b/infra/modules/ai-foundry/dependencies.bicep
index 0d28aa1a..5c6ce342 100644
--- a/infra/modules/ai-foundry/dependencies.bicep
+++ b/infra/modules/ai-foundry/dependencies.bicep
@@ -35,19 +35,19 @@ param deployments deploymentType[]?
@description('Optional. Key vault reference and secret settings for the module\'s secrets export.')
param secretsExportConfiguration secretsExportConfigurationType?
-import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { privateEndpointSingleServiceType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Configuration details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible.')
param privateEndpoints privateEndpointSingleServiceType[]?
-import { lockType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { lockType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The lock settings of the service.')
param lock lockType?
-import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Array of role assignments to create.')
param roleAssignments roleAssignmentType[]?
-import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { diagnosticSettingFullType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. The diagnostic settings of the service.')
param diagnosticSettings diagnosticSettingFullType[]?
@@ -187,12 +187,12 @@ var formattedRoleAssignments = [
var enableReferencedModulesTelemetry = false
-resource cognitiveService 'Microsoft.CognitiveServices/accounts@2025-07-01-preview' existing = {
+resource cognitiveService 'Microsoft.CognitiveServices/accounts@2025-12-01' existing = {
name: name
}
@batchSize(1)
-resource cognitiveService_deployments 'Microsoft.CognitiveServices/accounts/deployments@2025-04-01-preview' = [
+resource cognitiveService_deployments 'Microsoft.CognitiveServices/accounts/deployments@2026-03-01' = [
for (deployment, index) in (deployments ?? []): {
parent: cognitiveService
name: deployment.?name ?? '${name}-deployments'
@@ -254,7 +254,7 @@ resource cognitiveService_diagnosticSettings 'Microsoft.Insights/diagnosticSetti
}
]
-module cognitiveService_privateEndpoints 'br/public:avm/res/network/private-endpoint:0.11.1' = [
+module cognitiveService_privateEndpoints 'br/public:avm/res/network/private-endpoint:0.12.0' = [
for (privateEndpoint, index) in (privateEndpoints ?? []): {
name: '${uniqueString(deployment().name, location)}-cognitiveService-PrivateEndpoint-${index}'
scope: resourceGroup(
@@ -367,10 +367,10 @@ module aiProject 'project.bicep' = if(!empty(projectName) || !empty(azureExistin
}
}
-import { secretsOutputType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { secretsOutputType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('A hashtable of references to the secrets exported to the provided Key Vault. The key of each reference is each secret\'s name.')
output exportedSecrets secretsOutputType = (secretsExportConfiguration != null)
- ? toObject(secretsExport.outputs.secretsSet, secret => last(split(secret.secretResourceId, '/')), secret => secret)
+ ? toObject(secretsExport!.outputs.secretsSet, secret => last(split(secret.secretResourceId, '/')), secret => secret)
: {}
@description('The private endpoints of the congitive services account.')
@@ -385,7 +385,7 @@ output privateEndpoints privateEndpointOutputType[] = [
]
import { aiProjectOutputType } from './project.bicep'
-output aiProjectInfo aiProjectOutputType = aiProject.outputs.aiProjectInfo
+output aiProjectInfo aiProjectOutputType = aiProject!.outputs.aiProjectInfo
// ================ //
// Definitions //
diff --git a/infra/modules/ai-foundry/keyVaultExport.bicep b/infra/modules/ai-foundry/keyVaultExport.bicep
index 44597e56..fff5db46 100644
--- a/infra/modules/ai-foundry/keyVaultExport.bicep
+++ b/infra/modules/ai-foundry/keyVaultExport.bicep
@@ -5,7 +5,7 @@
@description('Required. The name of the Key Vault to set the ecrets in.')
param keyVaultName string
-import { secretToSetType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { secretToSetType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Required. The secrets to set in the Key Vault.')
param secretsToSet secretToSetType[]
@@ -13,11 +13,11 @@ param secretsToSet secretToSetType[]
// Resources //
// ============= //
-resource keyVault 'Microsoft.KeyVault/vaults@2025-05-01' existing = {
+resource keyVault 'Microsoft.KeyVault/vaults@2026-02-01' existing = {
name: keyVaultName
}
-resource secrets 'Microsoft.KeyVault/vaults/secrets@2025-05-01' = [
+resource secrets 'Microsoft.KeyVault/vaults/secrets@2026-02-01' = [
for secret in secretsToSet: {
name: secret.name
parent: keyVault
@@ -31,7 +31,7 @@ resource secrets 'Microsoft.KeyVault/vaults/secrets@2025-05-01' = [
// Outputs //
// =========== //
-import { secretSetOutputType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { secretSetOutputType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('The references to the secrets exported to the provided Key Vault.')
output secretsSet secretSetOutputType[] = [
#disable-next-line outputs-should-not-contain-secrets // Only returning the references, not a secret value
diff --git a/infra/modules/ai-foundry/project.bicep b/infra/modules/ai-foundry/project.bicep
index b4e9e4c3..c8f434ba 100644
--- a/infra/modules/ai-foundry/project.bicep
+++ b/infra/modules/ai-foundry/project.bicep
@@ -22,12 +22,12 @@ var existingProjName = useExistingProject ? last(split(azureExistingAIProjectRes
var existingProjEndpoint = useExistingProject ? format('https://{0}.services.ai.azure.com/api/projects/{1}', aiServicesName, existingProjName) : ''
// Reference to cognitive service in current resource group for new projects
-resource cogServiceReference 'Microsoft.CognitiveServices/accounts@2024-10-01' existing = {
+resource cogServiceReference 'Microsoft.CognitiveServices/accounts@2026-03-01' existing = {
name: aiServicesName
}
// Create new AI project only if not reusing existing one
-resource aiProject 'Microsoft.CognitiveServices/accounts/projects@2025-07-01-preview' = if(!useExistingProject) {
+resource aiProject 'Microsoft.CognitiveServices/accounts/projects@2026-03-01' = if(!useExistingProject) {
parent: cogServiceReference
name: name
tags: tags
@@ -45,7 +45,7 @@ resource aiProject 'Microsoft.CognitiveServices/accounts/projects@2025-07-01-pre
output aiProjectInfo aiProjectOutputType = {
name: useExistingProject ? existingProjName : aiProject.name
resourceId: useExistingProject ? azureExistingAIProjectResourceId : aiProject.id
- apiEndpoint: useExistingProject ? existingProjEndpoint : aiProject.properties.endpoints['AI Foundry API']
+ apiEndpoint: useExistingProject ? existingProjEndpoint : aiProject!.properties.endpoints['AI Foundry API']
}
@export()
diff --git a/infra/modules/cosmosDb.bicep b/infra/modules/cosmosDb.bicep
index a6cde78e..4ae5b733 100644
--- a/infra/modules/cosmosDb.bicep
+++ b/infra/modules/cosmosDb.bicep
@@ -23,7 +23,7 @@ import { resourcePrivateNetworkingType } from 'customTypes.bicep'
@description('Optional. Values to establish private networking for the Cosmos DB resource.')
param privateNetworking resourcePrivateNetworkingType?
-import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Array of role assignments to create.')
param roleAssignments roleAssignmentType[]?
@@ -34,7 +34,7 @@ var privateDnsZoneResourceId = privateNetworking != null
? privateNetworking.?privateDnsZoneResourceId ?? ''
: ''
-resource sqlContributorRoleDefinition 'Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions@2024-11-15' existing = {
+resource sqlContributorRoleDefinition 'Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions@2025-11-01-preview' existing = {
name: '${name}/00000000-0000-0000-0000-000000000002'
}
@@ -43,7 +43,7 @@ var batchContainerName = 'cmsabatch'
var fileContainerName = 'cmsafile'
var logContainerName = 'cmsalog'
-module cosmosAccount 'br/public:avm/res/document-db/database-account:0.18.0' = {
+module cosmosAccount 'br/public:avm/res/document-db/database-account:0.19.0' = {
name: take('avm.res.document-db.database-account.${name}', 64)
params: {
name: name
diff --git a/infra/modules/keyVault.bicep b/infra/modules/keyVault.bicep
index 6a92ff14..a683482b 100644
--- a/infra/modules/keyVault.bicep
+++ b/infra/modules/keyVault.bicep
@@ -21,7 +21,7 @@ import { resourcePrivateNetworkingType } from 'customTypes.bicep'
@description('Optional. Values to establish private networking for the Key Vault resource.')
param privateNetworking resourcePrivateNetworkingType?
-import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Array of role assignments to create.')
param roleAssignments roleAssignmentType[]?
diff --git a/infra/modules/storageAccount.bicep b/infra/modules/storageAccount.bicep
index f6b35314..b6c25f76 100644
--- a/infra/modules/storageAccount.bicep
+++ b/infra/modules/storageAccount.bicep
@@ -26,7 +26,7 @@ param logAnalyticsWorkspaceResourceId string?
@description('Optional. Values to establish private networking for the Storage Account.')
param privateNetworking storageAccountPrivateNetworkingType?
-import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.5.1'
+import { roleAssignmentType } from 'br/public:avm/utl/types/avm-common-types:0.7.0'
@description('Optional. Array of role assignments to create.')
param roleAssignments roleAssignmentType[]?
@@ -43,7 +43,7 @@ var filePrivateDnsZoneResourceId = privateNetworking != null
? privateNetworking.?filePrivateDnsZoneResourceId ?? ''
: ''
-module storageAccount 'br/public:avm/res/storage/storage-account:0.28.0' = {
+module storageAccount 'br/public:avm/res/storage/storage-account:0.32.0' = {
name: take('avm.res.storage.storage-account.${name}', 64)
#disable-next-line no-unnecessary-dependson
params: {
diff --git a/infra/modules/virtualNetwork.bicep b/infra/modules/virtualNetwork.bicep
index 82b158f6..e5a6829f 100644
--- a/infra/modules/virtualNetwork.bicep
+++ b/infra/modules/virtualNetwork.bicep
@@ -211,7 +211,7 @@ param resourceSuffix string
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/network-security-group
@batchSize(1)
-module nsgs 'br/public:avm/res/network/network-security-group:0.5.2' = [
+module nsgs 'br/public:avm/res/network/network-security-group:0.5.3' = [
for (subnet, i) in subnets: if (!empty(subnet.?networkSecurityGroup)) {
name: take('avm.res.network.network-security-group.${subnet.?networkSecurityGroup.name}.${resourceSuffix}', 64)
params: {
@@ -228,7 +228,7 @@ module nsgs 'br/public:avm/res/network/network-security-group:0.5.2' = [
// using AVM Virtual Network module
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/virtual-network
-module virtualNetwork 'br/public:avm/res/network/virtual-network:0.7.1' = {
+module virtualNetwork 'br/public:avm/res/network/virtual-network:0.8.0' = {
name: take('avm.res.network.virtual-network.${name}', 64)
params: {
name: name
diff --git a/infra/samples/network-subnet-design.bicep b/infra/samples/network-subnet-design.bicep
index 63c90c39..0615be60 100644
--- a/infra/samples/network-subnet-design.bicep
+++ b/infra/samples/network-subnet-design.bicep
@@ -309,7 +309,7 @@ param subnets subnetType[] = [
// /******************************************************************************************************************/
// Create Log Analytics Workspace for monitoring and diagnostics
// /******************************************************************************************************************/
-module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.11.2' = {
+module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.15.0' = {
name: take('log-analytics-${resourcesName}-deployment', 64)
params: {
name: 'log-${resourcesName}'
diff --git a/infra/samples/network/bastionHost.bicep b/infra/samples/network/bastionHost.bicep
index cc1987e5..3f144f70 100644
--- a/infra/samples/network/bastionHost.bicep
+++ b/infra/samples/network/bastionHost.bicep
@@ -30,7 +30,7 @@ param subnet subnetType?
// 1. Create AzureBastionSubnet NSG
// using AVM Network Security Group module
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/network-security-group
-module nsg 'br/public:avm/res/network/network-security-group:0.5.1' = if (!empty(subnet)) {
+module nsg 'br/public:avm/res/network/network-security-group:0.5.3' = if (!empty(subnet)) {
name: '${vnetName}-${subnet.?networkSecurityGroup.name}'
params: {
name: '${subnet.?networkSecurityGroup.name}-${vnetName}'
@@ -43,7 +43,7 @@ module nsg 'br/public:avm/res/network/network-security-group:0.5.1' = if (!empty
// 2. Create Azure Bastion Host using AVM Subnet Module with special config for Azure Bastion Subnet
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/virtual-network/subnet
-module bastionSubnet 'br/public:avm/res/network/virtual-network/subnet:0.1.2' = if (!empty(subnet)) {
+module bastionSubnet 'br/public:avm/res/network/virtual-network/subnet:0.1.3' = if (!empty(subnet)) {
name: take('bastionSubnet-${vnetName}', 64)
params: {
virtualNetworkName: vnetName
@@ -57,7 +57,7 @@ module bastionSubnet 'br/public:avm/res/network/virtual-network/subnet:0.1.2' =
// 3. Create Azure Bastion Host in AzureBastionsubnetSubnet using AVM Bastion Host module
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/bastion-host
-module bastionHost 'br/public:avm/res/network/bastion-host:0.6.1' = {
+module bastionHost 'br/public:avm/res/network/bastion-host:0.8.2' = {
name: take('bastionHost-${vnetName}-${name}', 64)
params: {
name: name
@@ -80,7 +80,7 @@ module bastionHost 'br/public:avm/res/network/bastion-host:0.6.1' = {
enableTelemetry: enableTelemetry
publicIPAddressObject: {
name: 'pip-${name}'
- zones: []
+ availabilityZones: []
}
}
dependsOn: [
diff --git a/infra/samples/network/jumpbox.bicep b/infra/samples/network/jumpbox.bicep
index 29f7d3e2..bf1083c1 100644
--- a/infra/samples/network/jumpbox.bicep
+++ b/infra/samples/network/jumpbox.bicep
@@ -37,7 +37,7 @@ param enableTelemetry bool = true
// 1. Create Jumpbox NSG
// using AVM Network Security Group module
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/network-security-group
-module nsg 'br/public:avm/res/network/network-security-group:0.5.1' = if (!empty(subnet)) {
+module nsg 'br/public:avm/res/network/network-security-group:0.5.3' = if (!empty(subnet)) {
name: '${vnetName}-${subnet.?networkSecurityGroup.name}'
params: {
name: '${subnet.?networkSecurityGroup.name}-${vnetName}'
@@ -51,7 +51,7 @@ module nsg 'br/public:avm/res/network/network-security-group:0.5.1' = if (!empty
// 2. Create Jumpbox subnet as part of the existing VNet
// using AVM Virtual Network Subnet module
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/virtual-network/subnet
-module subnetResource 'br/public:avm/res/network/virtual-network/subnet:0.1.2' = if (!empty(subnet)) {
+module subnetResource 'br/public:avm/res/network/virtual-network/subnet:0.1.3' = if (!empty(subnet)) {
name: subnet.?name ?? '${vnetName}-jumpbox-subnet'
params: {
virtualNetworkName: vnetName
@@ -67,7 +67,7 @@ module subnetResource 'br/public:avm/res/network/virtual-network/subnet:0.1.2' =
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/compute/virtual-machine
var vmName = take(name, 15) // Shorten VM name to 15 characters to avoid Azure limits
-module vm 'br/public:avm/res/compute/virtual-machine:0.15.0' = {
+module vm 'br/public:avm/res/compute/virtual-machine:0.22.0' = {
name: take('${vmName}-jumpbox', 64)
params: {
name: vmName
diff --git a/infra/samples/network/virtualNetwork.bicep b/infra/samples/network/virtualNetwork.bicep
index 6b502974..6bd5dcb9 100644
--- a/infra/samples/network/virtualNetwork.bicep
+++ b/infra/samples/network/virtualNetwork.bicep
@@ -27,7 +27,7 @@ param enableTelemetry bool = true
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/network-security-group
@batchSize(1)
-module nsgs 'br/public:avm/res/network/network-security-group:0.5.1' = [
+module nsgs 'br/public:avm/res/network/network-security-group:0.5.3' = [
for (subnet, i) in subnets: if (!empty(subnet.?networkSecurityGroup)) {
name: take('${name}-${subnet.?networkSecurityGroup.name}-networksecuritygroup', 64)
params: {
@@ -44,7 +44,7 @@ module nsgs 'br/public:avm/res/network/network-security-group:0.5.1' = [
// using AVM Virtual Network module
// https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/network/virtual-network
-module virtualNetwork 'br/public:avm/res/network/virtual-network:0.7.0' = {
+module virtualNetwork 'br/public:avm/res/network/virtual-network:0.8.0' = {
name: take('${name}-virtualNetwork', 64)
params: {
name: name
diff --git a/scripts/validate_bicep_params.py b/scripts/validate_bicep_params.py
index ec627dae..9c606ed2 100644
--- a/scripts/validate_bicep_params.py
+++ b/scripts/validate_bicep_params.py
@@ -110,6 +110,8 @@ def parse_parameters_env_vars(json_path: Path) -> dict[str, list[str]]:
data = json.loads(sanitized)
params = data.get("parameters", {})
except json.JSONDecodeError:
+ # If JSON parsing fails, params remains empty and no variables will be found.
+ # This is acceptable as the function will return an empty result dict.
pass
# Walk each top-level parameter and scan its entire serialized value
diff --git a/src/backend/common/database/cosmosdb.py b/src/backend/common/database/cosmosdb.py
index 8c56286a..7e5e9108 100644
--- a/src/backend/common/database/cosmosdb.py
+++ b/src/backend/common/database/cosmosdb.py
@@ -110,6 +110,9 @@ async def create_batch(self, user_id: str, batch_id: UUID) -> BatchRecord:
self.logger.info("Returning existing batch record", batch_id=str(batch_id))
return BatchRecord.fromdb(batchexists)
+ # This line should never be reached as all paths above either return or raise
+ raise RuntimeError(f"Unexpected state while processing batch {batch_id}")
+
except Exception as e:
self.logger.error("Failed to create batch", error=str(e))
raise
diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt
index 685792f6..a2b1d857 100644
--- a/src/backend/requirements.txt
+++ b/src/backend/requirements.txt
@@ -35,7 +35,7 @@ structlog
typing-extensions
python-jose[cryptography]
passlib[bcrypt]
-semantic-kernel[azure]==1.39.4
+semantic-kernel[azure]==1.41.1
sqlparse
sqlglot
unittest2
@@ -45,10 +45,10 @@ aiortc
opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp-proto-http
azure-monitor-events-extension
-opentelemetry-sdk==1.39.0
-opentelemetry-api==1.39.0
-opentelemetry-semantic-conventions==0.60b0
-opentelemetry-instrumentation==0.60b0
-opentelemetry-instrumentation-fastapi==0.60b0
-azure-monitor-opentelemetry==1.8.6
-azure-ai-projects==1.0.0
+opentelemetry-sdk==1.40.0
+opentelemetry-api==1.40.0
+opentelemetry-semantic-conventions==0.61b0
+opentelemetry-instrumentation==0.61b0
+opentelemetry-instrumentation-fastapi==0.61b0
+azure-monitor-opentelemetry==1.8.7
+azure-ai-projects==1.0.0b12
diff --git a/src/backend/sql_agents/convert_script.py b/src/backend/sql_agents/convert_script.py
index b6cb7ec8..a569d96f 100644
--- a/src/backend/sql_agents/convert_script.py
+++ b/src/backend/sql_agents/convert_script.py
@@ -271,7 +271,6 @@ async def convert_script(
FileResult.ERROR,
),
)
- is_complete = True
break
if comms_manager.group_chat.is_complete:
diff --git a/src/frontend/.dockerignore b/src/frontend/.dockerignore
new file mode 100644
index 00000000..3a83612e
--- /dev/null
+++ b/src/frontend/.dockerignore
@@ -0,0 +1,4 @@
+node_modules
+dist
+.env
+.venv
diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json
index a60d318e..681a8df0 100644
--- a/src/frontend/package-lock.json
+++ b/src/frontend/package-lock.json
@@ -8,55 +8,56 @@
"name": "frontend",
"version": "0.0.0",
"dependencies": {
- "@azure/msal-browser": "^5.1.0",
- "@azure/msal-react": "^5.0.3",
- "@fluentui/react": "^8.125.4",
- "@fluentui/react-components": "^9.72.11",
- "@fluentui/react-file-type-icons": "^8.16.0",
- "@fluentui/react-icons": "^2.0.317",
+ "@azure/msal-browser": "^5.6.2",
+ "@azure/msal-react": "^5.2.0",
+ "@fluentui/react": "^8.125.5",
+ "@fluentui/react-components": "^9.73.6",
+ "@fluentui/react-file-type-icons": "^8.17.0",
+ "@fluentui/react-icons": "^2.0.323",
"@radix-ui/react-icons": "^1.3.2",
"@reduxjs/toolkit": "^2.11.2",
- "@tailwindcss/postcss": "^4.1.11",
- "@tailwindcss/vite": "^4.1.18",
+ "@tailwindcss/postcss": "^4.2.2",
+ "@tailwindcss/vite": "^4.2.2",
"@types/react-router-dom": "^5.3.3",
- "autoprefixer": "^10.4.24",
+ "autoprefixer": "^10.4.27",
"axios": "^1.15.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
- "lucide-react": "^0.563.0",
- "postcss": "^8.5.6",
+ "lucide-react": "^1.7.0",
+ "postcss": "^8.5.8",
"react": "^19.2.4",
"react-dom": "^19.2.4",
- "react-dropzone": "^14.4.0",
- "react-icons": "^5.5.0",
+ "react-dropzone": "^15.0.0",
+ "react-icons": "^5.6.0",
"react-redux": "^9.1.2",
- "react-router-dom": "^7.13.0",
- "react-syntax-highlighter": "^16.1.0",
- "sql-formatter": "^15.7.0",
- "tailwind-merge": "^3.4.0",
+ "react-router-dom": "^7.13.2",
+ "react-syntax-highlighter": "^16.1.1",
+ "sql-formatter": "^15.7.3",
+ "tailwind-merge": "^3.5.0",
"tailwindcss": "^4.1.11",
"uuid": "^13.0.0"
},
"devDependencies": {
- "@eslint/js": "^9.39.2",
- "@types/react": "^19.2.10",
+ "@eslint/js": "^10.0.1",
+ "@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
- "@vitejs/plugin-react": "^5.1.2",
- "eslint": "^9.39.2",
+ "@vitejs/plugin-react": "^6.0.1",
+ "eslint": "^10.1.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
- "eslint-plugin-react-refresh": "^0.4.26",
- "globals": "^17.3.0",
- "rollup": "^4.59.0",
- "rollup-plugin-dts": "^6.3.0",
- "vite": "^7.3.2",
- "vite-plugin-svgr": "^4.5.0"
+ "eslint-plugin-react-refresh": "^0.5.2",
+ "globals": "^17.4.0",
+ "rollup": "^4.60.1",
+ "rollup-plugin-dts": "^6.4.1",
+ "vite": "^8.0.3",
+ "vite-plugin-svgr": "^5.0.0"
}
},
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -65,47 +66,47 @@
}
},
"node_modules/@azure/msal-browser": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.1.0.tgz",
- "integrity": "sha512-5tZcp1zcALSLJvnxkmJ8MYxLtZzEyq28wX2jSV4Kz2QaHty4eYIb/Pc44DARLfgHD+G9F82k9nD7J89MbFRQxA==",
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.7.0.tgz",
+ "integrity": "sha512-uYbJ0YarxkVGWEq814BysJry/IPvpDNkVKmc2bMZp4G+igUQkJ5nlFirycwPGUeA9ICLQqCxqExCA1Z1E07bPA==",
"license": "MIT",
"dependencies": {
- "@azure/msal-common": "16.0.3"
+ "@azure/msal-common": "16.5.0"
},
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@azure/msal-common": {
- "version": "16.0.3",
- "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.0.3.tgz",
- "integrity": "sha512-3aedNnM0CHVuVZ+BqembdZWgovqe96BJ4YxGoIK0+qhoBZQsAhfwXdhjen72K94pkSQHtzlJ7fAq6w7knFZsng==",
+ "version": "16.5.0",
+ "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.5.0.tgz",
+ "integrity": "sha512-i3eS/5pmxDbIU/mLMENs88Qg3k6XxqJytJy6PpB7L1tCBjdXHJDadCD3Hu1TyTooe7iQo7CYqbocgL/l/8u90g==",
"license": "MIT",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@azure/msal-react": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@azure/msal-react/-/msal-react-5.0.3.tgz",
- "integrity": "sha512-zz8USqfunXrZKFFG1tcfSlr+84NFMbePASj8NHB9oL0MIXdoWzADRUXkx+gKdB9dP/yDtfpGPOUgUAYGmpjTuw==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@azure/msal-react/-/msal-react-5.3.0.tgz",
+ "integrity": "sha512-ewFWRIfgj9ndUQQCF71JdArk+NdgP2yocILXUOgYcySR7fENfgixQgBGA4Rcxrq7qvWfw+yJLac4ky/33npDkA==",
"license": "MIT",
"engines": {
"node": ">=20"
},
"peerDependencies": {
- "@azure/msal-browser": "^5.1.0",
- "react": "^19.2.1"
+ "@azure/msal-browser": "^5.7.0",
+ "react": "^16.8.0 || ^17 || ^18 || ^19.2.1"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
- "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5",
"js-tokens": "^4.0.0",
"picocolors": "^1.1.1"
},
@@ -114,9 +115,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz",
- "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -124,21 +125,21 @@
}
},
"node_modules/@babel/core": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz",
- "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.5",
- "@babel/helper-compilation-targets": "^7.27.2",
- "@babel/helper-module-transforms": "^7.28.3",
- "@babel/helpers": "^7.28.4",
- "@babel/parser": "^7.28.5",
- "@babel/template": "^7.27.2",
- "@babel/traverse": "^7.28.5",
- "@babel/types": "^7.28.5",
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
"@jridgewell/remapping": "^2.3.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
@@ -155,14 +156,14 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz",
- "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==",
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.28.5",
- "@babel/types": "^7.28.5",
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
"@jridgewell/gen-mapping": "^0.3.12",
"@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
@@ -172,13 +173,13 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
- "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.27.2",
+ "@babel/compat-data": "^7.28.6",
"@babel/helper-validator-option": "^7.27.1",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
@@ -199,29 +200,29 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
- "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.27.1",
- "@babel/types": "^7.27.1"
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.28.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz",
- "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-validator-identifier": "^7.27.1",
- "@babel/traverse": "^7.28.3"
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -230,16 +231,6 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
- "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
@@ -271,27 +262,27 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz",
- "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.4"
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz",
- "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.28.5"
+ "@babel/types": "^7.29.0"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -300,75 +291,43 @@
"node": ">=6.0.0"
}
},
- "node_modules/@babel/plugin-transform-react-jsx-self": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
- "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx-source": {
- "version": "7.27.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
- "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.27.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
+ "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/template": {
- "version": "7.27.2",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
- "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/parser": "^7.27.2",
- "@babel/types": "^7.27.1"
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz",
- "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.27.1",
- "@babel/generator": "^7.28.5",
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
"@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.5",
- "@babel/template": "^7.27.2",
- "@babel/types": "^7.28.5",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
"debug": "^4.3.1"
},
"engines": {
@@ -376,9 +335,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.28.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz",
- "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -398,432 +357,47 @@
"node": ">=10"
}
},
- "node_modules/@emotion/hash": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
- "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
- "license": "MIT"
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz",
- "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz",
- "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz",
- "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz",
- "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz",
- "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz",
- "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz",
- "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz",
- "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz",
- "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz",
- "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz",
- "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz",
- "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==",
- "cpu": [
- "loong64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz",
- "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==",
- "cpu": [
- "mips64el"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz",
- "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz",
- "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==",
- "cpu": [
- "riscv64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz",
- "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==",
- "cpu": [
- "s390x"
- ],
+ "node_modules/@emnapi/core": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz",
+ "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==",
"license": "MIT",
"optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz",
- "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz",
- "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz",
- "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz",
- "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz",
- "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openharmony-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz",
- "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz",
- "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.1",
+ "tslib": "^2.4.0"
}
},
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz",
- "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@emnapi/runtime": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz",
+ "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==",
"license": "MIT",
"optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
+ "dependencies": {
+ "tslib": "^2.4.0"
}
},
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz",
- "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
"license": "MIT",
"optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
+ "dependencies": {
+ "tslib": "^2.4.0"
}
},
- "node_modules/@esbuild/win32-x64": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz",
- "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
+ "node_modules/@emotion/hash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
+ "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
+ "license": "MIT"
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
- "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
+ "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -853,9 +427,9 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.12.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
- "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
+ "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
"dev": true,
"license": "MIT",
"engines": {
@@ -863,127 +437,98 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
- "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
+ "version": "0.23.5",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz",
+ "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/object-schema": "^2.1.7",
+ "@eslint/object-schema": "^3.0.5",
"debug": "^4.3.1",
- "minimatch": "^3.1.2"
+ "minimatch": "^10.2.4"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
- "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz",
+ "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.17.0"
+ "@eslint/core": "^1.2.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@eslint/core": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
- "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
+ "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@types/json-schema": "^7.0.15"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
- "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^10.0.1",
- "globals": "^14.0.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@eslint/js": {
- "version": "9.39.2",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz",
- "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz",
+ "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
"url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "eslint": "^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
}
},
"node_modules/@eslint/object-schema": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
- "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz",
+ "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
- "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz",
+ "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^0.17.0",
+ "@eslint/core": "^1.2.1",
"levn": "^0.4.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@floating-ui/core": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz",
- "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
+ "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
"license": "MIT",
"dependencies": {
- "@floating-ui/utils": "^0.2.10"
+ "@floating-ui/utils": "^0.2.11"
}
},
"node_modules/@floating-ui/devtools": {
@@ -996,19 +541,19 @@
}
},
"node_modules/@floating-ui/dom": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz",
- "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==",
+ "version": "1.7.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
+ "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
"license": "MIT",
"dependencies": {
- "@floating-ui/core": "^1.7.4",
- "@floating-ui/utils": "^0.2.10"
+ "@floating-ui/core": "^1.7.5",
+ "@floating-ui/utils": "^0.2.11"
}
},
"node_modules/@floating-ui/utils": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
- "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
+ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
"license": "MIT"
},
"node_modules/@fluentui/date-time-utilities": {
@@ -1032,26 +577,26 @@
}
},
"node_modules/@fluentui/font-icons-mdl2": {
- "version": "8.5.71",
- "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.5.71.tgz",
- "integrity": "sha512-pCJyPl5TCFW4ZW3Qcphttc8OBPkhDpK70yQRYk9NugeS+FhlSPcgIbwGefBcu9G+8KYbfdZno8xMyr9pg+F6Mg==",
+ "version": "8.5.72",
+ "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.5.72.tgz",
+ "integrity": "sha512-RsdXbnu77uahoFu8GQMyLLeO5FyT+5AvtXhYjm662rs1NaEo89FcbJUjG9UZ2OkWPCNoGmhiFoOVPJwx0TQ6+g==",
"license": "MIT",
"dependencies": {
"@fluentui/set-version": "^8.2.24",
- "@fluentui/style-utilities": "^8.14.0",
+ "@fluentui/style-utilities": "^8.15.0",
"@fluentui/utilities": "^8.17.2",
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/foundation-legacy": {
- "version": "8.6.4",
- "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.6.4.tgz",
- "integrity": "sha512-HyVJ9yv+B0PbQPnU47VVBRLdVvwGQyf7gpl6IRDrzou39Fbq23PFjFBHmuQRw6zBo1YMZAUeLr/vJz13Bd7yew==",
+ "version": "8.6.5",
+ "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.6.5.tgz",
+ "integrity": "sha512-ZI8idXy9LMbMS8ixmoUCBfzWUhZyhNp1L2IpX7Nr2MDrAqBbmZcmltCEUMFGpjevI0CDT0H2fRXpWlGbh31+4A==",
"license": "MIT",
"dependencies": {
"@fluentui/merge-styles": "^8.6.14",
"@fluentui/set-version": "^8.2.24",
- "@fluentui/style-utilities": "^8.14.0",
+ "@fluentui/style-utilities": "^8.15.0",
"@fluentui/utilities": "^8.17.2",
"tslib": "^2.1.0"
},
@@ -1089,30 +634,30 @@
}
},
"node_modules/@fluentui/priority-overflow": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.2.1.tgz",
- "integrity": "sha512-WH5dv54aEqWo/kKQuADAwjv66W6OUMFllQMjpdkrktQp7pu4JXtmF60iYcp9+iuIX9iCeW01j8gNTU08MQlfIQ==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.3.0.tgz",
+ "integrity": "sha512-yaBC0R4e+4ZlCWDulB5S+xBrlnLwfzdg68GaarCqQO8OHjLg7Ah05xTj7PsAYcoHeEg/9vYeBwGXBpRO8+Tjqw==",
"license": "MIT",
"dependencies": {
"@swc/helpers": "^0.5.1"
}
},
"node_modules/@fluentui/react": {
- "version": "8.125.4",
- "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.125.4.tgz",
- "integrity": "sha512-dCQoIi8Xrr1oWiuEUuY75BptMrxSRTLtiCQxG4CsM9CTkJQJ6z0U1qmNo7iMOwAscbhBO0/cWAKmvQ0DJFR/Rw==",
+ "version": "8.125.5",
+ "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.125.5.tgz",
+ "integrity": "sha512-7+tFsQuTlxlg16wSJpngbX+2I1ISa7AL6ip/a8GkLkKR6gcGlkIvK03ixE63fJTCeMHFTJNExcKbdWydAC5WDQ==",
"license": "MIT",
"dependencies": {
"@fluentui/date-time-utilities": "^8.6.11",
- "@fluentui/font-icons-mdl2": "^8.5.71",
- "@fluentui/foundation-legacy": "^8.6.4",
+ "@fluentui/font-icons-mdl2": "^8.5.72",
+ "@fluentui/foundation-legacy": "^8.6.5",
"@fluentui/merge-styles": "^8.6.14",
- "@fluentui/react-focus": "^8.10.4",
+ "@fluentui/react-focus": "^8.10.5",
"@fluentui/react-hooks": "^8.10.2",
"@fluentui/react-portal-compat-context": "^9.0.15",
"@fluentui/react-window-provider": "^2.3.2",
"@fluentui/set-version": "^8.2.24",
- "@fluentui/style-utilities": "^8.14.0",
+ "@fluentui/style-utilities": "^8.15.0",
"@fluentui/theme": "^2.7.2",
"@fluentui/utilities": "^8.17.2",
"@microsoft/load-themed-styles": "^1.10.26",
@@ -1126,21 +671,21 @@
}
},
"node_modules/@fluentui/react-accordion": {
- "version": "9.8.16",
- "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.8.16.tgz",
- "integrity": "sha512-UkgjCyKMy9C+IKFtnovDH8UZO1hebI45KDVViaPchc5oNV3hha9dFevqP8Iisr65muIFZQuloetr5saDvGadxA==",
+ "version": "9.10.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.10.0.tgz",
+ "integrity": "sha512-EwjRfBdC3esMEP++PddyF7bVMSv9+t2W8AY5GkNcwDsqAW3D4zhlvxXBAb3qmpgXy4qMxRWGL8cEaiWgMpH1sg==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-motion-components-preview": "^0.15.0",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1152,18 +697,18 @@
}
},
"node_modules/@fluentui/react-alert": {
- "version": "9.0.0-beta.132",
- "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.132.tgz",
- "integrity": "sha512-yIn9Ybx36YBrHIW9epmqr5GXMkSbwI7a1eN/8m710s1aLw38n5P/GF/6t9fyiv/qz9RPMHM6Y/GNTP6/v/Z+9A==",
+ "version": "9.0.0-beta.138",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.138.tgz",
+ "integrity": "sha512-mE3nMx1ngevvmFcp/2sePyJrdE8nme7eqCv1ppUT+mTIA1RYkR8hzBld1+DV1qJYc+F6DCeg4gImuQuu1OXiGA==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-avatar": "^9.9.14",
- "@fluentui/react-button": "^9.8.0",
+ "@fluentui/react-avatar": "^9.11.0",
+ "@fluentui/react-button": "^9.9.0",
"@fluentui/react-icons": "^2.0.239",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1175,16 +720,16 @@
}
},
"node_modules/@fluentui/react-aria": {
- "version": "9.17.8",
- "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.17.8.tgz",
- "integrity": "sha512-u7RIXvQZTX5RKGvbNVSGO/cbbY3n+4c8TMQMRhujU97mpXGoOQR32xy5PfoS+WPXeIlblPqeg/NS20q+9kfWwg==",
+ "version": "9.17.10",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.17.10.tgz",
+ "integrity": "sha512-KqS2XcdN84XsgVG4fAESyOBfixN7zbObWfQVLNZ2gZrp2b1hPGVYfQ6J4WOO0vXMKYp0rre/QMOgDm6/srL0XQ==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
+ "@fluentui/react-utilities": "^9.26.2",
"@swc/helpers": "^0.5.1"
},
"peerDependencies": {
@@ -1195,21 +740,21 @@
}
},
"node_modules/@fluentui/react-avatar": {
- "version": "9.9.14",
- "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.9.14.tgz",
- "integrity": "sha512-jaXnnZ5ubbgzVud3x8D63iHg8zHV1McNc7/XdOwfmkWop/6ve5bWhTP2l/K0ftobXBIkA+kkwhEbhylHaCQz7g==",
+ "version": "9.11.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.11.0.tgz",
+ "integrity": "sha512-3MogJIiOGilKh9y/sWy0Cali1tpvWQNwcs2ryL7EVXi5xwTfKQM/WEgEnW2z+KtumDQUsRqlCHCSoi+x+BF8Qg==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-badge": "^9.4.13",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-badge": "^9.5.1",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-popover": "^9.13.0",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-popover": "^9.14.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-tooltip": "^9.9.0",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-tooltip": "^9.10.0",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1221,16 +766,16 @@
}
},
"node_modules/@fluentui/react-badge": {
- "version": "9.4.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.4.13.tgz",
- "integrity": "sha512-rgmjqg99uml+HmA0G1iSHnED2e/P7ZwYX0iGPIQL8HpGG9S/3U/WHXqYgidl7kjmdANcNmdbqDjaU1ntx4+BcA==",
+ "version": "9.5.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.5.1.tgz",
+ "integrity": "sha512-OHS15ovGFPShrAA9U+hCyloJEyffC9gdif0a27AOIB9aVlF/hTzG7toxxulcg4ar4F9X3xXk/uccCCa2kzK0Gw==",
"license": "MIT",
"dependencies": {
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1242,20 +787,20 @@
}
},
"node_modules/@fluentui/react-breadcrumb": {
- "version": "9.3.15",
- "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.3.15.tgz",
- "integrity": "sha512-7Y5JbgrgUwIJPWcQNohLJUVmIkGsTk8rqjfL0OyBscRRA3hLM9F0KOf4BK3V0u/NokmCglkOvXYgQ3i3PJBp3Q==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.4.0.tgz",
+ "integrity": "sha512-QpCjYlM3JTMnNwh/sDehDbuAVjTcgSfjkPdSmFaPk2lPHpER32CBcJVhheP9en2U5NbW1e+Gtvq8y06RN8FCWw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-button": "^9.8.0",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-button": "^9.9.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-link": "^9.7.2",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-link": "^9.8.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1267,19 +812,19 @@
}
},
"node_modules/@fluentui/react-button": {
- "version": "9.8.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.8.0.tgz",
- "integrity": "sha512-pBkh7lQIHx8lYf5ZxJCOlbzjROT6w3Qw4ufP6f2ImhJCOgvDwSlwKhod++tIhnjYRmN6xIGvhFuFvw6Ju5TsLg==",
+ "version": "9.9.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.9.0.tgz",
+ "integrity": "sha512-aH3aSjKyxIiNb9jJOUaaIq47w7jP5ESFSRzvMjcWOETvlWo4QgNqEOOsYqpcltM1OrQZ0sTy/isxppRcyMDlcQ==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
+ "@fluentui/react-aria": "^9.17.10",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1291,18 +836,18 @@
}
},
"node_modules/@fluentui/react-card": {
- "version": "9.5.9",
- "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.5.9.tgz",
- "integrity": "sha512-xNO2QmB2uQfyAng/xxI8YvD4O56JpmgVKtK9DLwffkb5Nxt+e0elHIDIIN2wzcGTXLkhlQ61Ou3b3etwCRjZfg==",
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.6.0.tgz",
+ "integrity": "sha512-vgBvhtSzQDa01aOP9zdhJXFLsZAiDVslRfX3HmlIo1pAMt8w+PBq+ypDp1wxM7HPFpj9+RYcERRKtf4MSNP9Nw==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
- "@fluentui/react-text": "^9.6.13",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
+ "@fluentui/react-text": "^9.6.15",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1314,21 +859,21 @@
}
},
"node_modules/@fluentui/react-carousel": {
- "version": "9.9.1",
- "resolved": "https://registry.npmjs.org/@fluentui/react-carousel/-/react-carousel-9.9.1.tgz",
- "integrity": "sha512-C7LtFgxPQutB/Vw03f6jtg51RDgZBrqBwTjzdoXBBi0qPXTFihH1wn57IM5WDhQxgbR5vFrWfiaLO3UwXlpEXg==",
+ "version": "9.9.6",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-carousel/-/react-carousel-9.9.6.tgz",
+ "integrity": "sha512-Ae7DKwQsidRBjUQeiXffRUi8i/26jMgJd24rDVLeQUvoUhs+z/SA9iZN/QMuNl02E291MAEruENKzzkshvfYfg==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-button": "^9.8.0",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-button": "^9.9.0",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-tooltip": "^9.9.0",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-tooltip": "^9.10.0",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1",
"embla-carousel": "^8.5.1",
@@ -1343,19 +888,19 @@
}
},
"node_modules/@fluentui/react-checkbox": {
- "version": "9.5.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.5.13.tgz",
- "integrity": "sha512-Mgdu2796TMvuUAVKh//OSuB5Meb6Y5SDrY6pwTvozTHxfsXFAXbEwrIGYiwYtg2pUIr3/gL3Pe1o9ptyy0MGxg==",
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.6.0.tgz",
+ "integrity": "sha512-GMgB1Yx2WP6cISIZoRTyXp2VkJBR8t1+wRyY63RRcofL/ziqqBhz++kl317lbVv7QxnXZh6KlVuoPROWFDQuaw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
+ "@fluentui/react-field": "^9.5.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1367,18 +912,18 @@
}
},
"node_modules/@fluentui/react-color-picker": {
- "version": "9.2.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-color-picker/-/react-color-picker-9.2.13.tgz",
- "integrity": "sha512-wRxWVHKug5fPthP0ta9BZ2geq3z9Fku8QUpWqvwQNpcOthHotJs2bvc7YPEILYZtUk7sF8OX7uAEWrjo5rrX2A==",
+ "version": "9.2.15",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-color-picker/-/react-color-picker-9.2.15.tgz",
+ "integrity": "sha512-RMmawl7g4gUYLuTQG2QwCcR9fGC+vDD+snsBlXtObpj/cKpeDmYif46g88pYv86jeIXY1zsjINmLpELmz+uFmw==",
"license": "MIT",
"dependencies": {
"@ctrl/tinycolor": "^3.3.4",
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1390,23 +935,23 @@
}
},
"node_modules/@fluentui/react-combobox": {
- "version": "9.16.14",
- "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.16.14.tgz",
- "integrity": "sha512-CQLdlxU5qK0XEBRCJuFOo1GTSGd0Ii3uJ/jyYe2B1ID2buiwOfDQDanM3ISuB1gv/Cmi2S6yoRfjMemN8TKykQ==",
+ "version": "9.17.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.17.0.tgz",
+ "integrity": "sha512-04JTIrXCAbG8HnczFVzJsUJO+NJQ2d/JPynXlmTq7KCMw0BssiF//7IAPFnTiMYmS7jcwc9Uh4ZeFrw+czA79g==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-field": "^9.4.13",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-field": "^9.5.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-positioning": "^9.20.12",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-positioning": "^9.22.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1418,71 +963,71 @@
}
},
"node_modules/@fluentui/react-components": {
- "version": "9.72.11",
- "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.72.11.tgz",
- "integrity": "sha512-fetbBztVDJLeYREcYsBx2LO2D5svO9emBc4OMC/tRmwKtMPbfu3lIl+81kiyj1+kfK9zzdvFnySGkoAU5RXv0g==",
- "license": "MIT",
- "dependencies": {
- "@fluentui/react-accordion": "^9.8.16",
- "@fluentui/react-alert": "9.0.0-beta.132",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-avatar": "^9.9.14",
- "@fluentui/react-badge": "^9.4.13",
- "@fluentui/react-breadcrumb": "^9.3.15",
- "@fluentui/react-button": "^9.8.0",
- "@fluentui/react-card": "^9.5.9",
- "@fluentui/react-carousel": "^9.9.1",
- "@fluentui/react-checkbox": "^9.5.13",
- "@fluentui/react-color-picker": "^9.2.13",
- "@fluentui/react-combobox": "^9.16.14",
- "@fluentui/react-dialog": "^9.16.6",
- "@fluentui/react-divider": "^9.6.0",
- "@fluentui/react-drawer": "^9.11.2",
- "@fluentui/react-field": "^9.4.13",
- "@fluentui/react-image": "^9.3.13",
- "@fluentui/react-infobutton": "9.0.0-beta.109",
- "@fluentui/react-infolabel": "^9.4.14",
- "@fluentui/react-input": "^9.7.13",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-link": "^9.7.2",
- "@fluentui/react-list": "^9.6.8",
- "@fluentui/react-menu": "^9.21.0",
- "@fluentui/react-message-bar": "^9.6.17",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-nav": "^9.3.17",
- "@fluentui/react-overflow": "^9.6.7",
- "@fluentui/react-persona": "^9.5.14",
- "@fluentui/react-popover": "^9.13.0",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-positioning": "^9.20.12",
- "@fluentui/react-progress": "^9.4.13",
- "@fluentui/react-provider": "^9.22.13",
- "@fluentui/react-radio": "^9.5.13",
- "@fluentui/react-rating": "^9.3.13",
- "@fluentui/react-search": "^9.3.13",
- "@fluentui/react-select": "^9.4.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-skeleton": "^9.4.13",
- "@fluentui/react-slider": "^9.5.13",
- "@fluentui/react-spinbutton": "^9.5.13",
- "@fluentui/react-spinner": "^9.7.13",
- "@fluentui/react-swatch-picker": "^9.4.13",
- "@fluentui/react-switch": "^9.5.2",
- "@fluentui/react-table": "^9.19.7",
- "@fluentui/react-tabs": "^9.11.0",
- "@fluentui/react-tabster": "^9.26.12",
- "@fluentui/react-tag-picker": "^9.7.15",
- "@fluentui/react-tags": "^9.7.14",
- "@fluentui/react-teaching-popover": "^9.6.15",
- "@fluentui/react-text": "^9.6.13",
- "@fluentui/react-textarea": "^9.6.13",
+ "version": "9.73.7",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.73.7.tgz",
+ "integrity": "sha512-hLxXEAiiMEMmFR3jEYgFPOV5lnNzu6SJU0NtyMCn1Tf4HXgCfy4h700e+GzuAsL1RlQAYC35HplcZHcEffwTIQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@fluentui/react-accordion": "^9.10.0",
+ "@fluentui/react-alert": "9.0.0-beta.138",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-avatar": "^9.11.0",
+ "@fluentui/react-badge": "^9.5.1",
+ "@fluentui/react-breadcrumb": "^9.4.0",
+ "@fluentui/react-button": "^9.9.0",
+ "@fluentui/react-card": "^9.6.0",
+ "@fluentui/react-carousel": "^9.9.6",
+ "@fluentui/react-checkbox": "^9.6.0",
+ "@fluentui/react-color-picker": "^9.2.15",
+ "@fluentui/react-combobox": "^9.17.0",
+ "@fluentui/react-dialog": "^9.17.3",
+ "@fluentui/react-divider": "^9.7.0",
+ "@fluentui/react-drawer": "^9.11.6",
+ "@fluentui/react-field": "^9.5.0",
+ "@fluentui/react-image": "^9.4.0",
+ "@fluentui/react-infobutton": "9.0.0-beta.114",
+ "@fluentui/react-infolabel": "^9.4.19",
+ "@fluentui/react-input": "^9.8.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-link": "^9.8.0",
+ "@fluentui/react-list": "^9.6.13",
+ "@fluentui/react-menu": "^9.24.0",
+ "@fluentui/react-message-bar": "^9.6.23",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-nav": "^9.3.23",
+ "@fluentui/react-overflow": "^9.7.1",
+ "@fluentui/react-persona": "^9.7.2",
+ "@fluentui/react-popover": "^9.14.1",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-positioning": "^9.22.0",
+ "@fluentui/react-progress": "^9.5.0",
+ "@fluentui/react-provider": "^9.22.15",
+ "@fluentui/react-radio": "^9.6.1",
+ "@fluentui/react-rating": "^9.4.0",
+ "@fluentui/react-search": "^9.4.1",
+ "@fluentui/react-select": "^9.5.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-skeleton": "^9.7.1",
+ "@fluentui/react-slider": "^9.6.1",
+ "@fluentui/react-spinbutton": "^9.6.1",
+ "@fluentui/react-spinner": "^9.8.1",
+ "@fluentui/react-swatch-picker": "^9.5.1",
+ "@fluentui/react-switch": "^9.7.1",
+ "@fluentui/react-table": "^9.19.14",
+ "@fluentui/react-tabs": "^9.12.0",
+ "@fluentui/react-tabster": "^9.26.13",
+ "@fluentui/react-tag-picker": "^9.8.5",
+ "@fluentui/react-tags": "^9.8.0",
+ "@fluentui/react-teaching-popover": "^9.6.20",
+ "@fluentui/react-text": "^9.6.15",
+ "@fluentui/react-textarea": "^9.7.1",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-toast": "^9.7.11",
- "@fluentui/react-toolbar": "^9.7.1",
- "@fluentui/react-tooltip": "^9.9.0",
- "@fluentui/react-tree": "^9.15.9",
- "@fluentui/react-utilities": "^9.26.1",
- "@fluentui/react-virtualizer": "9.0.0-alpha.109",
+ "@fluentui/react-toast": "^9.7.16",
+ "@fluentui/react-toolbar": "^9.7.7",
+ "@fluentui/react-tooltip": "^9.10.0",
+ "@fluentui/react-tree": "^9.15.16",
+ "@fluentui/react-utilities": "^9.26.2",
+ "@fluentui/react-virtualizer": "9.0.0-alpha.111",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1494,12 +1039,12 @@
}
},
"node_modules/@fluentui/react-context-selector": {
- "version": "9.2.14",
- "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.14.tgz",
- "integrity": "sha512-2dhWztUfq7P7OHa5LEUY/BAez/dWYiC7rwFCWdh9ma5KKRMhLCOmyh1lNgzaaTCvK5MytHx0VzXgBkBJYJfLqg==",
+ "version": "9.2.15",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.15.tgz",
+ "integrity": "sha512-QymBntFLJNZ9VfTOaBn2ApUSSSC5UuDW8ZcgPJPA+06XEFH+U9Zny2d9QAg1xYNYwIGWahWGQ+7ATOuLxtB8Jw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@swc/helpers": "^0.5.1"
},
"peerDependencies": {
@@ -1511,23 +1056,23 @@
}
},
"node_modules/@fluentui/react-dialog": {
- "version": "9.16.6",
- "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.16.6.tgz",
- "integrity": "sha512-GD6GXI7MiMytdR1eTFrN3svfS9DKFQqimS35vKx0+ysizoYYahRdATOGLXjUxoj77X5UGfoeysIXr9f1ZcIs5w==",
+ "version": "9.17.3",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.17.3.tgz",
+ "integrity": "sha512-rF5l8n5yhaB//ZHns0my3Tviir7R8NVyRgTtvV2gLhG58YM7qpm54oraG83uwlXCcZp0wlg2LuIe1cZ559ex1A==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-motion-components-preview": "^0.15.0",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1539,15 +1084,15 @@
}
},
"node_modules/@fluentui/react-divider": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.6.0.tgz",
- "integrity": "sha512-J8xfnmitXiA0FVxvaTEVxWOZMXs7EtYy+uZ1rFU/g4yaOrC4Gl0BCBt/n4+e4Nuyvz5ne3ZU9KY9DS433QH9qA==",
+ "version": "9.7.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.7.0.tgz",
+ "integrity": "sha512-U8Nhrghjeh+XCGM4B7aHYosd6fXaxHC3MpZi7DB0xQ20ljn5cSTpBt4Yvl+tB9ld2+/eM8wekx1GVKyI4yWa3g==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1559,20 +1104,20 @@
}
},
"node_modules/@fluentui/react-drawer": {
- "version": "9.11.2",
- "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.11.2.tgz",
- "integrity": "sha512-DdPu8y0WiDmjdggy7BWf+qM+mUVQCaD1+pF/fY2P40kBVS+cpaoRr6qOhZnIyrWeec3+ThtkTDnS3vj1pJ7eCA==",
- "license": "MIT",
- "dependencies": {
- "@fluentui/react-dialog": "^9.16.6",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-motion-components-preview": "^0.15.0",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "version": "9.11.6",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.11.6.tgz",
+ "integrity": "sha512-E+k3eKVb/xKPm2RH5Q1xBjL89NeB1GXtYHO6qRlhQ9auYVTlaBCR7f/ZfIIJJ2x8MzfntQljyl94VARtmZYnyA==",
+ "license": "MIT",
+ "dependencies": {
+ "@fluentui/react-dialog": "^9.17.3",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1584,18 +1129,18 @@
}
},
"node_modules/@fluentui/react-field": {
- "version": "9.4.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.4.13.tgz",
- "integrity": "sha512-qGTTqdLlrllV3b2DYIGrrGD82Bp0WZR0GR30iT+Y9K3fEh0jhXZ5CmBuNKfy8XbWujfAiHpCv7z5zKAv2rKvmQ==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.5.0.tgz",
+ "integrity": "sha512-yGjB9RXqKrolkkjyAsKVdrH2Xeinj+vromrSCJelgMJ3Q3D6YkExHQzgtdzqo0fVPppnEA4oDKL3Vqqnz/G5Ug==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1607,13 +1152,13 @@
}
},
"node_modules/@fluentui/react-file-type-icons": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-file-type-icons/-/react-file-type-icons-8.16.0.tgz",
- "integrity": "sha512-8rouTQWDt+8tT2DT/S4ItkBaSaKj1KJ7q66VTw6RIW2QNcVpEaopGfOYQooVbs0u01xjxFd54SG7vRsXH391mw==",
+ "version": "8.17.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-file-type-icons/-/react-file-type-icons-8.17.0.tgz",
+ "integrity": "sha512-LQd5UxQEzhL67bq3G8WzoONkLs5GHp3Xhlis1UFmv4kv52r0nnKgzmIHkq35EnW5qFCyAh3Gijdhk2RRETNXNQ==",
"license": "MIT",
"dependencies": {
"@fluentui/set-version": "^8.2.24",
- "@fluentui/style-utilities": "^8.14.0",
+ "@fluentui/style-utilities": "^8.15.0",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1622,15 +1167,15 @@
}
},
"node_modules/@fluentui/react-focus": {
- "version": "8.10.4",
- "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.10.4.tgz",
- "integrity": "sha512-k5FfTJ5psg4xN/52X4AzJ38qh3Oh2C29KL5pA3fVY34QkJAHgxeETe9JzjTeh/s8i5SLXvf1Uh+FjERZTRGQAA==",
+ "version": "8.10.5",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.10.5.tgz",
+ "integrity": "sha512-Jix/4i7ABjgj4a7Ac4JTAWxJkgytpwYTuSM7rtQEfRa4kSRy9E1Ak7NibFexm1kkUkBkFTnp9x1dE27rv+ECJQ==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-key": "^0.4.23",
"@fluentui/merge-styles": "^8.6.14",
"@fluentui/set-version": "^8.2.24",
- "@fluentui/style-utilities": "^8.14.0",
+ "@fluentui/style-utilities": "^8.15.0",
"@fluentui/utilities": "^8.17.2",
"tslib": "^2.1.0"
},
@@ -1656,12 +1201,12 @@
}
},
"node_modules/@fluentui/react-icons": {
- "version": "2.0.317",
- "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.317.tgz",
- "integrity": "sha512-yB1IYJRLoC8qKBv8zK5OWpBLkT4wWUp5qPu5XomDWp+FONu3Gt4WzEwcW1Znl9HxRvKu9SZwpdMjzK9AondqNg==",
+ "version": "2.0.324",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.324.tgz",
+ "integrity": "sha512-wbtIQWwoTWNU6KyuF59zZ1viFv1i68iwVa1+so/QnfNKNHIXa2MEZ375Vg/pcubFBqlTxsKMrCBFtHEIzBHG/Q==",
"license": "MIT",
"dependencies": {
- "@griffel/react": "^1.0.0",
+ "@griffel/react": "^1.6.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -1669,15 +1214,15 @@
}
},
"node_modules/@fluentui/react-image": {
- "version": "9.3.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.3.13.tgz",
- "integrity": "sha512-814opBhEi8oeNaYxapNL8GQqWxLScuRw/QNX1OeCqKvoGNHOHLlqanV4IYzIgJxCzTTgSg/y6JJ1NadKcDdwZQ==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.4.0.tgz",
+ "integrity": "sha512-BpcBlmkukm7YYf6PTCbAIMkeCXc8+7aq2eMADsxF5gFD8j3d5lBY3cKByOWRM1NvXcMXmqXr/hQP+ovqNAHzEA==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1689,18 +1234,18 @@
}
},
"node_modules/@fluentui/react-infobutton": {
- "version": "9.0.0-beta.109",
- "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.109.tgz",
- "integrity": "sha512-5OUJG3V0G9DvP8zG0ixrBIr1rrg/NDAgwqLkr9kPqzYHibg7RiBvNrnmH/IYnSGPkLpOAFfVGD+BTp0ui+uNww==",
+ "version": "9.0.0-beta.114",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.114.tgz",
+ "integrity": "sha512-3mqnlIcRc0PuW7rsxLFjzqnI/IITZIrHRt8Zwcm8NX7XZIK3wfODb9ytmQDYU/5IfwiSXC+xozqhI6kttaE3iw==",
"license": "MIT",
"dependencies": {
"@fluentui/react-icons": "^2.0.237",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-popover": "^9.13.0",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-popover": "^9.14.1",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1712,19 +1257,19 @@
}
},
"node_modules/@fluentui/react-infolabel": {
- "version": "9.4.14",
- "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.4.14.tgz",
- "integrity": "sha512-qFN9QVolEqZv/tizsmGkPHNNf/eQxMJc/woTQgj2WKRTuTlaYmAG07MC1giBFV58/agUyf6j4miEcDUcFiEpSw==",
+ "version": "9.4.19",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.4.19.tgz",
+ "integrity": "sha512-b/3ETF5DPgHcRUcj85iGyiEXUFozFq+IY6tPcyCiUcmIoKScD8McFaHozjpaVqngLbCz0uKNNA0JDy1x/T2ItQ==",
"license": "MIT",
"dependencies": {
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-popover": "^9.13.0",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-popover": "^9.14.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1736,16 +1281,16 @@
}
},
"node_modules/@fluentui/react-input": {
- "version": "9.7.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.7.13.tgz",
- "integrity": "sha512-klhtp4D85Qt8mCGc3Z7kAAAM2mKrpzXiE/I2sCQDFxKlFvwl8Sf4CYnodbca4ywlLI/2nfDK7co7M15rGSIl6A==",
+ "version": "9.8.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.8.1.tgz",
+ "integrity": "sha512-ZlMeYBf1EQg4alI5+9gfx3Icmq3xibPiIYeARtFzOKJ2XzpnD4d/yswx3IDkzXCbqw9rSHtHV03vEeYLUPPTGw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-field": "^9.5.0",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1757,14 +1302,13 @@
}
},
"node_modules/@fluentui/react-jsx-runtime": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.3.5.tgz",
- "integrity": "sha512-Zrgz35HaG1ZHAV8tvUyxHJ6nOcVWfE1iqJ86WGSns4KChda6WfSZeTap+b7tjPiAyOAcH8KCBxqobLybqExMqA==",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.4.1.tgz",
+ "integrity": "sha512-ZodSm7jRa4kaLKDi+emfHFMP/IDnYwFQQAI2BdtKbVrvfwvzPRprGcnTgivnqKBT1ROvKOCY2ddz7+yZzesnNw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-utilities": "^9.26.1",
- "@swc/helpers": "^0.5.1",
- "react-is": "^17.0.2"
+ "@fluentui/react-utilities": "^9.26.2",
+ "@swc/helpers": "^0.5.1"
},
"peerDependencies": {
"@types/react": ">=16.14.0 <20.0.0",
@@ -1772,15 +1316,15 @@
}
},
"node_modules/@fluentui/react-label": {
- "version": "9.3.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.3.13.tgz",
- "integrity": "sha512-nWNPUH766eIUVXRBFPLkvkPA9Ln4IP56J8ocGS62dLB1Wc4ggh1G3UDtp2wMgvqdkE4ngKyfh8ERemg/aJXdFA==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.4.0.tgz",
+ "integrity": "sha512-joQ7YNz2dgwDd134sc7e8/vxfFKBUT5AdWx0apT0ohWKgh7RBjB3AdXsaJ8FaMKMNZIGTxZVsP4hHcGsWMTAFw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1792,17 +1336,17 @@
}
},
"node_modules/@fluentui/react-link": {
- "version": "9.7.2",
- "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.7.2.tgz",
- "integrity": "sha512-DdK0/stocCPgSzMC2FHVG+x1TL3tYh/xBQAK5N2YWkAqUGuWErKUKHMVvUvwT24erDHyrt3o5Zo1ddv4hninIQ==",
+ "version": "9.8.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.8.0.tgz",
+ "integrity": "sha512-TH5LS4iuQ4jYzlR84A4n7lQTKaJuiuuGFHMIxoEqtKeMoL9F5AiabuBs6m7Q7clSdTrrcRMNzXLuEFarQrzGTQ==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1814,19 +1358,19 @@
}
},
"node_modules/@fluentui/react-list": {
- "version": "9.6.8",
- "resolved": "https://registry.npmjs.org/@fluentui/react-list/-/react-list-9.6.8.tgz",
- "integrity": "sha512-/In4nuDTpbsueJGjaakQVCrkd3uVRILaawC4tXLRcEUwvQXmoHRBjQBuDGhqRp0/N1Od/cdh1U5E/a5qaLtf5A==",
+ "version": "9.6.13",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-list/-/react-list-9.6.13.tgz",
+ "integrity": "sha512-MIP0XKxU68m8VsBCyNBame46nnZ94FCNUArw9T2JuumyKMgV07C+sNhXCe9BCVpUr8e2Hfofo7CZjAsXWDZ0nw==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-checkbox": "^9.5.13",
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-checkbox": "^9.6.0",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1838,22 +1382,24 @@
}
},
"node_modules/@fluentui/react-menu": {
- "version": "9.21.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.21.0.tgz",
- "integrity": "sha512-q/A3DERyRsPatBZ6C23mH+wh/k9OTTA8tNa7sHjHzMFuUTPR+aluLVAxtj6t6stQ09wpxUFtwYrUMq8WJisAJQ==",
+ "version": "9.24.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.24.0.tgz",
+ "integrity": "sha512-HqIwEM6lPropSHUnbPFufLYdkAIVca87XbNQHCTes4QSLeaF4oEjlBH60rIqQ52k78FwZuUFIciWkSChxJ9ekg==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-positioning": "^9.20.12",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-positioning": "^9.22.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1865,20 +1411,20 @@
}
},
"node_modules/@fluentui/react-message-bar": {
- "version": "9.6.17",
- "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.6.17.tgz",
- "integrity": "sha512-Izb0Qqnw5P1WKAXH/kAkZDjyZCnd1FbU8Z5VpTIdftSZr8iqOT00ONCM8edD55pj17tVJKY0OmnBlUL/rfLFrA==",
+ "version": "9.6.23",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.6.23.tgz",
+ "integrity": "sha512-mGnFmYWx6tq36OMTdVtJmxyn3j0p+Shll3+w4W2fW8fcOVSeyrnZ++HLmpurUkVzwI2xR2lL842kxC3GtbwmNw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-button": "^9.8.0",
+ "@fluentui/react-button": "^9.9.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-link": "^9.7.2",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-motion-components-preview": "^0.15.0",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-link": "^9.8.0",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1890,13 +1436,13 @@
}
},
"node_modules/@fluentui/react-motion": {
- "version": "9.11.6",
- "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.11.6.tgz",
- "integrity": "sha512-WZiqEtO0vCUYjYjkvxm9h1r/VRVEi0a4hDhVxCP3Ptsfn5ts5CEf61WbJyrmvvWD7X9TamP2SEf+lEmS8Qy89A==",
+ "version": "9.14.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.14.0.tgz",
+ "integrity": "sha512-gOy8+fUP1KQRM/J6mRhioCMmUrHW9jbLF0DZ9T8nKPQsLrLaSXHxnnI8DcKZjlYc2fKuZitBnbpximgff6HajQ==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-utilities": "^9.26.2",
"@swc/helpers": "^0.5.1"
},
"peerDependencies": {
@@ -1907,9 +1453,9 @@
}
},
"node_modules/@fluentui/react-motion-components-preview": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.15.0.tgz",
- "integrity": "sha512-CUNl3WZt4RU4q6iAG56M3WRAq5sxfm8BNr9Me5dru1mkDXwgsdrCk03UFzydru3gThmuyYsBHwze79YrPzzmxw==",
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.15.3.tgz",
+ "integrity": "sha512-dUH2+GmEWX9q2ojx70VfFLRqzA9fR4YISC6daXkz3iPx4PtesTDn7jwsuXXquaAhltJeBptJ8+K4jbtBrwCMYQ==",
"license": "MIT",
"dependencies": {
"@fluentui/react-motion": "*",
@@ -1924,25 +1470,25 @@
}
},
"node_modules/@fluentui/react-nav": {
- "version": "9.3.17",
- "resolved": "https://registry.npmjs.org/@fluentui/react-nav/-/react-nav-9.3.17.tgz",
- "integrity": "sha512-v6ftZxtwn+paTelr0W54OpZ/MOJTFf4fnt6IaYmlmM9ypviLteWclNrhtADR/mAf4gad+lieQrraXtnF5NA6hA==",
+ "version": "9.3.23",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-nav/-/react-nav-9.3.23.tgz",
+ "integrity": "sha512-Z9hA70n5i62sO9IJItkX5+v1F7Lo/539joPaHCLHHca+rySQQZKqy8zLRIfLbh/qF8Nm04ywY19Qt14XjI59cQ==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-button": "^9.8.0",
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-divider": "^9.6.0",
- "@fluentui/react-drawer": "^9.11.2",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-button": "^9.9.0",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-divider": "^9.7.0",
+ "@fluentui/react-drawer": "^9.11.6",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-motion-components-preview": "^0.15.0",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-tooltip": "^9.9.0",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-tooltip": "^9.10.0",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1954,15 +1500,15 @@
}
},
"node_modules/@fluentui/react-overflow": {
- "version": "9.6.7",
- "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.6.7.tgz",
- "integrity": "sha512-vJ1F3TNR8j0V215lhthjwvWQgq5pjpgjIS31z3/L+VeApcWy/BtvMk9420KzpOnKbDxgwy6ZTvXxKbE/OYtngA==",
+ "version": "9.7.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.7.1.tgz",
+ "integrity": "sha512-Ml1GlcLrAUv31d9WN15WGOZv32gzDtZD5Mp1MOQ3ichDfTtxrswIch7MDzZ8hLMGf/7Y2IzBpV8iFR1XdSrGBA==",
"license": "MIT",
"dependencies": {
- "@fluentui/priority-overflow": "^9.2.1",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/priority-overflow": "^9.3.0",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1974,17 +1520,17 @@
}
},
"node_modules/@fluentui/react-persona": {
- "version": "9.5.14",
- "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.5.14.tgz",
- "integrity": "sha512-s4jwCbx7l065q35NigldAbGJ4rEJS6UxigaqsnLaWlXnU17klpIPa/awVutGJi0TFa3vDBC8MD/3k74flBj1bw==",
+ "version": "9.7.2",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.7.2.tgz",
+ "integrity": "sha512-u6buhC6Haf8YewBnZAzi49YCwiC8vt0O0YPADemk+4uJ8bhCnayzLxMYGuQ95XO4HFhvVnSPEYjMDdKrMO1hIw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-avatar": "^9.9.14",
- "@fluentui/react-badge": "^9.4.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-avatar": "^9.11.0",
+ "@fluentui/react-badge": "^9.5.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -1996,21 +1542,23 @@
}
},
"node_modules/@fluentui/react-popover": {
- "version": "9.13.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.13.0.tgz",
- "integrity": "sha512-zNwpHDtwuDjjpZqg2FqPhNcHgJSWuH6+KUjogbx3GRyKgAwToDzdORKHkWVBtehAJEUu8uoLDoiw+GCeZgyPlg==",
+ "version": "9.14.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.14.1.tgz",
+ "integrity": "sha512-EODa5yWSfDLPDurjWoZXfkf2ccnbQQbk3s1XYRzxA6RDfdVqUI5W64RJzHWBiNhOLzQEhd6Qb4e6Mshj4FSbdQ==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-positioning": "^9.20.12",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-positioning": "^9.22.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2022,14 +1570,14 @@
}
},
"node_modules/@fluentui/react-portal": {
- "version": "9.8.10",
- "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.8.10.tgz",
- "integrity": "sha512-/dNb7o8D79KAAxseAIyDIT7ZhIE5hL9Tz9dv9Zec3c+8KfzKwXp6hzr5K/gASeg82ga2xArMn4os4JcVuzvwLg==",
+ "version": "9.8.11",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.8.11.tgz",
+ "integrity": "sha512-2eg4MdW7e2UGRYWPg05GCytAjWYNd55YOP9+iUDINoQwwto9oeFTtZRyn08HYw37cSNqoH24qGz/VBctzTkqDA==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2054,16 +1602,16 @@
}
},
"node_modules/@fluentui/react-positioning": {
- "version": "9.20.12",
- "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.20.12.tgz",
- "integrity": "sha512-d7l/4EdfPj5IA/mQ0NLytGxsPwBvx/K/h3ZoJVf6eoY5nmnLch5OKImcPYJCku4DKozXQuneVx7xNW/8TzOJEA==",
+ "version": "9.22.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.22.0.tgz",
+ "integrity": "sha512-i3DLC4jd4MoYSZMYLKQNUTpkjKAJ0snIcihvkrjt2jpvv34CifKJhqVtjFQ470pRW4XNx/pBBX07vdXpA3poxA==",
"license": "MIT",
"dependencies": {
"@floating-ui/devtools": "^0.2.3",
"@floating-ui/dom": "^1.6.12",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1",
"use-sync-external-store": "^1.2.0"
@@ -2076,16 +1624,17 @@
}
},
"node_modules/@fluentui/react-progress": {
- "version": "9.4.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.4.13.tgz",
- "integrity": "sha512-FebkTCKOeHoXKhvluGXXx0UCfiOhytN4CGahNlnyERaP1+x+IUWOPnEnWc97C8a5ELdSQ+6u6Wy6con2uIwW3w==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.5.0.tgz",
+ "integrity": "sha512-VcWXI6UJfBkrDuC/e9oR4YBlpnLUE+FqRRjMG4mVXV+AJzFiljF3mQkFAj94G6dsr54TcoDXC6oydgXLCOTW2A==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-field": "^9.5.0",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2097,17 +1646,17 @@
}
},
"node_modules/@fluentui/react-provider": {
- "version": "9.22.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.22.13.tgz",
- "integrity": "sha512-ZCH6HqpFGlR6wEeHjJVanJrO23mDJn2+tAkhOmakl01DNwElJH6FoP39Fyd/+k/ArBcp9XtlO4IlpG+xybZXlA==",
+ "version": "9.22.15",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.22.15.tgz",
+ "integrity": "sha512-a+ImgL9DOlylDM4UYPnxQTA3yXxbVj+O0iNEyTZ6fMzdMsHzpALU4GAq6tOyW4L7RaQtRBmNpVfwTCEKpqaTJQ==",
"license": "MIT",
"dependencies": {
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/core": "^1.16.0",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
@@ -2120,18 +1669,18 @@
}
},
"node_modules/@fluentui/react-radio": {
- "version": "9.5.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.5.13.tgz",
- "integrity": "sha512-zU7LXVdrrhzgYzQirexPfgC9d3dkzs5AHlon9/XHHb+X2ULkWp0tvJ8PuDGWqMST7Q930iiwlgrCNaWy+rHvHg==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.6.1.tgz",
+ "integrity": "sha512-QBoV6l8fVLP+H9Tigq/Y6boiEqMDRhhVMkIfUiWFbnsU/Uc7J5fxW8GoNqzMmoOmC7yvQ/g4jsoTQF27+PzK5w==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-field": "^9.5.0",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2143,17 +1692,17 @@
}
},
"node_modules/@fluentui/react-rating": {
- "version": "9.3.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.3.13.tgz",
- "integrity": "sha512-3+FlVPXvqaE2TJUujqcZVPrepOvJz+ogTpUY5eYYFjago382wLuuU90KpvdIVigZoIdPpwFT4qLFU5Oa4ZHjZw==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.4.0.tgz",
+ "integrity": "sha512-qVesFNgQ7uuX8z9d8xqxIXn5ax06xffgBr/eAuZfqVYZG5aRrPHHRoiWf0HDrYD4Lb/HRBLPtbNihNxhXj/LEA==",
"license": "MIT",
"dependencies": {
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2165,17 +1714,17 @@
}
},
"node_modules/@fluentui/react-search": {
- "version": "9.3.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.3.13.tgz",
- "integrity": "sha512-gMq8iGA5Fd54GgNmUM6IUvCs0Ty4PINIevG+Nl3Lfqv04A9nzHvp45nTpES4pSGyyacXat14dL45nFVA+H0VUA==",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.4.1.tgz",
+ "integrity": "sha512-Lv2zhPad7SDhMd5NeabXluw4y0Gov9YxDkJhjShMnkiN3yCOA5tlVviNvRXOXxy0gS//d8CiGJ5mBT1bzz2Rrw==",
"license": "MIT",
"dependencies": {
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-input": "^9.7.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-input": "^9.8.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2187,17 +1736,17 @@
}
},
"node_modules/@fluentui/react-select": {
- "version": "9.4.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.4.13.tgz",
- "integrity": "sha512-DKKSMK5v4UN5Hjydvllea9tpT+ebRHUQ8/mODnSDhI2vBmNlsuSveDEU3KRmC6O/WtwREXH6vnr7t3fKE+5DCg==",
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.5.0.tgz",
+ "integrity": "sha512-pGOD6MBwQsiHKkEdNmVrTavcfC9pOjt4nz/DRlFD444j6iR1PALlus5cNOp7A0JOnGDDvW+1afIvgySCqN0oiA==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
+ "@fluentui/react-field": "^9.5.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2209,9 +1758,9 @@
}
},
"node_modules/@fluentui/react-shared-contexts": {
- "version": "9.26.1",
- "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.26.1.tgz",
- "integrity": "sha512-Vf/NKiqx76DC2AqbMPfqoTMPDEw6xINTxQAStq8ymT3oMaf7K79uKu9PnmtFghuXf3FVYVWzIlDWvQmR1ng9zg==",
+ "version": "9.26.2",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.26.2.tgz",
+ "integrity": "sha512-upKXkwlIp5oIhELr4clAZXQkuCd4GDXM6GZEz8BOmRO+PnxyqmycCXvxDxsmi6XN+0vkGM4joiIgkB14o/FctQ==",
"license": "MIT",
"dependencies": {
"@fluentui/react-theme": "^9.2.1",
@@ -2223,16 +1772,16 @@
}
},
"node_modules/@fluentui/react-skeleton": {
- "version": "9.4.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.4.13.tgz",
- "integrity": "sha512-S7n/fdtBXcSNeTTI5VwD7OedMzAruXIHy1/aiSUFMkdzK+BZ2RcDbgW7dXxcTWV617uvE9CagBVkju+XxJHG4g==",
+ "version": "9.7.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.7.1.tgz",
+ "integrity": "sha512-9WniFEe6gbhkZuBurpQNFmMMhP/Ox84Xm9/iu6q8OmnRkFCyZrEuCFlWGDffnBREKIJqE0VJn5ZrUYWMMh45KA==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-field": "^9.5.0",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2244,17 +1793,17 @@
}
},
"node_modules/@fluentui/react-slider": {
- "version": "9.5.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.5.13.tgz",
- "integrity": "sha512-4A6Qs4pqCm5ZohuWuXeq9geZQb/lEXyuCFfgzIz0dGHXKSa8zEsjXfXZvQgz6OS/FcSAMm0ETAVtSDvS38BCjg==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.6.1.tgz",
+ "integrity": "sha512-ytF1gOEho8DrI817H8WCBsck1RXOlW7JRXYtu9VwH3SnDRM2Jz1CNxbou80+BpvyR1KKkvCc/JSgREgUAnkRAQ==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-field": "^9.5.0",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2266,18 +1815,18 @@
}
},
"node_modules/@fluentui/react-spinbutton": {
- "version": "9.5.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.5.13.tgz",
- "integrity": "sha512-/YC74Ikfp8MtxTmQpwaTCTKBRLzTyLbV3hGrGI23d8w7oRvOoAn3NQMZpNSIEtAS/myU8zJDbQg2RvWJ7uWrIA==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.6.1.tgz",
+ "integrity": "sha512-szqGlEfeJYkBzszEWBjj7ux522ckw9YtKAH0CS0Npd0xcY1GFkdywPwJMOoRUhsO08BOhv6P70Wlx0eYqURgIA==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-field": "^9.4.13",
+ "@fluentui/react-field": "^9.5.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2289,16 +1838,16 @@
}
},
"node_modules/@fluentui/react-spinner": {
- "version": "9.7.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.7.13.tgz",
- "integrity": "sha512-+F51WwXVjuc6lvJEz+TLMq2FJ7ttvh3tBNUv/MCFTtq3raJon+bAoM52RxVoLT8PMRtGtYDi0NIsB2F3ULVacA==",
+ "version": "9.8.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.8.1.tgz",
+ "integrity": "sha512-vSM5FwjASEor8NBOJx/1MLp8VCw7+pOJqZSvMn29LrUmMbgSZ6CifZFx0GfiX+1fM0EZ2/pqJzFFHpoQQubAyw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2310,19 +1859,19 @@
}
},
"node_modules/@fluentui/react-swatch-picker": {
- "version": "9.4.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.4.13.tgz",
- "integrity": "sha512-JPPhwNQG4lEdWHit2evJmjPqVh9xGveuqEiS/Uovxvp5R4jpEiinRpDCVndqV7fNWzhSjb1BDUbIQsbGVWHuXQ==",
+ "version": "9.5.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.5.1.tgz",
+ "integrity": "sha512-7rs4dgnFMV2m/2A1tkevrVfThVEJs9crnVWCiSE4XADb9hFp7mqVyN8dKbQCJJMXODLF/Bc90nTCtLV8WaEj4Q==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-field": "^9.4.13",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-field": "^9.5.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2334,19 +1883,19 @@
}
},
"node_modules/@fluentui/react-switch": {
- "version": "9.5.2",
- "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.5.2.tgz",
- "integrity": "sha512-VNnJGBMA+hxv0evjkjehZGXzAFXiKMa/t5MxM1ep3RsqUtL47CXWSDmdG2yUo9eP53LDlv3d0CaFWGdL2WdWcw==",
+ "version": "9.7.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.7.1.tgz",
+ "integrity": "sha512-61zJhxG9UBcZ+5T/Dk9yzOJDCOc2ZMZef/ImgIMB4lVsyWs/3n/ec/PKPwjp9SNz2FhQvayhMytEbGzri00jGw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
+ "@fluentui/react-field": "^9.5.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-label": "^9.3.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-label": "^9.4.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2358,23 +1907,23 @@
}
},
"node_modules/@fluentui/react-table": {
- "version": "9.19.7",
- "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.19.7.tgz",
- "integrity": "sha512-Yv1mR5A5SLO5AAaLDVbg9PzrBYibJR4xjYCYpjX3GG2dkCo2JG9USSNs8sRqHhNcEACRt7SHosZ4ISFCKAwy8g==",
+ "version": "9.19.14",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.19.14.tgz",
+ "integrity": "sha512-IZ3tDqlQDC+R6nzX4thU8A7Aw3BMhbBZ5tgMOHnW733Xfton7wqKiumjsGJBnef3I48mqnBHJZQEzWBgzLsdqg==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-avatar": "^9.9.14",
- "@fluentui/react-checkbox": "^9.5.13",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-avatar": "^9.11.0",
+ "@fluentui/react-checkbox": "^9.6.0",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-radio": "^9.5.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-radio": "^9.6.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2386,17 +1935,17 @@
}
},
"node_modules/@fluentui/react-tabs": {
- "version": "9.11.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.11.0.tgz",
- "integrity": "sha512-n5L5InLH/9R6bPnXc6OtKE1Y3SppBxz4zDwwjRR9D+yMWYG7AhAWcJzERPqZHdjmtaE11YTlbJSu5mzpyuQ8GA==",
+ "version": "9.12.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.12.0.tgz",
+ "integrity": "sha512-gKCi1XNDYRvF6R5wETeQptzQRVBlM7VETaQHS/ue1x7+Vo42MbWMtYOmvqeg5CPjqy2hAwch0IA9bzWEQAm2ZA==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2408,14 +1957,14 @@
}
},
"node_modules/@fluentui/react-tabster": {
- "version": "9.26.12",
- "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.26.12.tgz",
- "integrity": "sha512-CuAZ04Vokfvo3oE2wpceGPOCH8yIeLukuukjzrs6YidOOdmOC75sbnrAWm7I6min3+xLr26XLM50Zh3KDK7row==",
+ "version": "9.26.13",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.26.13.tgz",
+ "integrity": "sha512-uOuJj7jn1ME52Vc685/Ielf6srK/sfFQA5zBIbXIvy2Eisfp7R1RmJe2sXWoszz/Fu/XDkPwdM/GLv23N3vrvQ==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1",
"keyborg": "^2.6.0",
@@ -2429,25 +1978,25 @@
}
},
"node_modules/@fluentui/react-tag-picker": {
- "version": "9.7.15",
- "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.7.15.tgz",
- "integrity": "sha512-YdnufpLBF2b+/GP/tcZP5kXnM0RXUzT42O5aBGSEUOWxg9zuOds5dt7jWON3TCQgL27WwT+EQT2YRllXH4BxlA==",
+ "version": "9.8.5",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.8.5.tgz",
+ "integrity": "sha512-uhZUWDdg7zmQNjb1/5YI3l6agSDg/yFFaYZDH4eQDOmKIm35jAT2GmEMZVomZZVW/dDhZpezfMWZA5r442cZYQ==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-combobox": "^9.16.14",
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-field": "^9.4.13",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-combobox": "^9.17.0",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-field": "^9.5.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-positioning": "^9.20.12",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
- "@fluentui/react-tags": "^9.7.14",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-positioning": "^9.22.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
+ "@fluentui/react-tags": "^9.8.0",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2459,20 +2008,20 @@
}
},
"node_modules/@fluentui/react-tags": {
- "version": "9.7.14",
- "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.7.14.tgz",
- "integrity": "sha512-qdjIF3QSA0JZkeAEsi8D2tl5pBJVjT5b1WA7w0SldenyTVnmRpFhqipEUwc1M4SEwSxZiQhmfhHOG6bdQuPTqg==",
+ "version": "9.8.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.8.0.tgz",
+ "integrity": "sha512-O/Kf8pFgS0/eguzDCPm8FmrPG64dU36xTI1uYKwgF6iVOpmWFjk+7aPQtkoFHQzVwl1iLUL4mQFSutR4A8s38Q==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-avatar": "^9.9.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-avatar": "^9.11.0",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2484,21 +2033,21 @@
}
},
"node_modules/@fluentui/react-teaching-popover": {
- "version": "9.6.15",
- "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.6.15.tgz",
- "integrity": "sha512-l455X7DOVovHjXcTSKakCHnIKyE1t2djjn9g4onMMclNSTw9durJiP7NgZjeni7q3H+fdQH8EC8cPo0h3xoFpA==",
+ "version": "9.6.20",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.6.20.tgz",
+ "integrity": "sha512-XB/SJXdJabulcDBp6z4NNSFOcAnaOoIUZdmzqpx09UxtQwU/eFnYvZw/k1SI8Nc7IpHBgjzId8gHy6jvaN8JHw==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-button": "^9.8.0",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-button": "^9.9.0",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-popover": "^9.13.0",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-popover": "^9.14.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1",
"use-sync-external-store": "^1.2.0"
@@ -2511,15 +2060,15 @@
}
},
"node_modules/@fluentui/react-text": {
- "version": "9.6.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.6.13.tgz",
- "integrity": "sha512-THLXPS5vMx4lU6dZGJw/BvZeaKjOOKUs+z74mBiTPRYlWb94DKYaN2jDMtwVCTxpvIOTz8JJ/pKLJxhG4XWLkw==",
+ "version": "9.6.15",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.6.15.tgz",
+ "integrity": "sha512-YB1azhq8MGfnYTGlEAX1mzcFZ6CvqkkaxaCogU4TM9BtPgQ1YUAxE01RMenl8VVi8W9hNbJKkuc8R8GzYwzT4Q==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2531,16 +2080,16 @@
}
},
"node_modules/@fluentui/react-textarea": {
- "version": "9.6.13",
- "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.6.13.tgz",
- "integrity": "sha512-+aMK5pmSV7tifI7X7uWAZJmSTsF+omqql1kYymRQnwcTkJLmjUN2cNIBV4nRE35TuKwjlzhvovnHNX+KCXv0PA==",
+ "version": "9.7.1",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.7.1.tgz",
+ "integrity": "sha512-YG0j202PRLDLZZDn8QQgREd4Ery2fDYMYb2HUvFdfo6MuSXMvv0RCKEUBCgajIXsHwT31Hsg5+xzM40X4jlOBg==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-field": "^9.4.13",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-field": "^9.5.0",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2562,22 +2111,22 @@
}
},
"node_modules/@fluentui/react-toast": {
- "version": "9.7.11",
- "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.7.11.tgz",
- "integrity": "sha512-iHG+ButeEYoZs7Uw5yicImgJHOGe5cud+bLhdRhn/kse+fddi7LE8R18VlM0yCU2fCM1hEj1lK1zKqdemM9kwQ==",
+ "version": "9.7.16",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.7.16.tgz",
+ "integrity": "sha512-Yq4yJboYqtdL5pNJBIYlSdT/kR6m449O95taJCh/msXJyRgqQZ46EmpTcwsxu3D55LTHbqI6Vxu+AikDYH1W7w==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
+ "@fluentui/react-aria": "^9.17.10",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-motion-components-preview": "^0.15.0",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2589,20 +2138,20 @@
}
},
"node_modules/@fluentui/react-toolbar": {
- "version": "9.7.1",
- "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.7.1.tgz",
- "integrity": "sha512-fzgW+/1kncItmbLIUJ1vvbmo6ONyK3ExSbayQjs8oAMhfjk9VvW8uRODDY6vfh4yogeKX4rlg1S0aiHOgiNi4w==",
- "license": "MIT",
- "dependencies": {
- "@fluentui/react-button": "^9.8.0",
- "@fluentui/react-context-selector": "^9.2.14",
- "@fluentui/react-divider": "^9.6.0",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-radio": "^9.5.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "version": "9.7.7",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.7.7.tgz",
+ "integrity": "sha512-49nrRvGqJfdXhwaKZfNIcTiZSqTbThNG8uCa0FvJ88cO11PRPGcr5s6u3plUVxDXUKXpZJ7PKr/TTA0MvP7yIg==",
+ "license": "MIT",
+ "dependencies": {
+ "@fluentui/react-button": "^9.9.0",
+ "@fluentui/react-context-selector": "^9.2.15",
+ "@fluentui/react-divider": "^9.7.0",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-radio": "^9.6.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2614,19 +2163,19 @@
}
},
"node_modules/@fluentui/react-tooltip": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.9.0.tgz",
- "integrity": "sha512-v7Umx9PvzZ53BEDQmLNysoY+/7NchnsQjUbbWO2EEPWZJp6xKkvDNSrXxm7YzOBorDhNBsIc/FSSdcZcCBqysA==",
+ "version": "9.10.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.10.0.tgz",
+ "integrity": "sha512-+aM0S1mcXy8XKKWgU3TocqTxHjcai7fHns3KwONLJPTp3jXTjyqEoj/o4XX1ka2IM3gdOFfyUU0Gfvw708dn9w==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-portal": "^9.8.10",
- "@fluentui/react-positioning": "^9.20.12",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-portal": "^9.8.11",
+ "@fluentui/react-positioning": "^9.22.0",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2638,26 +2187,26 @@
}
},
"node_modules/@fluentui/react-tree": {
- "version": "9.15.9",
- "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.15.9.tgz",
- "integrity": "sha512-+WXRFwV5TvjBCVYdghuvA73IBvDhzPyPKZurlfxZbAM4m3rAwsvJfbAKCJEnlferkBFPmskAldWcQWYVfryGSg==",
+ "version": "9.15.16",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.15.16.tgz",
+ "integrity": "sha512-WP4WjbF/UWCp0JKaZsMFtah/kXu+mxqN8/kghppRYfVHWzLiMgFAPB/OzrGejLNwx+ai3t2dHOIHxXHnR1jYHA==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-aria": "^9.17.8",
- "@fluentui/react-avatar": "^9.9.14",
- "@fluentui/react-button": "^9.8.0",
- "@fluentui/react-checkbox": "^9.5.13",
- "@fluentui/react-context-selector": "^9.2.14",
+ "@fluentui/react-aria": "^9.17.10",
+ "@fluentui/react-avatar": "^9.11.0",
+ "@fluentui/react-button": "^9.9.0",
+ "@fluentui/react-checkbox": "^9.6.0",
+ "@fluentui/react-context-selector": "^9.2.15",
"@fluentui/react-icons": "^2.0.245",
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-motion": "^9.11.6",
- "@fluentui/react-motion-components-preview": "^0.15.0",
- "@fluentui/react-radio": "^9.5.13",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-tabster": "^9.26.12",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-motion": "^9.14.0",
+ "@fluentui/react-motion-components-preview": "^0.15.3",
+ "@fluentui/react-radio": "^9.6.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-tabster": "^9.26.13",
"@fluentui/react-theme": "^9.2.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2669,13 +2218,13 @@
}
},
"node_modules/@fluentui/react-utilities": {
- "version": "9.26.1",
- "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.26.1.tgz",
- "integrity": "sha512-TCJ7TAQh4Lf4uEdbbFARhq3MqAGoGAsVKNPf/y54NCOsKnKnTHyQUvhIKFGJGxPpiqbLxqKspPEQOVZNL9am1A==",
+ "version": "9.26.2",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.26.2.tgz",
+ "integrity": "sha512-Yp2GGNoWifj8Z/VVir4HyRumRsqXnLJd4IP/Y70vEm9ruAvyqUvfn+1lQUuA+k/Reqw8GI+Ix7FTo3rogixZBg==",
"license": "MIT",
"dependencies": {
"@fluentui/keyboard-keys": "^9.0.8",
- "@fluentui/react-shared-contexts": "^9.26.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
"@swc/helpers": "^0.5.1"
},
"peerDependencies": {
@@ -2684,14 +2233,14 @@
}
},
"node_modules/@fluentui/react-virtualizer": {
- "version": "9.0.0-alpha.109",
- "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.109.tgz",
- "integrity": "sha512-pFnbPQ7VeXFQi2+dBVLscdBkhJ0ez7IIPjqaP1VTyJxqnkVyBoIvtX9Y6cL/eK+6aQ97fQ+ZOVZjnCHSsvoB/g==",
+ "version": "9.0.0-alpha.111",
+ "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.111.tgz",
+ "integrity": "sha512-yku++0779Ve1RNz6y/HWjlXKd2x1wCSbWMydT2IdCICBVwolXjPYMpkqqZUSjbJ0N9gl6BfsCBpU9Dfe2bR8Zg==",
"license": "MIT",
"dependencies": {
- "@fluentui/react-jsx-runtime": "^9.3.5",
- "@fluentui/react-shared-contexts": "^9.26.1",
- "@fluentui/react-utilities": "^9.26.1",
+ "@fluentui/react-jsx-runtime": "^9.4.1",
+ "@fluentui/react-shared-contexts": "^9.26.2",
+ "@fluentui/react-utilities": "^9.26.2",
"@griffel/react": "^1.5.32",
"@swc/helpers": "^0.5.1"
},
@@ -2726,9 +2275,9 @@
}
},
"node_modules/@fluentui/style-utilities": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.14.0.tgz",
- "integrity": "sha512-8IZIjhP9eFHPSn8qVy/sO0QJe29J1xbwqhQlZw2JSC/OcLexm4GvCCQisDuKLUvlN7I0uGRhrCEJsCs3Xkbarw==",
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.15.0.tgz",
+ "integrity": "sha512-g+hmc2z5iHMI1j4DqihYSws9ERzuT44mjfNGE1ywYqCB8MAzNzAPpyiosWOtI4cWZUQfnqzokpdSKkYF3quM8A==",
"license": "MIT",
"dependencies": {
"@fluentui/merge-styles": "^8.6.14",
@@ -2782,13 +2331,13 @@
}
},
"node_modules/@griffel/core": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.19.2.tgz",
- "integrity": "sha512-WkB/QQkjy9dE4vrNYGhQvRRUHFkYVOuaznVOMNTDT4pS9aTJ9XPrMTXXlkpcwaf0D3vNKoerj4zAwnU2lBzbOg==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.20.1.tgz",
+ "integrity": "sha512-ld1mX04zpmeHn8agx4slSEh8kJ+8or3Y0x9gsJNKSKn6GdCkZBSiGUh+oBXCBn8RKzz8l60TA9IhVSStnyKekA==",
"license": "MIT",
"dependencies": {
"@emotion/hash": "^0.9.0",
- "@griffel/style-types": "^1.3.0",
+ "@griffel/style-types": "^1.4.0",
"csstype": "^3.1.3",
"rtl-css-js": "^1.16.1",
"stylis": "^4.2.0",
@@ -2796,12 +2345,12 @@
}
},
"node_modules/@griffel/react": {
- "version": "1.5.32",
- "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.32.tgz",
- "integrity": "sha512-jN3SmSwAUcWFUQuQ9jlhqZ5ELtKY21foaUR0q1mJtiAeSErVgjkpKJyMLRYpvaFGWrDql0Uz23nXUogXbsS2wQ==",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.6.1.tgz",
+ "integrity": "sha512-mNM4/+dIXzqeHboWpVZ1/jiwTAYNc5/8y/V/HasnQ2QXnV6gSUYpeUk/0n6IFU3NJmVJly9JrLSfNo0hM/IFeA==",
"license": "MIT",
"dependencies": {
- "@griffel/core": "^1.19.2",
+ "@griffel/core": "^1.20.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
@@ -2809,50 +2358,50 @@
}
},
"node_modules/@griffel/style-types": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.3.0.tgz",
- "integrity": "sha512-bHwD3sUE84Xwv4dH011gOKe1jul77M1S6ZFN9Tnq8pvZ48UMdY//vtES6fv7GRS5wXYT4iqxQPBluAiYAfkpmw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.4.0.tgz",
+ "integrity": "sha512-vNDfOGV7RN/XkA7vxgf7Z5HgW8eiBm5cHT9wQPhsKB4pxWom5u6eQ9CkYE5mCCTSPl9H6Nd1NBai04d4P6BD7Q==",
"license": "MIT",
"dependencies": {
"csstype": "^3.1.3"
}
},
"node_modules/@humanfs/core": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
+ "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==",
"dev": true,
"license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/types": "^0.15.0"
+ },
"engines": {
"node": ">=18.18.0"
}
},
"node_modules/@humanfs/node": {
- "version": "0.16.6",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
- "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz",
+ "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@humanfs/core": "^0.19.1",
- "@humanwhocodes/retry": "^0.3.0"
+ "@humanfs/core": "^0.19.2",
+ "@humanfs/types": "^0.15.0",
+ "@humanwhocodes/retry": "^0.4.0"
},
"engines": {
"node": ">=18.18.0"
}
},
- "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
- "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
+ "node_modules/@humanfs/types": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz",
+ "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==",
"dev": true,
"license": "Apache-2.0",
"engines": {
- "node": ">=18.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
+ "node": ">=18.18.0"
}
},
"node_modules/@humanwhocodes/module-importer": {
@@ -2884,102 +2433,387 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.12",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
- "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"license": "MIT",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0",
"@jridgewell/trace-mapping": "^0.3.24"
}
},
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
- "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@microsoft/load-themed-styles": {
+ "version": "1.10.295",
+ "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.295.tgz",
+ "integrity": "sha512-W+IzEBw8a6LOOfRJM02dTT7BDZijxm+Z7lhtOAz1+y9vQm1Kdz9jlAO+qCEKsfxtUOmKilW8DIRqFw2aUgKeGg==",
+ "license": "MIT"
+ },
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
+ "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@tybys/wasm-util": "^0.10.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ },
+ "peerDependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1"
+ }
+ },
+ "node_modules/@oxc-project/types": {
+ "version": "0.126.0",
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.126.0.tgz",
+ "integrity": "sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ }
+ },
+ "node_modules/@radix-ui/react-icons": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz",
+ "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/@reduxjs/toolkit": {
+ "version": "2.11.2",
+ "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
+ "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@standard-schema/spec": "^1.0.0",
+ "@standard-schema/utils": "^0.3.0",
+ "immer": "^11.0.0",
+ "redux": "^5.0.1",
+ "redux-thunk": "^3.1.0",
+ "reselect": "^5.1.0"
+ },
+ "peerDependencies": {
+ "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
+ "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ },
+ "react-redux": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rolldown/binding-android-arm64": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.16.tgz",
+ "integrity": "sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-darwin-arm64": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.16.tgz",
+ "integrity": "sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-darwin-x64": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.16.tgz",
+ "integrity": "sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-freebsd-x64": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.16.tgz",
+ "integrity": "sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.16.tgz",
+ "integrity": "sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.16.tgz",
+ "integrity": "sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.16.tgz",
+ "integrity": "sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.16.tgz",
+ "integrity": "sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.16.tgz",
+ "integrity": "sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.16.tgz",
+ "integrity": "sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-x64-musl": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.16.tgz",
+ "integrity": "sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "node_modules/@rolldown/binding-openharmony-arm64": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.16.tgz",
+ "integrity": "sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
"engines": {
- "node": ">=6.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.29",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz",
- "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==",
+ "node_modules/@rolldown/binding-wasm32-wasi": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.16.tgz",
+ "integrity": "sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "@emnapi/core": "1.9.2",
+ "@emnapi/runtime": "1.9.2",
+ "@napi-rs/wasm-runtime": "^1.1.4"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@microsoft/load-themed-styles": {
- "version": "1.10.295",
- "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.295.tgz",
- "integrity": "sha512-W+IzEBw8a6LOOfRJM02dTT7BDZijxm+Z7lhtOAz1+y9vQm1Kdz9jlAO+qCEKsfxtUOmKilW8DIRqFw2aUgKeGg==",
- "license": "MIT"
- },
- "node_modules/@radix-ui/react-icons": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz",
- "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==",
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.16.tgz",
+ "integrity": "sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
"license": "MIT",
- "peerDependencies": {
- "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc"
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@reduxjs/toolkit": {
- "version": "2.11.2",
- "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
- "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.16.tgz",
+ "integrity": "sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@standard-schema/spec": "^1.0.0",
- "@standard-schema/utils": "^0.3.0",
- "immer": "^11.0.0",
- "redux": "^5.0.1",
- "redux-thunk": "^3.1.0",
- "reselect": "^5.1.0"
- },
- "peerDependencies": {
- "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
- "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-redux": {
- "optional": true
- }
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-beta.53",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz",
- "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==",
+ "version": "1.0.0-rc.7",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz",
+ "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==",
"dev": true,
"license": "MIT"
},
"node_modules/@rollup/pluginutils": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.2.0.tgz",
- "integrity": "sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
+ "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3000,12 +2834,13 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz",
- "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz",
+ "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==",
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3013,12 +2848,13 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz",
- "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz",
+ "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==",
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3026,12 +2862,13 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz",
- "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz",
+ "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==",
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3039,12 +2876,13 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz",
- "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz",
+ "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==",
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3052,12 +2890,13 @@
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz",
- "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz",
+ "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==",
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3065,12 +2904,13 @@
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz",
- "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz",
+ "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==",
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3078,12 +2918,13 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz",
- "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz",
+ "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==",
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3091,12 +2932,13 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz",
- "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz",
+ "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==",
"cpu": [
"arm"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3104,12 +2946,13 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz",
- "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz",
+ "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==",
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3117,12 +2960,13 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz",
- "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz",
+ "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==",
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3130,12 +2974,13 @@
]
},
"node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz",
- "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz",
+ "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==",
"cpu": [
"loong64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3143,12 +2988,13 @@
]
},
"node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz",
- "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz",
+ "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==",
"cpu": [
"loong64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3156,12 +3002,13 @@
]
},
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz",
- "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz",
+ "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==",
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3169,12 +3016,13 @@
]
},
"node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz",
- "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz",
+ "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==",
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3182,12 +3030,13 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz",
- "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz",
+ "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==",
"cpu": [
"riscv64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3195,12 +3044,13 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz",
- "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz",
+ "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==",
"cpu": [
"riscv64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3208,12 +3058,13 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz",
- "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz",
+ "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==",
"cpu": [
"s390x"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3221,12 +3072,13 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.53.3",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz",
- "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz",
+ "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==",
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3234,12 +3086,13 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz",
- "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz",
+ "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==",
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3247,12 +3100,13 @@
]
},
"node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz",
- "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz",
+ "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==",
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3260,12 +3114,13 @@
]
},
"node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz",
- "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz",
+ "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==",
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3273,12 +3128,13 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz",
- "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz",
+ "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==",
"cpu": [
"arm64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3286,12 +3142,13 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz",
- "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz",
+ "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==",
"cpu": [
"ia32"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3299,12 +3156,13 @@
]
},
"node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz",
- "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz",
+ "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==",
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3312,12 +3170,13 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz",
- "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz",
+ "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==",
"cpu": [
"x64"
],
+ "dev": true,
"license": "MIT",
"optional": true,
"os": [
@@ -3325,9 +3184,9 @@
]
},
"node_modules/@standard-schema/spec": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz",
- "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
"license": "MIT"
},
"node_modules/@standard-schema/utils": {
@@ -3562,56 +3421,56 @@
}
},
"node_modules/@swc/helpers": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz",
+ "integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.8.0"
}
},
"node_modules/@tailwindcss/node": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz",
- "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz",
+ "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==",
"license": "MIT",
"dependencies": {
- "@jridgewell/remapping": "^2.3.4",
- "enhanced-resolve": "^5.18.3",
+ "@jridgewell/remapping": "^2.3.5",
+ "enhanced-resolve": "^5.19.0",
"jiti": "^2.6.1",
- "lightningcss": "1.30.2",
+ "lightningcss": "1.32.0",
"magic-string": "^0.30.21",
"source-map-js": "^1.2.1",
- "tailwindcss": "4.1.18"
+ "tailwindcss": "4.2.2"
}
},
"node_modules/@tailwindcss/oxide": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz",
- "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz",
+ "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==",
"license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
},
"optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.1.18",
- "@tailwindcss/oxide-darwin-arm64": "4.1.18",
- "@tailwindcss/oxide-darwin-x64": "4.1.18",
- "@tailwindcss/oxide-freebsd-x64": "4.1.18",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18",
- "@tailwindcss/oxide-linux-arm64-musl": "4.1.18",
- "@tailwindcss/oxide-linux-x64-gnu": "4.1.18",
- "@tailwindcss/oxide-linux-x64-musl": "4.1.18",
- "@tailwindcss/oxide-wasm32-wasi": "4.1.18",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18",
- "@tailwindcss/oxide-win32-x64-msvc": "4.1.18"
+ "@tailwindcss/oxide-android-arm64": "4.2.2",
+ "@tailwindcss/oxide-darwin-arm64": "4.2.2",
+ "@tailwindcss/oxide-darwin-x64": "4.2.2",
+ "@tailwindcss/oxide-freebsd-x64": "4.2.2",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.2.2",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.2.2",
+ "@tailwindcss/oxide-linux-x64-musl": "4.2.2",
+ "@tailwindcss/oxide-wasm32-wasi": "4.2.2",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.2.2"
}
},
"node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz",
- "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz",
+ "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==",
"cpu": [
"arm64"
],
@@ -3621,13 +3480,13 @@
"android"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz",
- "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz",
+ "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==",
"cpu": [
"arm64"
],
@@ -3637,13 +3496,13 @@
"darwin"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz",
- "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz",
+ "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==",
"cpu": [
"x64"
],
@@ -3653,13 +3512,13 @@
"darwin"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz",
- "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz",
+ "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==",
"cpu": [
"x64"
],
@@ -3669,13 +3528,13 @@
"freebsd"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz",
- "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz",
+ "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==",
"cpu": [
"arm"
],
@@ -3685,13 +3544,13 @@
"linux"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz",
- "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz",
+ "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==",
"cpu": [
"arm64"
],
@@ -3701,13 +3560,13 @@
"linux"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz",
- "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz",
+ "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==",
"cpu": [
"arm64"
],
@@ -3717,13 +3576,13 @@
"linux"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz",
- "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz",
+ "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==",
"cpu": [
"x64"
],
@@ -3733,13 +3592,13 @@
"linux"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz",
- "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz",
+ "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==",
"cpu": [
"x64"
],
@@ -3749,13 +3608,13 @@
"linux"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz",
- "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz",
+ "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==",
"bundleDependencies": [
"@napi-rs/wasm-runtime",
"@emnapi/core",
@@ -3770,75 +3629,21 @@
"license": "MIT",
"optional": true,
"dependencies": {
- "@emnapi/core": "^1.7.1",
- "@emnapi/runtime": "^1.7.1",
+ "@emnapi/core": "^1.8.1",
+ "@emnapi/runtime": "^1.8.1",
"@emnapi/wasi-threads": "^1.1.0",
- "@napi-rs/wasm-runtime": "^1.1.0",
+ "@napi-rs/wasm-runtime": "^1.1.1",
"@tybys/wasm-util": "^0.10.1",
- "tslib": "^2.4.0"
+ "tslib": "^2.8.1"
},
"engines": {
"node": ">=14.0.0"
}
},
- "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": {
- "version": "1.7.1",
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/wasi-threads": "1.1.0",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": {
- "version": "1.7.1",
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": {
- "version": "1.1.0",
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": {
- "version": "1.1.0",
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/core": "^1.7.1",
- "@emnapi/runtime": "^1.7.1",
- "@tybys/wasm-util": "^0.10.1"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": {
- "version": "0.10.1",
- "inBundle": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": {
- "version": "2.8.1",
- "inBundle": true,
- "license": "0BSD",
- "optional": true
- },
"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz",
- "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz",
+ "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==",
"cpu": [
"arm64"
],
@@ -3848,13 +3653,13 @@
"win32"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz",
- "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz",
+ "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==",
"cpu": [
"x64"
],
@@ -3864,85 +3669,58 @@
"win32"
],
"engines": {
- "node": ">= 10"
+ "node": ">= 20"
}
},
"node_modules/@tailwindcss/postcss": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.18.tgz",
- "integrity": "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.2.tgz",
+ "integrity": "sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==",
"license": "MIT",
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
- "@tailwindcss/node": "4.1.18",
- "@tailwindcss/oxide": "4.1.18",
- "postcss": "^8.4.41",
- "tailwindcss": "4.1.18"
+ "@tailwindcss/node": "4.2.2",
+ "@tailwindcss/oxide": "4.2.2",
+ "postcss": "^8.5.6",
+ "tailwindcss": "4.2.2"
}
},
"node_modules/@tailwindcss/vite": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz",
- "integrity": "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz",
+ "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==",
"license": "MIT",
"dependencies": {
- "@tailwindcss/node": "4.1.18",
- "@tailwindcss/oxide": "4.1.18",
- "tailwindcss": "4.1.18"
+ "@tailwindcss/node": "4.2.2",
+ "@tailwindcss/oxide": "4.2.2",
+ "tailwindcss": "4.2.2"
},
"peerDependencies": {
- "vite": "^5.2.0 || ^6 || ^7"
- }
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.6.8",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
- "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.0.0"
+ "vite": "^5.2.0 || ^6 || ^7 || ^8"
}
},
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "dev": true,
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@types/babel__traverse": {
- "version": "7.20.6",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
- "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
+ "node_modules/@types/esrecurse": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
+ "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.20.7"
- }
+ "license": "MIT"
},
"node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
"license": "MIT"
},
"node_modules/@types/hast": {
@@ -3968,15 +3746,15 @@
"license": "MIT"
},
"node_modules/@types/prismjs": {
- "version": "1.26.5",
- "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz",
- "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==",
+ "version": "1.26.6",
+ "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.6.tgz",
+ "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==",
"license": "MIT"
},
"node_modules/@types/react": {
- "version": "19.2.10",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.10.tgz",
- "integrity": "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==",
+ "version": "19.2.14",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
+ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
"license": "MIT",
"dependencies": {
"csstype": "^3.2.2"
@@ -3986,6 +3764,7 @@
"version": "19.2.3",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
+ "dev": true,
"license": "MIT",
"peerDependencies": {
"@types/react": "^19.2.0"
@@ -4025,30 +3804,35 @@
"license": "MIT"
},
"node_modules/@vitejs/plugin-react": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz",
- "integrity": "sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz",
+ "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/core": "^7.28.5",
- "@babel/plugin-transform-react-jsx-self": "^7.27.1",
- "@babel/plugin-transform-react-jsx-source": "^7.27.1",
- "@rolldown/pluginutils": "1.0.0-beta.53",
- "@types/babel__core": "^7.20.5",
- "react-refresh": "^0.18.0"
+ "@rolldown/pluginutils": "1.0.0-rc.7"
},
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"peerDependencies": {
- "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0",
+ "babel-plugin-react-compiler": "^1.0.0",
+ "vite": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@rolldown/plugin-babel": {
+ "optional": true
+ },
+ "babel-plugin-react-compiler": {
+ "optional": true
+ }
}
},
"node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -4069,9 +3853,9 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4085,22 +3869,6 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -4125,18 +3893,20 @@
}
},
"node_modules/array-includes": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
+ "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "is-string": "^1.0.7"
+ "es-abstract": "^1.24.0",
+ "es-object-atoms": "^1.1.1",
+ "get-intrinsic": "^1.3.0",
+ "is-string": "^1.1.1",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -4269,9 +4039,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.24",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.24.tgz",
- "integrity": "sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==",
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz",
+ "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==",
"funding": [
{
"type": "opencollective",
@@ -4288,8 +4058,8 @@
],
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
- "caniuse-lite": "^1.0.30001766",
+ "browserslist": "^4.28.2",
+ "caniuse-lite": "^1.0.30001787",
"fraction.js": "^5.3.4",
"picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
@@ -4321,9 +4091,9 @@
}
},
"node_modules/axios": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz",
- "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==",
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.1.tgz",
+ "integrity": "sha512-WOG+Jj8ZOvR0a3rAn+Tuf1UQJRxw5venr6DgdbJzngJE3qG7X0kL83CZGpdHMxEm+ZK3seAbvFsw4FfOfP9vxg==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.11",
@@ -4339,18 +4109,21 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.9.11",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz",
- "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==",
+ "version": "2.10.20",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.20.tgz",
+ "integrity": "sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==",
"license": "Apache-2.0",
"bin": {
- "baseline-browser-mapping": "dist/cli.js"
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
"node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
+ "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4359,9 +4132,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.28.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
- "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "version": "4.28.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
+ "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
"funding": [
{
"type": "opencollective",
@@ -4378,11 +4151,11 @@
],
"license": "MIT",
"dependencies": {
- "baseline-browser-mapping": "^2.9.0",
- "caniuse-lite": "^1.0.30001759",
- "electron-to-chromium": "^1.5.263",
- "node-releases": "^2.0.27",
- "update-browserslist-db": "^1.2.0"
+ "baseline-browser-mapping": "^2.10.12",
+ "caniuse-lite": "^1.0.30001782",
+ "electron-to-chromium": "^1.5.328",
+ "node-releases": "^2.0.36",
+ "update-browserslist-db": "^1.2.3"
},
"bin": {
"browserslist": "cli.js"
@@ -4392,15 +4165,15 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz",
+ "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "get-intrinsic": "^1.3.0",
"set-function-length": "^1.2.2"
},
"engines": {
@@ -4464,9 +4237,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001766",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz",
- "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==",
+ "version": "1.0.30001788",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz",
+ "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==",
"funding": [
{
"type": "opencollective",
@@ -4475,30 +4248,13 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/character-entities": {
"version": "2.0.2",
@@ -4551,26 +4307,6 @@
"node": ">=6"
}
},
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -4593,6 +4329,12 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "license": "MIT"
+ },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -4723,9 +4465,9 @@
}
},
"node_modules/debug": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
- "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4741,9 +4483,9 @@
}
},
"node_modules/decode-named-character-reference": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz",
- "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz",
+ "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==",
"license": "MIT",
"dependencies": {
"character-entities": "^2.0.0"
@@ -4806,9 +4548,9 @@
}
},
"node_modules/detect-libc": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=8"
@@ -4859,9 +4601,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.267",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
- "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
+ "version": "1.5.340",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.340.tgz",
+ "integrity": "sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==",
"license": "ISC"
},
"node_modules/embla-carousel": {
@@ -4889,13 +4631,13 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.18.4",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz",
- "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==",
+ "version": "5.20.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
+ "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
+ "tapable": "^2.3.0"
},
"engines": {
"node": ">=10.13.0"
@@ -4915,9 +4657,9 @@
}
},
"node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4925,9 +4667,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.23.9",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
- "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "version": "1.24.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz",
+ "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4935,18 +4677,18 @@
"arraybuffer.prototype.slice": "^1.0.4",
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bound": "^1.0.4",
"data-view-buffer": "^1.0.2",
"data-view-byte-length": "^1.0.2",
"data-view-byte-offset": "^1.0.1",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
+ "es-object-atoms": "^1.1.1",
"es-set-tostringtag": "^2.1.0",
"es-to-primitive": "^1.3.0",
"function.prototype.name": "^1.1.8",
- "get-intrinsic": "^1.2.7",
- "get-proto": "^1.0.0",
+ "get-intrinsic": "^1.3.0",
+ "get-proto": "^1.0.1",
"get-symbol-description": "^1.1.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
@@ -4958,21 +4700,24 @@
"is-array-buffer": "^3.0.5",
"is-callable": "^1.2.7",
"is-data-view": "^1.0.2",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.2.1",
+ "is-set": "^2.0.3",
"is-shared-array-buffer": "^1.0.4",
"is-string": "^1.1.1",
"is-typed-array": "^1.1.15",
- "is-weakref": "^1.1.0",
+ "is-weakref": "^1.1.1",
"math-intrinsics": "^1.1.0",
- "object-inspect": "^1.13.3",
+ "object-inspect": "^1.13.4",
"object-keys": "^1.1.1",
"object.assign": "^4.1.7",
"own-keys": "^1.0.1",
- "regexp.prototype.flags": "^1.5.3",
+ "regexp.prototype.flags": "^1.5.4",
"safe-array-concat": "^1.1.3",
"safe-push-apply": "^1.0.0",
"safe-regex-test": "^1.1.0",
"set-proto": "^1.0.0",
+ "stop-iteration-iterator": "^1.1.0",
"string.prototype.trim": "^1.2.10",
"string.prototype.trimend": "^1.0.9",
"string.prototype.trimstart": "^1.0.8",
@@ -4981,7 +4726,7 @@
"typed-array-byte-offset": "^1.0.4",
"typed-array-length": "^1.0.7",
"unbox-primitive": "^1.1.0",
- "which-typed-array": "^1.1.18"
+ "which-typed-array": "^1.1.19"
},
"engines": {
"node": ">= 0.4"
@@ -5009,28 +4754,28 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
- "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz",
+ "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bind": "^1.0.9",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
+ "es-abstract": "^1.24.2",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
+ "es-set-tostringtag": "^2.1.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.6",
+ "get-intrinsic": "^1.3.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
"has-proto": "^1.2.0",
"has-symbols": "^1.1.0",
"internal-slot": "^1.1.0",
- "iterator.prototype": "^1.1.4",
- "safe-array-concat": "^1.1.3"
+ "iterator.prototype": "^1.1.5",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -5064,13 +4809,16 @@
}
},
"node_modules/es-shim-unscopables": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "hasown": "^2.0.0"
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/es-to-primitive": {
@@ -5091,47 +4839,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/esbuild": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz",
- "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.27.2",
- "@esbuild/android-arm": "0.27.2",
- "@esbuild/android-arm64": "0.27.2",
- "@esbuild/android-x64": "0.27.2",
- "@esbuild/darwin-arm64": "0.27.2",
- "@esbuild/darwin-x64": "0.27.2",
- "@esbuild/freebsd-arm64": "0.27.2",
- "@esbuild/freebsd-x64": "0.27.2",
- "@esbuild/linux-arm": "0.27.2",
- "@esbuild/linux-arm64": "0.27.2",
- "@esbuild/linux-ia32": "0.27.2",
- "@esbuild/linux-loong64": "0.27.2",
- "@esbuild/linux-mips64el": "0.27.2",
- "@esbuild/linux-ppc64": "0.27.2",
- "@esbuild/linux-riscv64": "0.27.2",
- "@esbuild/linux-s390x": "0.27.2",
- "@esbuild/linux-x64": "0.27.2",
- "@esbuild/netbsd-arm64": "0.27.2",
- "@esbuild/netbsd-x64": "0.27.2",
- "@esbuild/openbsd-arm64": "0.27.2",
- "@esbuild/openbsd-x64": "0.27.2",
- "@esbuild/openharmony-arm64": "0.27.2",
- "@esbuild/sunos-x64": "0.27.2",
- "@esbuild/win32-arm64": "0.27.2",
- "@esbuild/win32-ia32": "0.27.2",
- "@esbuild/win32-x64": "0.27.2"
- }
- },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -5155,33 +4862,30 @@
}
},
"node_modules/eslint": {
- "version": "9.39.2",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz",
- "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.1.tgz",
+ "integrity": "sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
- "@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.21.1",
- "@eslint/config-helpers": "^0.4.2",
- "@eslint/core": "^0.17.0",
- "@eslint/eslintrc": "^3.3.1",
- "@eslint/js": "9.39.2",
- "@eslint/plugin-kit": "^0.4.1",
+ "@eslint-community/regexpp": "^4.12.2",
+ "@eslint/config-array": "^0.23.5",
+ "@eslint/config-helpers": "^0.5.5",
+ "@eslint/core": "^1.2.1",
+ "@eslint/plugin-kit": "^0.7.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
"@types/estree": "^1.0.6",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
+ "ajv": "^6.14.0",
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.4.0",
- "eslint-visitor-keys": "^4.2.1",
- "espree": "^10.4.0",
- "esquery": "^1.5.0",
+ "eslint-scope": "^9.1.2",
+ "eslint-visitor-keys": "^5.0.1",
+ "espree": "^11.2.0",
+ "esquery": "^1.7.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^8.0.0",
@@ -5191,8 +4895,7 @@
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
+ "minimatch": "^10.2.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.3"
},
@@ -5200,7 +4903,7 @@
"eslint": "bin/eslint.js"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
"url": "https://eslint.org/donate"
@@ -5248,9 +4951,9 @@
}
},
"node_modules/eslint-plugin-react-hooks": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz",
- "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz",
+ "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5264,71 +4967,73 @@
"node": ">=18"
},
"peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0"
}
},
"node_modules/eslint-plugin-react-refresh": {
- "version": "0.4.26",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz",
- "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.2.tgz",
+ "integrity": "sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==",
"dev": true,
"license": "MIT",
"peerDependencies": {
- "eslint": ">=8.40"
+ "eslint": "^9 || ^10"
}
},
"node_modules/eslint-scope": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
- "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz",
+ "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
+ "@types/esrecurse": "^4.3.1",
+ "@types/estree": "^1.0.8",
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-visitor-keys": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
- "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/espree": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
- "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz",
+ "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.15.0",
+ "acorn": "^8.16.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.2.1"
+ "eslint-visitor-keys": "^5.0.1"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ "node": "^20.19.0 || ^22.13.0 || >=24"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/esquery": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -5416,6 +5121,7 @@
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=12.0.0"
@@ -5493,9 +5199,9 @@
"license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.11",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
- "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
+ "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
"funding": [
{
"type": "individual",
@@ -5513,9 +5219,9 @@
}
},
"node_modules/for-each": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz",
- "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==",
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5569,6 +5275,7 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
@@ -5619,6 +5326,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/generator-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
+ "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -5698,9 +5415,9 @@
}
},
"node_modules/globals": {
- "version": "17.3.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-17.3.0.tgz",
- "integrity": "sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==",
+ "version": "17.5.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz",
+ "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5758,16 +5475,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/has-property-descriptors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
@@ -5825,9 +5532,9 @@
}
},
"node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
+ "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -5909,9 +5616,9 @@
}
},
"node_modules/immer": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/immer/-/immer-11.0.1.tgz",
- "integrity": "sha512-naDCyggtcBWANtIrjQEajhhBEuL9b0Zg4zmlWK2CzS6xCWSE39/vvf4LqnMjUAWHBhot4m9MHCM/Z+mfWhUkiA==",
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz",
+ "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==",
"license": "MIT",
"funding": {
"type": "opencollective",
@@ -6163,14 +5870,15 @@
}
},
"node_modules/is-generator-function": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
- "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
+ "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.3",
- "get-proto": "^1.0.0",
+ "call-bound": "^1.0.4",
+ "generator-function": "^2.0.0",
+ "get-proto": "^1.0.1",
"has-tostringtag": "^1.0.2",
"safe-regex-test": "^1.1.0"
},
@@ -6217,6 +5925,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-number-object": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
@@ -6540,9 +6261,9 @@
}
},
"node_modules/lightningcss": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz",
- "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
"license": "MPL-2.0",
"dependencies": {
"detect-libc": "^2.0.3"
@@ -6555,23 +6276,23 @@
"url": "https://opencollective.com/parcel"
},
"optionalDependencies": {
- "lightningcss-android-arm64": "1.30.2",
- "lightningcss-darwin-arm64": "1.30.2",
- "lightningcss-darwin-x64": "1.30.2",
- "lightningcss-freebsd-x64": "1.30.2",
- "lightningcss-linux-arm-gnueabihf": "1.30.2",
- "lightningcss-linux-arm64-gnu": "1.30.2",
- "lightningcss-linux-arm64-musl": "1.30.2",
- "lightningcss-linux-x64-gnu": "1.30.2",
- "lightningcss-linux-x64-musl": "1.30.2",
- "lightningcss-win32-arm64-msvc": "1.30.2",
- "lightningcss-win32-x64-msvc": "1.30.2"
+ "lightningcss-android-arm64": "1.32.0",
+ "lightningcss-darwin-arm64": "1.32.0",
+ "lightningcss-darwin-x64": "1.32.0",
+ "lightningcss-freebsd-x64": "1.32.0",
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
+ "lightningcss-linux-arm64-gnu": "1.32.0",
+ "lightningcss-linux-arm64-musl": "1.32.0",
+ "lightningcss-linux-x64-gnu": "1.32.0",
+ "lightningcss-linux-x64-musl": "1.32.0",
+ "lightningcss-win32-arm64-msvc": "1.32.0",
+ "lightningcss-win32-x64-msvc": "1.32.0"
}
},
"node_modules/lightningcss-android-arm64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz",
- "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
"cpu": [
"arm64"
],
@@ -6589,9 +6310,9 @@
}
},
"node_modules/lightningcss-darwin-arm64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz",
- "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
"cpu": [
"arm64"
],
@@ -6609,9 +6330,9 @@
}
},
"node_modules/lightningcss-darwin-x64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz",
- "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
"cpu": [
"x64"
],
@@ -6629,9 +6350,9 @@
}
},
"node_modules/lightningcss-freebsd-x64": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz",
- "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
"cpu": [
"x64"
],
@@ -6649,9 +6370,9 @@
}
},
"node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz",
- "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
"cpu": [
"arm"
],
@@ -6669,9 +6390,9 @@
}
},
"node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz",
- "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
"cpu": [
"arm64"
],
@@ -6689,9 +6410,9 @@
}
},
"node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz",
- "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
"cpu": [
"arm64"
],
@@ -6709,9 +6430,9 @@
}
},
"node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz",
- "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
"cpu": [
"x64"
],
@@ -6729,9 +6450,9 @@
}
},
"node_modules/lightningcss-linux-x64-musl": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz",
- "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
"cpu": [
"x64"
],
@@ -6749,9 +6470,9 @@
}
},
"node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz",
- "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
"cpu": [
"arm64"
],
@@ -6769,9 +6490,9 @@
}
},
"node_modules/lightningcss-win32-x64-msvc": {
- "version": "1.30.2",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz",
- "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==",
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
"cpu": [
"x64"
],
@@ -6811,13 +6532,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -6865,9 +6579,9 @@
}
},
"node_modules/lucide-react": {
- "version": "0.563.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.563.0.tgz",
- "integrity": "sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.8.0.tgz",
+ "integrity": "sha512-WuvlsjngSk7TnTBJ1hsCy3ql9V9VOdcPkd3PKcSmM34vJD8KG6molxz7m7zbYFgICwsanQWmJ13JlYs4Zp7Arw==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -6913,9 +6627,9 @@
}
},
"node_modules/minimatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.3.tgz",
- "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6926,9 +6640,9 @@
}
},
"node_modules/moo": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz",
- "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.3.tgz",
+ "integrity": "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==",
"license": "BSD-3-Clause"
},
"node_modules/ms": {
@@ -6985,12 +6699,6 @@
"url": "https://nearley.js.org/#give-to-nearley"
}
},
- "node_modules/nearley/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "license": "MIT"
- },
"node_modules/no-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
@@ -7002,10 +6710,29 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/node-exports-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz",
+ "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array.prototype.flatmap": "^1.3.3",
+ "es-errors": "^1.3.0",
+ "object.entries": "^1.1.9",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/node-releases": {
- "version": "2.0.27",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
- "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "version": "2.0.37",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz",
+ "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==",
"license": "MIT"
},
"node_modules/object-assign": {
@@ -7287,6 +7014,7 @@
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
@@ -7296,9 +7024,9 @@
}
},
"node_modules/possible-typed-array-names": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
- "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7306,9 +7034,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "version": "8.5.10",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz",
+ "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==",
"funding": [
{
"type": "opencollective",
@@ -7369,12 +7097,6 @@
"react-is": "^16.13.1"
}
},
- "node_modules/prop-types/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "license": "MIT"
- },
"node_modules/property-information": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
@@ -7424,30 +7146,30 @@
}
},
"node_modules/react": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
- "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
+ "version": "19.2.5",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
+ "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
- "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
+ "version": "19.2.5",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
+ "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
- "react": "^19.2.4"
+ "react": "^19.2.5"
}
},
"node_modules/react-dropzone": {
- "version": "14.4.0",
- "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.4.0.tgz",
- "integrity": "sha512-8VvsHqg9WGAr+wAnP0oVErK5HOwAoTOzRsxLPzbBXrtXtFfukkxMyuvdI/lJ+5OxtsrzmvWE5Eoo3Y4hMsaxpA==",
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-15.0.0.tgz",
+ "integrity": "sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg==",
"license": "MIT",
"dependencies": {
"attr-accept": "^2.2.4",
@@ -7462,18 +7184,18 @@
}
},
"node_modules/react-icons": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz",
- "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==",
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.6.0.tgz",
+ "integrity": "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA==",
"license": "MIT",
"peerDependencies": {
"react": "*"
}
},
"node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
"node_modules/react-redux": {
@@ -7499,20 +7221,10 @@
}
}
},
- "node_modules/react-refresh": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz",
- "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/react-router": {
- "version": "7.13.0",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.0.tgz",
- "integrity": "sha512-PZgus8ETambRT17BUm/LL8lX3Of+oiLaPuVTRH3l1eLvSPpKO3AvhAEb5N7ihAFZQrYDqkvvWfFh9p0z9VsjLw==",
+ "version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.14.1.tgz",
+ "integrity": "sha512-5BCvFskyAAVumqhEKh/iPhLOIkfxcEUz8WqFIARCkMg8hZZzDYX9CtwxXA0e+qT8zAxmMC0x3Ckb9iMONwc5jg==",
"license": "MIT",
"dependencies": {
"cookie": "^1.0.1",
@@ -7532,12 +7244,12 @@
}
},
"node_modules/react-router-dom": {
- "version": "7.13.0",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.13.0.tgz",
- "integrity": "sha512-5CO/l5Yahi2SKC6rGZ+HDEjpjkGaG/ncEP7eWFTvFxbHP8yeeI0PxTDjimtpXYlR3b3i9/WIL4VJttPrESIf2g==",
+ "version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.14.1.tgz",
+ "integrity": "sha512-ZkrQuwwhGibjQLqH1eCdyiZyLWglPxzxdl5tgwgKEyCSGC76vmAjleGocRe3J/MLfzMUIKwaFJWpFVJhK3d2xA==",
"license": "MIT",
"dependencies": {
- "react-router": "7.13.0"
+ "react-router": "7.14.1"
},
"engines": {
"node": ">=20.0.0"
@@ -7548,9 +7260,9 @@
}
},
"node_modules/react-syntax-highlighter": {
- "version": "16.1.0",
- "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-16.1.0.tgz",
- "integrity": "sha512-E40/hBiP5rCNwkeBN1vRP+xow1X0pndinO+z3h7HLsHyjztbyjfzNWNKuAsJj+7DLam9iT4AaaOZnueCU+Nplg==",
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-16.1.1.tgz",
+ "integrity": "sha512-PjVawBGy80C6YbC5DDZJeUjBmC7skaoEUdvfFQediQHgCL7aKyVHe57SaJGfQsloGDac+gCpTfRdtxzWWKmCXA==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.28.4",
@@ -7649,19 +7361,25 @@
"license": "MIT"
},
"node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "version": "2.0.0-next.6",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
+ "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "node-exports-info": "^1.6.0",
+ "object-keys": "^1.1.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -7685,10 +7403,52 @@
"node": ">=0.12"
}
},
+ "node_modules/rolldown": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.16.tgz",
+ "integrity": "sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@oxc-project/types": "=0.126.0",
+ "@rolldown/pluginutils": "1.0.0-rc.16"
+ },
+ "bin": {
+ "rolldown": "bin/cli.mjs"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "optionalDependencies": {
+ "@rolldown/binding-android-arm64": "1.0.0-rc.16",
+ "@rolldown/binding-darwin-arm64": "1.0.0-rc.16",
+ "@rolldown/binding-darwin-x64": "1.0.0-rc.16",
+ "@rolldown/binding-freebsd-x64": "1.0.0-rc.16",
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.16",
+ "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.16",
+ "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.16",
+ "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.16",
+ "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.16",
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.16",
+ "@rolldown/binding-linux-x64-musl": "1.0.0-rc.16",
+ "@rolldown/binding-openharmony-arm64": "1.0.0-rc.16",
+ "@rolldown/binding-wasm32-wasi": "1.0.0-rc.16",
+ "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.16",
+ "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.16"
+ }
+ },
+ "node_modules/rolldown/node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-rc.16",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.16.tgz",
+ "integrity": "sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/rollup": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz",
- "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==",
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz",
+ "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "1.0.8"
@@ -7701,70 +7461,60 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.60.0",
- "@rollup/rollup-android-arm64": "4.60.0",
- "@rollup/rollup-darwin-arm64": "4.60.0",
- "@rollup/rollup-darwin-x64": "4.60.0",
- "@rollup/rollup-freebsd-arm64": "4.60.0",
- "@rollup/rollup-freebsd-x64": "4.60.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.60.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.60.0",
- "@rollup/rollup-linux-arm64-gnu": "4.60.0",
- "@rollup/rollup-linux-arm64-musl": "4.60.0",
- "@rollup/rollup-linux-loong64-gnu": "4.60.0",
- "@rollup/rollup-linux-loong64-musl": "4.60.0",
- "@rollup/rollup-linux-ppc64-gnu": "4.60.0",
- "@rollup/rollup-linux-ppc64-musl": "4.60.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.60.0",
- "@rollup/rollup-linux-riscv64-musl": "4.60.0",
- "@rollup/rollup-linux-s390x-gnu": "4.60.0",
- "@rollup/rollup-linux-x64-gnu": "4.60.0",
- "@rollup/rollup-linux-x64-musl": "4.60.0",
- "@rollup/rollup-openbsd-x64": "4.60.0",
- "@rollup/rollup-openharmony-arm64": "4.60.0",
- "@rollup/rollup-win32-arm64-msvc": "4.60.0",
- "@rollup/rollup-win32-ia32-msvc": "4.60.0",
- "@rollup/rollup-win32-x64-gnu": "4.60.0",
- "@rollup/rollup-win32-x64-msvc": "4.60.0",
+ "@rollup/rollup-android-arm-eabi": "4.60.2",
+ "@rollup/rollup-android-arm64": "4.60.2",
+ "@rollup/rollup-darwin-arm64": "4.60.2",
+ "@rollup/rollup-darwin-x64": "4.60.2",
+ "@rollup/rollup-freebsd-arm64": "4.60.2",
+ "@rollup/rollup-freebsd-x64": "4.60.2",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.60.2",
+ "@rollup/rollup-linux-arm-musleabihf": "4.60.2",
+ "@rollup/rollup-linux-arm64-gnu": "4.60.2",
+ "@rollup/rollup-linux-arm64-musl": "4.60.2",
+ "@rollup/rollup-linux-loong64-gnu": "4.60.2",
+ "@rollup/rollup-linux-loong64-musl": "4.60.2",
+ "@rollup/rollup-linux-ppc64-gnu": "4.60.2",
+ "@rollup/rollup-linux-ppc64-musl": "4.60.2",
+ "@rollup/rollup-linux-riscv64-gnu": "4.60.2",
+ "@rollup/rollup-linux-riscv64-musl": "4.60.2",
+ "@rollup/rollup-linux-s390x-gnu": "4.60.2",
+ "@rollup/rollup-linux-x64-gnu": "4.60.2",
+ "@rollup/rollup-linux-x64-musl": "4.60.2",
+ "@rollup/rollup-openbsd-x64": "4.60.2",
+ "@rollup/rollup-openharmony-arm64": "4.60.2",
+ "@rollup/rollup-win32-arm64-msvc": "4.60.2",
+ "@rollup/rollup-win32-ia32-msvc": "4.60.2",
+ "@rollup/rollup-win32-x64-gnu": "4.60.2",
+ "@rollup/rollup-win32-x64-msvc": "4.60.2",
"fsevents": "~2.3.2"
}
},
"node_modules/rollup-plugin-dts": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.3.0.tgz",
- "integrity": "sha512-d0UrqxYd8KyZ6i3M2Nx7WOMy708qsV/7fTHMHxCMCBOAe3V/U7OMPu5GkX8hC+cmkHhzGnfeYongl1IgiooddA==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-6.4.1.tgz",
+ "integrity": "sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==",
"dev": true,
"license": "LGPL-3.0-only",
"dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "@jridgewell/sourcemap-codec": "^1.5.5",
+ "convert-source-map": "^2.0.0",
"magic-string": "^0.30.21"
},
"engines": {
- "node": ">=16"
+ "node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/Swatinem"
},
"optionalDependencies": {
- "@babel/code-frame": "^7.27.1"
+ "@babel/code-frame": "^7.29.0"
},
"peerDependencies": {
"rollup": "^3.29.4 || ^4",
- "typescript": "^4.5 || ^5.0"
+ "typescript": "^4.5 || ^5.0 || ^6.0"
}
},
- "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz",
- "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
"node_modules/rtl-css-js": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz",
@@ -7775,15 +7525,15 @@
}
},
"node_modules/safe-array-concat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
- "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz",
+ "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
+ "call-bind": "^1.0.9",
+ "call-bound": "^1.0.4",
+ "get-intrinsic": "^1.3.0",
"has-symbols": "^1.1.0",
"isarray": "^2.0.5"
},
@@ -7944,14 +7694,14 @@
}
},
"node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
+ "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
"dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
+ "object-inspect": "^1.13.4"
},
"engines": {
"node": ">= 0.4"
@@ -8030,9 +7780,9 @@
}
},
"node_modules/sql-formatter": {
- "version": "15.7.0",
- "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.7.0.tgz",
- "integrity": "sha512-o2yiy7fYXK1HvzA8P6wwj8QSuwG3e/XcpWht/jIxkQX99c0SVPw0OXdLSV9fHASPiYB09HLA0uq8hokGydi/QA==",
+ "version": "15.7.3",
+ "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.7.3.tgz",
+ "integrity": "sha512-5+zl9Nqg5aNjss0tb1G+StpC4dJKbjv3+g8CL/+V+00PfZop+2RKGyi53ScFl0dr+Dkx1LjmUO54Q3N7K3EtMw==",
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1",
@@ -8042,6 +7792,20 @@
"sql-formatter": "bin/sql-formatter-cli.cjs"
}
},
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "internal-slot": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/string.prototype.matchall": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
@@ -8140,38 +7904,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/stylis": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
- "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz",
+ "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==",
"license": "MIT"
},
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@@ -8205,10 +7943,23 @@
"@rollup/rollup-linux-x64-gnu": "4.53.3"
}
},
+ "node_modules/tabster/node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.53.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz",
+ "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
"node_modules/tailwind-merge": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz",
- "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz",
+ "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -8216,15 +7967,15 @@
}
},
"node_modules/tailwindcss": {
- "version": "4.1.18",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz",
- "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz",
+ "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==",
"license": "MIT"
},
"node_modules/tapable": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
- "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz",
+ "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -8235,13 +7986,14 @@
}
},
"node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
- "picomatch": "^4.0.3"
+ "picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
@@ -8347,21 +8099,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/typescript": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
- "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
"node_modules/unbox-primitive": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
@@ -8422,9 +8159,9 @@
}
},
"node_modules/use-sync-external-store": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
- "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
"license": "MIT",
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -8444,17 +8181,17 @@
}
},
"node_modules/vite": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz",
- "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==",
+ "version": "8.0.9",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.9.tgz",
+ "integrity": "sha512-t7g7GVRpMXjNpa67HaVWI/8BWtdVIQPCL2WoozXXA7LBGEFK4AkkKkHx2hAQf5x1GZSlcmEDPkVLSGahxnEEZw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "^0.27.0",
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3",
- "postcss": "^8.5.6",
- "rollup": "^4.43.0",
- "tinyglobby": "^0.2.15"
+ "lightningcss": "^1.32.0",
+ "picomatch": "^4.0.4",
+ "postcss": "^8.5.10",
+ "rolldown": "1.0.0-rc.16",
+ "tinyglobby": "^0.2.16"
},
"bin": {
"vite": "bin/vite.js"
@@ -8470,9 +8207,10 @@
},
"peerDependencies": {
"@types/node": "^20.19.0 || >=22.12.0",
+ "@vitejs/devtools": "^0.1.0",
+ "esbuild": "^0.27.0 || ^0.28.0",
"jiti": ">=1.21.0",
"less": "^4.0.0",
- "lightningcss": "^1.21.0",
"sass": "^1.70.0",
"sass-embedded": "^1.70.0",
"stylus": ">=0.54.8",
@@ -8485,13 +8223,16 @@
"@types/node": {
"optional": true
},
- "jiti": {
+ "@vitejs/devtools": {
"optional": true
},
- "less": {
+ "esbuild": {
+ "optional": true
+ },
+ "jiti": {
"optional": true
},
- "lightningcss": {
+ "less": {
"optional": true
},
"sass": {
@@ -8518,18 +8259,18 @@
}
},
"node_modules/vite-plugin-svgr": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.5.0.tgz",
- "integrity": "sha512-W+uoSpmVkSmNOGPSsDCWVW/DDAyv+9fap9AZXBvWiQqrboJ08j2vh0tFxTD/LjwqwAd3yYSVJgm54S/1GhbdnA==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-5.2.0.tgz",
+ "integrity": "sha512-qj2eAKF8C6PZWemVTvQA0xgQIcP1hHU6Buh7fl6BhvayWwnuxE+z417miKxeDvRWbDrupQ1oK99hfxElopJ3sQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@rollup/pluginutils": "^5.2.0",
+ "@rollup/pluginutils": "^5.3.0",
"@svgr/core": "^8.1.0",
"@svgr/plugin-jsx": "^8.1.0"
},
"peerDependencies": {
- "vite": ">=2.6.0"
+ "vite": ">=3.0.0"
}
},
"node_modules/which": {
@@ -8616,16 +8357,17 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
- "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
+ "version": "1.1.20",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz",
+ "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==",
"dev": true,
"license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "for-each": "^0.3.3",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
},
@@ -8667,9 +8409,9 @@
}
},
"node_modules/zod": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz",
- "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==",
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
+ "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==",
"dev": true,
"license": "MIT",
"funding": {
diff --git a/src/frontend/package.json b/src/frontend/package.json
index 2b6706ed..93861ed8 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -10,54 +10,55 @@
"preview": "vite preview"
},
"dependencies": {
- "@fluentui/react": "^8.125.4",
- "@fluentui/react-components": "^9.72.11",
- "@fluentui/react-file-type-icons": "^8.16.0",
- "@fluentui/react-icons": "^2.0.317",
+ "@fluentui/react": "^8.125.5",
+ "@fluentui/react-components": "^9.73.6",
+ "@fluentui/react-file-type-icons": "^8.17.0",
+ "@fluentui/react-icons": "^2.0.323",
"@radix-ui/react-icons": "^1.3.2",
"@reduxjs/toolkit": "^2.11.2",
- "@tailwindcss/vite": "^4.1.18",
+ "@tailwindcss/vite": "^4.2.2",
"@types/react-router-dom": "^5.3.3",
- "autoprefixer": "^10.4.24",
+ "autoprefixer": "^10.4.27",
"axios": "^1.15.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
- "lucide-react": "^0.563.0",
- "postcss": "^8.5.6",
- "@tailwindcss/postcss": "^4.1.11",
+ "lucide-react": "^1.7.0",
+ "postcss": "^8.5.8",
+ "@tailwindcss/postcss": "^4.2.2",
"react": "^19.2.4",
"react-dom": "^19.2.4",
- "react-dropzone": "^14.4.0",
- "react-icons": "^5.5.0",
+ "react-dropzone": "^15.0.0",
+ "react-icons": "^5.6.0",
"react-redux": "^9.1.2",
- "react-router-dom": "^7.13.0",
- "react-syntax-highlighter": "^16.1.0",
- "sql-formatter": "^15.7.0",
- "tailwind-merge": "^3.4.0",
+ "react-router-dom": "^7.13.2",
+ "react-syntax-highlighter": "^16.1.1",
+ "sql-formatter": "^15.7.3",
+ "tailwind-merge": "^3.5.0",
"tailwindcss": "^4.1.11",
"uuid": "^13.0.0",
- "@azure/msal-browser": "^5.1.0",
- "@azure/msal-react": "^5.0.3"
+ "@azure/msal-browser": "^5.6.2",
+ "@azure/msal-react": "^5.2.0"
+ },
+ "overrides": {
+ "follow-redirects": "^1.16.0",
+ "minimatch": "^3.1.5",
+ "flatted": "3.4.2",
+ "js-yaml": "4.1.1",
+ "picomatch": "4.0.4"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
- "@types/react": "^19.2.10",
+ "@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
- "@vitejs/plugin-react": "^5.1.2",
+ "@vitejs/plugin-react": "^6.0.1",
"eslint": "^9.39.2",
"eslint-plugin-react": "^7.37.5",
- "eslint-plugin-react-hooks": "^7.0.1",
- "eslint-plugin-react-refresh": "^0.4.26",
- "globals": "^17.3.0",
- "rollup": "^4.59.0",
- "rollup-plugin-dts": "^6.3.0",
- "vite": "^7.3.2",
- "vite-plugin-svgr": "^4.5.0"
- },
- "overrides": {
- "flatted": "3.4.2",
- "minimatch": "3.1.3",
- "js-yaml": "4.1.1",
- "picomatch": "4.0.4"
+ "eslint-plugin-react-hooks": "^7.1.1",
+ "eslint-plugin-react-refresh": "^0.5.2",
+ "globals": "^17.4.0",
+ "rollup": "^4.60.1",
+ "rollup-plugin-dts": "^6.4.1",
+ "vite": "^8.0.3",
+ "vite-plugin-svgr": "^5.0.0"
}
}
diff --git a/src/frontend/src/pages/batchView.tsx b/src/frontend/src/pages/batchView.tsx
index 5afcdb03..8b761b58 100644
--- a/src/frontend/src/pages/batchView.tsx
+++ b/src/frontend/src/pages/batchView.tsx
@@ -26,7 +26,7 @@ import {
Warning24Regular
} from "@fluentui/react-icons"
import { Light as SyntaxHighlighter } from "react-syntax-highlighter"
-import sql from "react-syntax-highlighter/dist/esm/languages/hljs/sql"
+import sqlLang from "react-syntax-highlighter/dist/esm/languages/hljs/sql"
import { vs } from "react-syntax-highlighter/dist/esm/styles/hljs"
import PanelRightToggles from "../components/Header/PanelRightToggles";
import PanelRight from "../components/Panels/PanelRight";
@@ -38,6 +38,7 @@ export const History = bundleIcon(HistoryFilled, HistoryRegular);
import { format } from "sql-formatter";
+const sql = typeof sqlLang === "function" ? sqlLang : sqlLang.default;
SyntaxHighlighter.registerLanguage("sql", sql)
diff --git a/src/frontend/src/pages/modernizationPage.tsx b/src/frontend/src/pages/modernizationPage.tsx
index eb22ed07..38be9334 100644
--- a/src/frontend/src/pages/modernizationPage.tsx
+++ b/src/frontend/src/pages/modernizationPage.tsx
@@ -4,7 +4,6 @@ import Header from "../components/Header/Header";
import HeaderTools from "../components/Header/HeaderTools";
import PanelLeft from "../components/Panels/PanelLeft";
import webSocketService from "../api/WebSocketService";
-import { useSelector } from 'react-redux';
import {
Button,
Text,
@@ -29,9 +28,9 @@ import {
} from "@fluentui/react-icons"
import { Light as SyntaxHighlighter } from "react-syntax-highlighter"
import { vs } from "react-syntax-highlighter/dist/esm/styles/hljs"
-import sql from "react-syntax-highlighter/dist/cjs/languages/hljs/sql"
+import sqlLang from "react-syntax-highlighter/dist/esm/languages/hljs/sql"
import { useNavigate, useParams } from "react-router-dom"
-import { useState, useEffect, useCallback } from "react"
+import { useState, useEffect, useCallback, useRef } from "react"
import { getApiUrl, headerBuilder } from '../api/config';
import BatchHistoryPanel from "../components/batchHistoryPanel"
import PanelRight from "../components/Panels/PanelRight";
@@ -42,6 +41,7 @@ import { format } from "sql-formatter";
export const History = bundleIcon(HistoryFilled, HistoryRegular);
+const sql = typeof sqlLang === "function" ? sqlLang : sqlLang.default;
SyntaxHighlighter.registerLanguage("sql", sql)
const useStyles = makeStyles({
@@ -478,9 +478,6 @@ const getPrintFileStatus = (status: string): string => {
const ModernizationPage = () => {
const { batchId } = useParams<{ batchId: string }>();
const navigate = useNavigate();
-
- // Redux state to listen for start processing completion
- const batchState = useSelector((state: any) => state.batch);
const [batchSummary, setBatchSummary] = useState(null);
const styles = useStyles();
@@ -497,10 +494,10 @@ const ModernizationPage = () => {
const [fileId, setFileId] = React.useState("");
const [expandedSections, setExpandedSections] = React.useState([]);
const [allFilesCompleted, setAllFilesCompleted] = useState(false);
- const [progressPercentage, setProgressPercentage] = useState(0);
const [isZipButtonDisabled, setIsZipButtonDisabled] = useState(true);
const [fileLoading, setFileLoading] = useState(false);
const [lastActivityTime, setLastActivityTime] = useState(Date.now());
+ const hasNavigatedRef = useRef(false);
//const [pageLoadTime] = useState(Date.now());
// Fetch file content when a file is selected
@@ -514,7 +511,7 @@ const ModernizationPage = () => {
const selectedFile = files.find((f) => f.id === selectedFileId);
if (!selectedFile || !selectedFile.translatedCode) {
setFileLoading(true);
- const newFileUpdate = await fetchFileFromAPI(selectedFile?.fileId || "");
+ await fetchFileFromAPI(selectedFile?.fileId || "");
setFileLoading(false);
} else {
@@ -536,12 +533,22 @@ const ModernizationPage = () => {
setBatchSummary(data);
if (data) {
- const batchCompleted = data.status?.toLowerCase() === "completed" || data.status === "failed";
- if (batchCompleted) {
+ const batchCompleted = data.status?.toLowerCase() === "completed" || data.status?.toLowerCase() === "failed";
+ const allFilesTerminal = data.files.every((file: any) =>
+ ["completed", "failed", "error"].includes(file.status?.toLowerCase() || "")
+ );
+
+ if (batchCompleted || allFilesTerminal) {
setAllFilesCompleted(true);
if (data.hasFiles > 0) {
setIsZipButtonDisabled(false);
}
+ // Batch already finished (e.g., all files were harmful content) — navigate directly
+ if (!hasNavigatedRef.current) {
+ hasNavigatedRef.current = true;
+ navigate(`/batch-view/${batchId}`);
+ return;
+ }
}
// Transform the server response to an array of your FileItem objects
const fileItems: FileItem[] = data.files.map((file: any, index: number) => ({
@@ -725,7 +732,10 @@ const ModernizationPage = () => {
// Update files state when Redux fileList changes
useEffect(() => {
if (reduxFileList && reduxFileList.length > 0) {
- setAllFilesCompleted(false);
+ // Only reset completion state if not already finalized
+ if (!allFilesCompleted) {
+ setAllFilesCompleted(false);
+ }
// Map the Redux fileList to our FileItem format
const fileItems: FileItem[] = reduxFileList.filter(file => file.type !== 'summary').map((file: any, index: number) => ({
@@ -832,8 +842,11 @@ const ModernizationPage = () => {
});
// Navigate only after all files have reached terminal states.
- console.log("Processing complete (all files done), navigating to batch view page");
- navigate(`/batch-view/${batchId}`);
+ if (!hasNavigatedRef.current) {
+ hasNavigatedRef.current = true;
+ console.log("Processing complete (all files done), navigating to batch view page");
+ navigate(`/batch-view/${batchId}`);
+ }
}
} catch (err) {
console.error("Failed to update summary status:", err);
@@ -970,13 +983,13 @@ useEffect(() => {
// Set a timeout for initial loading - if no progress after 30 seconds, show error
useEffect(() => {
const loadingTimeout = setTimeout(() => {
- if (progressPercentage < 5 && showLoading) {
+ if (showLoading) {
setLoadingError('Processing is taking longer than expected. You can continue waiting or try again later.');
}
}, 30000);
return () => clearTimeout(loadingTimeout);
- }, [progressPercentage, showLoading]);
+ }, [showLoading]);
// Poll summary status during inactivity, but do not force completion/navigation by timeout.
useEffect(() => {
@@ -996,6 +1009,43 @@ useEffect(() => {
return () => clearInterval(checkInactivity);
}, [lastActivityTime, files, allFilesCompleted, updateSummaryStatus, navigate, batchId]);
+ // Fallback polling: periodically re-fetch batch summary to catch cases where
+ // WebSocket events were missed (e.g., all files were harmful and processed
+ // before WebSocket connected). Polls every 5 seconds until all files are done.
+ useEffect(() => {
+ if (allFilesCompleted || !batchId || hasNavigatedRef.current) return;
+
+ const pollInterval = setInterval(async () => {
+ if (hasNavigatedRef.current || allFilesCompleted) {
+ clearInterval(pollInterval);
+ return;
+ }
+ try {
+ const data = await fetchBatchSummary(batchId);
+ if (!data) return;
+
+ const batchTerminal = ["completed", "failed"].includes(data.status?.toLowerCase() || "");
+ const allTerminal = data.files.every((file: any) =>
+ ["completed", "failed", "error"].includes(file.status?.toLowerCase() || "")
+ );
+
+ if (batchTerminal || allTerminal) {
+ console.log("Fallback poll detected batch completion, navigating to batch view");
+ clearInterval(pollInterval);
+ setAllFilesCompleted(true);
+ if (!hasNavigatedRef.current) {
+ hasNavigatedRef.current = true;
+ navigate(`/batch-view/${batchId}`);
+ }
+ }
+ } catch (err) {
+ console.error("Fallback poll error:", err);
+ }
+ }, 5000);
+
+ return () => clearInterval(pollInterval);
+ }, [batchId, allFilesCompleted, navigate]);
+
useEffect(() => {
console.log('Current files state:', files);