diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d55f7ebf83..a35ece820d 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -6,3 +6,7 @@
# The '*' pattern is global owners.
* @IEvangelist
+
+# Community Toolkit docs
+
+# /docs/community-toolkit/* @aaronpowell
diff --git a/.github/workflows/check-for-build-warnings.yml b/.github/workflows/check-for-build-warnings.yml
index fca5e56858..1a266c6498 100644
--- a/.github/workflows/check-for-build-warnings.yml
+++ b/.github/workflows/check-for-build-warnings.yml
@@ -21,7 +21,7 @@ jobs:
with:
egress-policy: audit
- - uses: dotnet/docs-tools/actions/status-checker@cf581edfb9f8bbccc3f0476ce1b8369689fb0290 # main
+ - uses: dotnet/docs-tools/actions/status-checker@691b5550e4b848ac76bd61a3d135754b029884be # main
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
docs_path: "docs"
diff --git a/.github/workflows/clean-repo.yml b/.github/workflows/clean-repo.yml
index 022f805b7c..d166b2671f 100644
--- a/.github/workflows/clean-repo.yml
+++ b/.github/workflows/clean-repo.yml
@@ -22,7 +22,7 @@ jobs:
with:
egress-policy: audit
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
# Call clean repo
- name: Clean repo
diff --git a/.github/workflows/dependabot-bot.yml b/.github/workflows/dependabot-bot.yml
index df3b8aa13c..9f53a192d2 100644
--- a/.github/workflows/dependabot-bot.yml
+++ b/.github/workflows/dependabot-bot.yml
@@ -30,7 +30,7 @@ jobs:
with:
egress-policy: audit
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
# - name: Setup .NET
# uses: actions/setup-dotnet@4d4a70f4a5b2a5a5329f13be4ac933f2c9206ac0
# with:
diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml
index c1209291aa..7b0990bcf5 100644
--- a/.github/workflows/dependency-review.yml
+++ b/.github/workflows/dependency-review.yml
@@ -22,6 +22,6 @@ jobs:
egress-policy: audit
- name: 'Checkout Repository'
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: 'Dependency Review'
uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4
diff --git a/.github/workflows/dispatch-merge-main-to-live.yml b/.github/workflows/dispatch-merge-main-to-live.yml
index ff1f13e793..698c7e84a1 100644
--- a/.github/workflows/dispatch-merge-main-to-live.yml
+++ b/.github/workflows/dispatch-merge-main-to-live.yml
@@ -32,7 +32,7 @@ jobs:
echo 'Reason: ${{ github.event.inputs.reason }}'
- name: Check out code
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # main
+ uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # main
- name: Check for existing PR
id: exists
diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml
index 260f56fdb7..1812069733 100644
--- a/.github/workflows/markdownlint.yml
+++ b/.github/workflows/markdownlint.yml
@@ -31,7 +31,7 @@ jobs:
with:
egress-policy: audit
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- uses: DavidAnson/markdownlint-cli2-action@db43aef879112c3119a410d69f66701e0d530809 # v17.0.0
with:
config: ".markdownlint-cli2.jsonc"
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index 7e34ce18d5..596574a615 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -36,7 +36,7 @@ jobs:
egress-policy: audit
- name: "Checkout code"
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
persist-credentials: false
@@ -63,7 +63,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
+ uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # v4.4.2
with:
name: SARIF file
path: results.sarif
@@ -71,6 +71,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@461ef6c76dfe95d5c364de2f431ddbd31a417628 # v3.26.9
+ uses: github/codeql-action/upload-sarif@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3.26.12
with:
sarif_file: results.sarif
diff --git a/.github/workflows/snippets5000.yml b/.github/workflows/snippets5000.yml
index ba325427d5..7980032415 100644
--- a/.github/workflows/snippets5000.yml
+++ b/.github/workflows/snippets5000.yml
@@ -38,7 +38,7 @@ jobs:
with:
egress-policy: audit
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
# Get the latest preview SDK (or sdk not installed by the runner)
- name: Setup .NET
@@ -70,7 +70,7 @@ jobs:
# Update build output json file
- name: Upload build results
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 #@v4.4.0
+ uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 #@v4.4.2
with:
name: build
path: ./output.json
diff --git a/.github/workflows/whats-new-automation.yml b/.github/workflows/whats-new-automation.yml
index 470274af89..6292e0a30a 100644
--- a/.github/workflows/whats-new-automation.yml
+++ b/.github/workflows/whats-new-automation.yml
@@ -27,7 +27,7 @@ jobs:
with:
egress-policy: audit
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: "Print manual run reason"
if: ${{ github.event_name == 'workflow_dispatch' }}
diff --git a/.gitignore b/.gitignore
index c70ca92e0a..8a39666e83 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+syntax: glob
+
# Python virtual environments
.venv
@@ -59,4 +61,6 @@ docs/core/extensions/snippets/workers/cloud-service/Properties/PublishProfiles/c
docs/csharp/language-reference/xmldoc/snippets/xmldoc/xmldoc.xml
BenchmarkDotNet.Artifacts
-*.pfx
\ No newline at end of file
+*.pfx
+
+node_modules/
\ No newline at end of file
diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json
index 8930680fab..7bd76b7b63 100644
--- a/.openpublishing.redirection.json
+++ b/.openpublishing.redirection.json
@@ -263,6 +263,10 @@
{
"source_path_from_root": "/docs/extensibility/implement-auth-from-resource-to-integration.md",
"redirect_url": "/dotnet/aspire/extensibility/secure-communication-between-integrations"
+ },
+ {
+ "source_path_from_root": "/docs/messaging/rabbitmq-client-integration.md",
+ "redirect_url": "/dotnet/aspire/messaging/rabbitmq-integration"
}
]
}
\ No newline at end of file
diff --git a/docfx.json b/docfx.json
index bf71ecc36d..d92bbb6f67 100644
--- a/docfx.json
+++ b/docfx.json
@@ -104,16 +104,16 @@
},
"author": {
"docs/**/*.*": "IEvangelist",
+ "docs/community-toolkit/**/*.*": "aaronpowell",
"docs/database/**/*.*": "CamSoper",
"docs/storage/**/*.*": "CamSoper",
- "docs/messaging/**/*.*": "CamSoper",
"docs/deployment/**/*.*": "CamSoper"
},
"ms.author": {
"docs/**/*.*": "dapine",
+ "docs/community-toolkit/**/*.*": "aapowell",
"docs/database/**/*.*": "casoper",
"docs/storage/**/*.*": "casoper",
- "docs/messaging/**/*.*": "casoper",
"docs/deployment/**/*.*": "casoper"
},
"ms.collection": {
diff --git a/docs/authentication/keycloak-integration.md b/docs/authentication/keycloak-integration.md
index 9616256132..7710027908 100644
--- a/docs/authentication/keycloak-integration.md
+++ b/docs/authentication/keycloak-integration.md
@@ -30,7 +30,7 @@ dotnet add package Aspire.Keycloak.Authentication
```xml
+ Version="*" />
```
---
@@ -84,7 +84,7 @@ dotnet add package Aspire.Hosting.Keycloak
```xml
+ Version="*" />
```
---
diff --git a/docs/azureai/azureai-openai-integration.md b/docs/azureai/azureai-openai-integration.md
index e9ccb59e95..1f2134e96f 100644
--- a/docs/azureai/azureai-openai-integration.md
+++ b/docs/azureai/azureai-openai-integration.md
@@ -28,7 +28,7 @@ dotnet add package Aspire.Azure.AI.OpenAI
```xml
+ Version="*" />
```
---
@@ -66,7 +66,7 @@ dotnet add package Aspire.Hosting.Azure.CognitiveServices
```xml
+ Version="*" />
```
---
diff --git a/docs/azureai/azureai-search-document-integration.md b/docs/azureai/azureai-search-document-integration.md
index ab47f86c4a..4ce9469de7 100644
--- a/docs/azureai/azureai-search-document-integration.md
+++ b/docs/azureai/azureai-search-document-integration.md
@@ -28,7 +28,7 @@ dotnet add package Aspire.Azure.Search.Documents
```xml
+ Version="*" />
```
---
@@ -87,7 +87,7 @@ dotnet add package Aspire.Hosting.Azure.Search
```xml
+ Version="*" />
```
---
diff --git a/docs/caching/caching-integrations.md b/docs/caching/caching-integrations.md
index 51482986cd..6fd186392e 100644
--- a/docs/caching/caching-integrations.md
+++ b/docs/caching/caching-integrations.md
@@ -55,7 +55,7 @@ Visual Studio creates a new .NET Aspire solution that consists of the following
```xml
+ Version="*" />
```
---
diff --git a/docs/caching/includes/garnet-app-host.md b/docs/caching/includes/garnet-app-host.md
index 30cada3c66..59a6794699 100644
--- a/docs/caching/includes/garnet-app-host.md
+++ b/docs/caching/includes/garnet-app-host.md
@@ -10,7 +10,7 @@ dotnet add package Aspire.Hosting.Garnet
```xml
+ Version="*" />
```
---
diff --git a/docs/caching/includes/redis-app-host.md b/docs/caching/includes/redis-app-host.md
index 6dbe7074a4..97417eccfe 100644
--- a/docs/caching/includes/redis-app-host.md
+++ b/docs/caching/includes/redis-app-host.md
@@ -10,7 +10,7 @@ dotnet add package Aspire.Hosting.Redis
```xml
+ Version="*" />
```
---
diff --git a/docs/caching/includes/valkey-app-host.md b/docs/caching/includes/valkey-app-host.md
index ca44e5b488..c678426ad5 100644
--- a/docs/caching/includes/valkey-app-host.md
+++ b/docs/caching/includes/valkey-app-host.md
@@ -10,7 +10,7 @@ dotnet add package Aspire.Hosting.Valkey
```xml
+ Version="*" />
```
---
diff --git a/docs/caching/stackexchange-redis-distributed-caching-integration.md b/docs/caching/stackexchange-redis-distributed-caching-integration.md
index 0ad6499a73..b36a2685fa 100644
--- a/docs/caching/stackexchange-redis-distributed-caching-integration.md
+++ b/docs/caching/stackexchange-redis-distributed-caching-integration.md
@@ -24,7 +24,7 @@ dotnet add package Aspire.StackExchange.Redis.DistributedCaching
```xml
+ Version="*" />
```
---
diff --git a/docs/caching/stackexchange-redis-integration.md b/docs/caching/stackexchange-redis-integration.md
index 6b6ef6e036..15bb123af8 100644
--- a/docs/caching/stackexchange-redis-integration.md
+++ b/docs/caching/stackexchange-redis-integration.md
@@ -24,7 +24,7 @@ dotnet add package Aspire.StackExchange.Redis
```xml
+ Version="*" />
```
---
diff --git a/docs/caching/stackexchange-redis-output-caching-integration.md b/docs/caching/stackexchange-redis-output-caching-integration.md
index d3eb87a253..6d797923dd 100644
--- a/docs/caching/stackexchange-redis-output-caching-integration.md
+++ b/docs/caching/stackexchange-redis-output-caching-integration.md
@@ -24,7 +24,7 @@ dotnet add package Aspire.StackExchange.Redis.OutputCaching
```xml
+ Version="*" />
```
---
diff --git a/docs/community-toolkit/hosting-azure-static-web-apps.md b/docs/community-toolkit/hosting-azure-static-web-apps.md
new file mode 100644
index 0000000000..50a5a32812
--- /dev/null
+++ b/docs/community-toolkit/hosting-azure-static-web-apps.md
@@ -0,0 +1,70 @@
+---
+title: Azure Static Web Apps emulator
+description: Learn how to use the .NET Aspire Azure Static Web Apps emulator integration to run Azure Static Web Apps locally using the emulator.
+ms.date: 10/11/2024
+---
+
+# .NET Aspire Azure Static Web Apps emulator integration
+
+[!INCLUDE [includes-hosting](../includes/includes-hosting.md)]
+
+[!INCLUDE [banner](includes/banner.md)]
+
+In this article, you learn how to use the .NET Aspire [Azure Static Web Apps emulator](/azure/static-web-apps/local-development) hosting integration to run Azure Static Web Apps locally using the emulator. The emulator provides support for proxying both the static frontend and the API backend using resources defined in the app host.
+
+This integration requires the [Azure Static Web Apps CLI](/azure/static-web-apps/local-development#get-started) to run, and only supports hosting the emulator for local development, not deploying to Azure Static Web Apps.
+
+## Hosting integration
+
+To get started with the .NET Aspire Azure Static Web Apps emulator hosting integration, install the [📦 Aspire.CommunityToolkit.Hosting.Azure.StaticWebApps](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Azure.StaticWebApps) NuGet package in the AppHost project.
+
+### [.NET CLI](#tab/dotnet-cli)
+
+```dotnetcli
+dotnet add package Aspire.CommunityToolkit.Hosting.Azure.StaticWebApps
+```
+
+### [PackageReference](#tab/package-reference)
+
+```xml
+
+```
+
+---
+
+For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
+
+## Example usage
+
+In the _:::no-loc text="Program.cs":::_ file of your app host project, define the backend and frontend resources. Then, call the `AddSwaEmulator` method to create the emulator and pass the resources using the `WithAppResource` and `WithApiResource` methods.
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+// Define the API resource
+var api = builder.AddProject("api");
+
+// Define the frontend resource
+var web = builder
+ .AddNpmApp("web", Path.Combine("..", "Aspire.CommunityToolkit.StaticWebApps.WebApp"), "dev")
+ .WithHttpEndpoint(env: "PORT")
+ .WithExternalHttpEndpoints();
+
+// Create a SWA emulator with the frontend and API resources
+_ = builder
+ .AddSwaEmulator("swa")
+ .WithAppResource(web)
+ .WithApiResource(api);
+
+builder.Build().Run();
+```
+
+The preceding code defines the API and frontend resources and creates an emulator with the resources. The emulator is then started using the `Run` method.
+
+## See also
+
+- [Azure Static Web Apps emulator](/azure/static-web-apps/local-development)
+- [Azure Static Web Apps](/azure/static-web-apps/)
+- [.NET Aspire Community Toolkit GitHub repo](https://github.com/CommunityToolkit/Aspire)
+- [Sample app source code](https://github.com/CommunityToolkit/Aspire/tree/main/examples/swa)
diff --git a/docs/community-toolkit/hosting-golang.md b/docs/community-toolkit/hosting-golang.md
new file mode 100644
index 0000000000..2a9674d1d1
--- /dev/null
+++ b/docs/community-toolkit/hosting-golang.md
@@ -0,0 +1,50 @@
+---
+title: Go hosting
+author: tommasodotNET
+description: Learn how to use the .NET Aspire Go hosting integration to host Go applications.
+ms.date: 10/11/2024
+---
+
+# .NET Aspire Go hosting
+
+[!INCLUDE [includes-hosting](../includes/includes-hosting.md)]
+
+[!INCLUDE [banner](includes/banner.md)]
+
+In this article, you learn how to use the .NET Aspire Go hosting integration to host Go applications.
+
+## Hosting integration
+
+To get started with the .NET Aspire Go hosting integration, install the [📦 Aspire.CommunityToolkit.Hosting.Go](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Golang) NuGet package in the AppHost project.
+
+### [.NET CLI](#tab/dotnet-cli)
+
+```dotnetcli
+dotnet add package Aspire.CommunityToolkit.Hosting.Golang
+```
+
+### [PackageReference](#tab/package-reference)
+
+```xml
+
+```
+
+---
+
+For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
+
+## Example usage
+
+In the _:::no-loc text="Program.cs":::_ file of your app host project, call the `AddGolangApp` method to add a Go application to the builder.
+
+```csharp
+var golang = builder.AddGolangApp("golang", "../go-service");
+```
+
+The Go application can be added as a reference to other resources in the AppHost project.
+
+## See also
+
+- [.NET Aspire Community Toolkit GitHub repo](https://github.com/CommunityToolkit/Aspire)
+- [Sample Go app](https://github.com/CommunityToolkit/Aspire/tree/main/examples/golang)
diff --git a/docs/community-toolkit/hosting-java.md b/docs/community-toolkit/hosting-java.md
new file mode 100644
index 0000000000..02d57d2870
--- /dev/null
+++ b/docs/community-toolkit/hosting-java.md
@@ -0,0 +1,99 @@
+---
+title: Java/Spring hosting
+author: justinyoo
+description: A .NET Aspire hosting integration for hosting Java/Spring applications using either the Java runtime or a container.
+ms.date: 10/11/2024
+---
+
+# .NET Aspire Java/Spring hosting integration
+
+[!INCLUDE [includes-hosting](../includes/includes-hosting.md)]
+
+[!INCLUDE [banner](includes/banner.md)]
+
+In this article, you learn how to use the .NET Aspire Java/Spring hosting integration to host Java/Spring applications using either the Java runtime or a container.
+
+## Prerequisites
+
+This integration requires the [OpenTelemetry Agent for Java](https://opentelemetry.io/docs/zero-code/java/agent/) to be downloaded and placed in the `agents` directory in the root of the project. Depending on your preferred shell, use either of the following commands to download the agent:
+
+# [Bash](#tab/bash)
+
+```bash
+# bash/zsh
+mkdir -p ./agents
+wget -P ./agents \
+ https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar
+```
+
+# [PowerShell](#tab/powershell)
+
+```powershell
+# PowerShell
+New-item -type Directory -Path ./agents -Force
+Invoke-WebRequest `
+ -OutFile "./agents/opentelemetry-javaagent.jar" `
+ -Uri "https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar"
+```
+
+---
+
+## Get started
+
+To get started with the .NET Aspire Azure Static Web Apps emulator integration, install the [📦 Aspire.CommunityToolkit.Hosting.Java](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Java) NuGet package in the AppHost project.
+
+### [.NET CLI](#tab/dotnet-cli)
+
+```dotnetcli
+dotnet add package Aspire.CommunityToolkit.Hosting.Java
+```
+
+### [PackageReference](#tab/package-reference)
+
+```xml
+
+```
+
+---
+
+For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
+
+## Example Usage
+
+The following sections detail various example usage scenarios, from hosting a containerized Spring app to hosting an executable Spring app.
+
+### [Container hosting](#tab/container-hosting)
+
+In the _:::no-loc text="Program.cs":::_file of your app host project, call the `AddSpringApp` method to define the containerized Spring app. Use the `JavaAppContainerResourceOptions` to define the containerized Spring app.
+
+```csharp
+var containerapp = builder.AddSpringApp(
+ "containerapp",
+ new JavaAppContainerResourceOptions
+ {
+ ContainerImageName = "/",
+ OtelAgentPath = ""
+ });
+```
+
+### [Executable hosting](#tab/executable-hosting)
+
+In the _:::no-loc text="Program.cs":::_ file of your AppHost project, call the `AddSpringApp` method to define the executable Spring app. Use the `JavaAppExecutableResourceOptions` to define the executable Spring app.
+
+```csharp
+var executableapp = builder.AddSpringApp(
+ "executableapp",
+ new JavaAppExecutableResourceOptions
+ {
+ ApplicationName = "target/app.jar",
+ OtelAgentPath = "../../../agents"
+ });
+```
+
+---
+
+## See also
+
+- [Java developer resources](/java)
+- [.NET Aspire Community Toolkit GitHub repo](https://github.com/CommunityToolkit/Aspire)
diff --git a/docs/community-toolkit/hosting-nodejs-extensions.md b/docs/community-toolkit/hosting-nodejs-extensions.md
new file mode 100644
index 0000000000..dff14d697f
--- /dev/null
+++ b/docs/community-toolkit/hosting-nodejs-extensions.md
@@ -0,0 +1,95 @@
+---
+title: Node.js hosting extensions
+description: Learn about the .NET Aspire Community Toolkit Node.js hosting extensions package which provides extra functionality to the .NET Aspire NodeJS hosting package.
+ms.date: 10/11/2024
+---
+
+# .NET Aspire Community Toolkit Node.js hosting extensions
+
+[!INCLUDE [includes-hosting](../includes/includes-hosting.md)]
+
+[!INCLUDE [banner](includes/banner.md)]
+
+In this article, you learn about the .NET Aspire Community Toolkit Node.js hosting extensions package which provides extra functionality to the .NET Aspire [NodeJS hosting package](https://nuget.org/packages/Aspire.Hosting.NodeJS). The extensions package brings the following features:
+
+- Running [Vite](https://vitejs.dev/) applications
+- Running Node.js applications using [Yarn](https://yarnpkg.com/) and [pnpm](https://pnpm.io/)
+- Ensuring that the packages are installed before running the application (using the specified package manager)
+
+## Hosting integration
+
+To get started with the .NET Aspire Community Toolkit Node.js hosting extensions, install the [📦 Aspire.CommunityToolkit.Hosting.NodeJS.Extensions](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.NodeJS.Extensions) NuGet package in the AppHost project.
+
+### [.NET CLI](#tab/dotnet-cli)
+
+```dotnetcli
+dotnet add package Aspire.CommunityToolkit.Hosting.NodeJS.Extensions
+```
+
+### [PackageReference](#tab/package-reference)
+
+```xml
+
+```
+
+---
+
+For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
+
+## Example usage
+
+The following sections detail various usages, from running Vite applications to using specific package managers.
+
+### Run specific package managers
+
+This integration extension adds support for running Node.js applications using Yarn or pnpm as the package manager.
+
+# [yarn](#tab/yarn)
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+builder.AddYarnApp("yarn-demo")
+ .WithExternalHttpEndpoints();
+```
+
+# [pnpm](#tab/pnpm)
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+builder.AddPnpmApp("pnpm-demo")
+ .WithExternalHttpEndpoints();
+```
+
+---
+
+### Run Vite apps
+
+This integration extension adds support for running the development server for Vite applications. By default, it uses the `npm` package manager to launch, but this can be overridden with the `packageManager` argument.
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+builder.AddViteApp("vite-demo")
+ .WithExternalHttpEndpoints();
+
+builder.AddViteApp("yarn-demo", packageManager: "yarn")
+ .WithExternalHttpEndpoints();
+
+builder.AddViteApp("pnpm-demo", packageManager: "pnpm")
+ .WithExternalHttpEndpoints();
+
+builder.Build().Run();
+```
+
+### Install packages
+
+When using the `WithNpmPackageInstallation`, `WithYarnPackageInstallation` or `WithPnpmPackageInstallation` methods, the package manager is used to install the packages before starting the application. These methods are useful to ensure that packages are installed before the application starts, similar to how a .NET application would restore NuGet packages before running.
+
+## See also
+
+- [Orchestrate Node.js apps in .NET Aspire](../get-started/build-aspire-apps-with-nodejs.md)
+- [.NET Aspire Community Toolkit GitHub repo](https://github.com/CommunityToolkit/Aspire)
+- [Sample Node.js apps](https://github.com/CommunityToolkit/Aspire/tree/main/examples/nodejs-ext)
diff --git a/docs/community-toolkit/includes/banner.md b/docs/community-toolkit/includes/banner.md
new file mode 100644
index 0000000000..e165da6bea
--- /dev/null
+++ b/docs/community-toolkit/includes/banner.md
@@ -0,0 +1,6 @@
+---
+ms.topic: include
+---
+
+> [!NOTE]
+> This integration is part of the [.NET Aspire Community Toolkit](https://github.com/CommunityToolkit/Aspire) and _isn't_ officially supported by the .NET Aspire team.
diff --git a/docs/community-toolkit/ollama.md b/docs/community-toolkit/ollama.md
new file mode 100644
index 0000000000..5dbf3f4273
--- /dev/null
+++ b/docs/community-toolkit/ollama.md
@@ -0,0 +1,122 @@
+---
+title: Ollama
+description: Learn how to use the .NET Aspire Ollama hosting and client integration to host Ollama models using the Ollama container and accessing it via the OllamaSharp client.
+ms.date: 10/11/2024
+---
+
+# .NET Aspire Community Toolkit Ollama integration
+
+[!INCLUDE [includes-hosting-and-client](../includes/includes-hosting-and-client.md)]
+
+[!INCLUDE [banner](includes/banner.md)]
+
+In this article, you learn how to use the .NET Aspire Ollama hosting integration to host [Ollama](https://ollama.com) models using the Ollama container and accessing it via the [OllamaSharp](https://www.nuget.org/packages/OllamaSharp) client.
+
+## Hosting integration
+
+To model the Ollama server, install the [📦 Aspire.CommunityToolkit.Hosting.Ollama](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Ollama) NuGet package in the [app host](xref:aspire/app-host) project.
+
+### [.NET CLI](#tab/dotnet-cli)
+
+```dotnetcli
+dotnet add package Aspire.CommunityToolkit.Hosting.Ollama
+```
+
+### [PackageReference](#tab/package-reference)
+
+```xml
+
+```
+
+---
+
+For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
+
+### Add Ollama resource
+
+In the app host project, register and consume the Ollama integration using the `AddOllama` extension method to add the Ollama container to the application builder. You can then add models to the container, which downloads and run when the container starts, using the `AddModel` extension method.
+
+```csharp
+var ollama = builder.AddOllama("ollama")
+ .AddModel("llama3");
+```
+
+When .NET Aspire adds a container image to the app host, as shown in the preceding example with the `docker.io/ollama/ollama` image, it creates a new Ollama instance on your local machine. For more information, see [Container resource lifecycle](../fundamentals/app-host-overview.md#container-resource-lifecycle).
+
+### Download the LLM
+
+When the Ollama container for this integration first spins up, it downloads one or more configured LLMs. The progress of this download displays in the **State** column for this integration on the Aspire orchestration app.
+
+> [!IMPORTANT]
+> Keep the .NET Aspire orchestration app open until the download is complete, otherwise the download will be cancelled.
+
+### Cache the LLM
+
+One or more LLMs are downloaded into the container which Ollama is running from, and by default this container is ephemeral. If you need to persist one or more LLMs across container restarts, you need to mount a volume into the container using the `WithDataVolume` method.
+
+```csharp
+var ollama = builder.AddOllama("ollama")
+ .AddModel("llama3")
+ .WithDataVolume();
+```
+
+### Open WebUI support
+
+The Ollama integration also provided support for running [Open WebUI](https://openwebui.com/) and having it communicate with the Ollama container.
+
+```csharp
+var ollama = builder.AddOllama("ollama")
+ .AddModel("llama3")
+ .WithOpenWebUI();
+```
+
+## Client integration
+
+To get started with the .NET Aspire OllamaSharp integration, install the [Aspire.CommunityToolkit.OllamaSharp](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.OllamaSharp) NuGet package in the client-consuming project, that is, the project for the application that uses the Ollama client.
+
+### [.NET CLI](#tab/dotnet-cli)
+
+```dotnetcli
+dotnet add package Aspire.CommunityToolkit.OllamaSharp
+```
+
+### [PackageReference](#tab/package-reference)
+
+```xml
+
+```
+
+---
+
+### Add Ollama client API
+
+In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the `AddOllamaClientApi` extension to register an `IOllamaClientApi` for use via the dependency injection container.
+
+```csharp
+builder.AddOllamaClientApi("ollama");
+```
+
+After adding `IOllamaClientApi` to the builder, you can get the `IOllamaClientApi` instance using dependency injection. For example, to retrieve your context object from service:
+
+```csharp
+public class ExampleService(IOllamaClientApi ollama)
+{
+ // Use ollama...
+}
+```
+
+### Access the Ollama server in other services
+
+The Ollama hosting integration exposes the endpoint of the Ollama server as a connection string that can be accessed from other services in the application.
+
+```csharp
+var connectionString = builder.Configuration.GetConnectionString("ollama");
+```
+
+## See also
+
+- [Ollama](https://ollama.com)
+- [Open WebUI](https://openwebui.com)
+- [.NET Aspire Community Toolkit GitHub repo](https://github.com/CommunityToolkit/Aspire)
diff --git a/docs/community-toolkit/overview.md b/docs/community-toolkit/overview.md
new file mode 100644
index 0000000000..0be9d8c9a9
--- /dev/null
+++ b/docs/community-toolkit/overview.md
@@ -0,0 +1,37 @@
+---
+title: Overview
+description: An overview of the .NET Aspire Community Toolkit project.
+ms.date: 10/11/2024
+---
+
+# .NET Aspire Community Toolkit
+
+The .NET Aspire Community Toolkit is a collection of integrations and extensions for .NET Aspire created by the community. These integrations aren't officially supported by the .NET Aspire team, and are provided as-is for the community to use and contribute to. The source code for the toolkit is available on [GitHub][github-repo].
+
+## Frequently Asked Questions
+
+The following section answers some frequently asked questions about the .NET Aspire Community Toolkit.
+
+### What is the purpose of this project?
+
+The goal of the project is to be a centralized home for extensions and integrations for [.NET Aspire](/dotnet/aspire), helping to provide consistency in the way that integrations are built and maintained, as well as easier discoverability for users.
+
+### How is this project different from the official .NET Aspire project?
+
+The .NET Aspire Community Toolkit is a community-driven project that's maintained by the community and isn't officially supported by the .NET Aspire team. The toolkit is a collection of integrations and extensions that are built on top of the .NET Aspire project.
+
+### How can I contribute to the project?
+
+Anyone can contribute to the .NET Aspire Community Toolkit and before you get started, be sure to read the [Contributing Guide](https://github.com/CommunityToolkit/Aspire/blob/main/CONTRIBUTING.md) to learn how to contribute to the project.
+
+### Should I propose a new integration on the Community Toolkit or the `dotnet/aspire` repo?
+
+If you have an idea for a new integration, you should propose it on the [.NET Aspire Community Toolkit repository][github-repo], rather than [`dotnet/aspire`](https://github.com/dotnet/aspire), as the official .NET Aspire project is focused on the core functionality of the .NET Aspire project.
+
+If you've proposed an integration on the `dotnet/aspire` repository, you can still propose it in the Community Toolkit, but link to the existing issue on the `dotnet/aspire` repository to provide context.
+
+### Finding Community Toolkit Integrations
+
+Integrations from the .NET Aspire Community Toolkit appear in the **Add Aspire Integration** dialog in Visual Studio under the namespace `Aspire.CommunityToolkit.*`.
+
+[github-repo]: https://github.com/CommunityToolkit/Aspire
diff --git a/docs/database/azure-cosmos-db-entity-framework-integration.md b/docs/database/azure-cosmos-db-entity-framework-integration.md
index 3840f191ea..46a3f62853 100644
--- a/docs/database/azure-cosmos-db-entity-framework-integration.md
+++ b/docs/database/azure-cosmos-db-entity-framework-integration.md
@@ -23,7 +23,7 @@ dotnet add package Aspire.Microsoft.EntityFrameworkCore.Cosmos
```xml
+ Version="*" />
```
---
@@ -63,7 +63,7 @@ dotnet add package Aspire.Hosting.Azure.CosmosDB
```xml
+ Version="*" />
```
---
diff --git a/docs/database/azure-cosmos-db-integration.md b/docs/database/azure-cosmos-db-integration.md
index eb5b706815..0a1b380077 100644
--- a/docs/database/azure-cosmos-db-integration.md
+++ b/docs/database/azure-cosmos-db-integration.md
@@ -23,7 +23,7 @@ dotnet add package Aspire.Microsoft.Azure.Cosmos
```xml
+ Version="*" />
```
---
@@ -63,7 +63,7 @@ dotnet add package Aspire.Hosting.Azure.CosmosDB
```xml
+ Version="*" />
```
---
diff --git a/docs/database/includes/mysql-app-host.md b/docs/database/includes/mysql-app-host.md
index b0044ab70b..0f431ea25f 100644
--- a/docs/database/includes/mysql-app-host.md
+++ b/docs/database/includes/mysql-app-host.md
@@ -10,7 +10,7 @@ dotnet add package Aspire.Hosting.MySql
```xml
+ Version="*" />
```
---
diff --git a/docs/database/includes/postgresql-app-host.md b/docs/database/includes/postgresql-app-host.md
index 54af00e113..4e59831f4e 100644
--- a/docs/database/includes/postgresql-app-host.md
+++ b/docs/database/includes/postgresql-app-host.md
@@ -10,7 +10,7 @@ dotnet add package Aspire.Hosting.PostgreSQL
```xml
+ Version="*" />
```
---
diff --git a/docs/database/includes/postgresql-flexible-server.md b/docs/database/includes/postgresql-flexible-server.md
index 19c6530eb7..01ecb31b20 100644
--- a/docs/database/includes/postgresql-flexible-server.md
+++ b/docs/database/includes/postgresql-flexible-server.md
@@ -12,7 +12,7 @@ dotnet add package Aspire.Hosting.Azure.PostgreSQL
```xml
+ Version="*" />
```
---
diff --git a/docs/database/includes/sql-app-host.md b/docs/database/includes/sql-app-host.md
index f9fd3a5952..46af33a49b 100644
--- a/docs/database/includes/sql-app-host.md
+++ b/docs/database/includes/sql-app-host.md
@@ -10,7 +10,7 @@ dotnet add package Aspire.Hosting.SqlServer
```xml
+ Version="*" />
```
---
diff --git a/docs/database/milvus-integration.md b/docs/database/milvus-integration.md
index c7ccc701e7..f11d8cdeaa 100644
--- a/docs/database/milvus-integration.md
+++ b/docs/database/milvus-integration.md
@@ -27,7 +27,7 @@ dotnet add package Aspire.Milvus.Client
```xml
+ Version="*" />
```
---
@@ -56,7 +56,7 @@ dotnet add package Aspire.Hosting.Milvus
```xml
+ Version="*" />
```
---
diff --git a/docs/database/mongodb-integration.md b/docs/database/mongodb-integration.md
index 7f3b9387e8..6390d1a8de 100644
--- a/docs/database/mongodb-integration.md
+++ b/docs/database/mongodb-integration.md
@@ -32,7 +32,7 @@ dotnet add package Aspire.MongoDB.Driver
```xml
+ Version="*" />
```
---
@@ -72,7 +72,7 @@ dotnet add package Aspire.Hosting.MongoDB
```xml
+ Version="*" />
```
---
diff --git a/docs/database/mysql-entity-framework-integration.md b/docs/database/mysql-entity-framework-integration.md
index c1f39faa8a..5c1a2638a2 100644
--- a/docs/database/mysql-entity-framework-integration.md
+++ b/docs/database/mysql-entity-framework-integration.md
@@ -22,7 +22,7 @@ dotnet add package Aspire.Pomelo.EntityFrameworkCore.MySql
```xml
+ Version="*" />
```
---
diff --git a/docs/database/mysql-integration.md b/docs/database/mysql-integration.md
index a750111ebf..c3d4b1b300 100644
--- a/docs/database/mysql-integration.md
+++ b/docs/database/mysql-integration.md
@@ -31,7 +31,7 @@ dotnet add package Aspire.MySqlConnector
```xml
+ Version="*" />
```
---
diff --git a/docs/database/oracle-entity-framework-integration.md b/docs/database/oracle-entity-framework-integration.md
index 78de178920..58b0a9ffd1 100644
--- a/docs/database/oracle-entity-framework-integration.md
+++ b/docs/database/oracle-entity-framework-integration.md
@@ -22,7 +22,7 @@ dotnet add package Aspire.Oracle.EntityFrameworkCore
```xml
+ Version="*" />
```
---
@@ -71,7 +71,7 @@ dotnet add package Aspire.Hosting.Oracle
```xml
+ Version="*" />
```
---
diff --git a/docs/database/postgresql-entity-framework-integration.md b/docs/database/postgresql-entity-framework-integration.md
index cb761e529f..b43365b324 100644
--- a/docs/database/postgresql-entity-framework-integration.md
+++ b/docs/database/postgresql-entity-framework-integration.md
@@ -36,7 +36,7 @@ dotnet add package Aspire.Npgsql.EntityFrameworkCore.PostgreSQL
```xml
+ Version="*" />
```
---
@@ -178,7 +178,7 @@ Here are the configurable options with corresponding default values:
| Name | Description |
|-----------------------|--------------------------------------------------------------------------------------------------------|
-| `ConnectionString` | The connection string of the SQL Server database to connect to. |
+| `ConnectionString` | The connection string of the PostgreSQL database to connect to. |
| `MaxRetryCount` | The maximum number of retry attempts. Default value is 6, set it to 0 to disable the retry mechanism. |
| `DisableHealthChecks` | A boolean value that indicates whether the database health check is disabled or not. |
| `DisableTracing` | A boolean value that indicates whether the OpenTelemetry tracing is disabled or not. |
diff --git a/docs/database/postgresql-integration.md b/docs/database/postgresql-integration.md
index 7bfd6537f9..97c8cbc866 100644
--- a/docs/database/postgresql-integration.md
+++ b/docs/database/postgresql-integration.md
@@ -22,7 +22,7 @@ dotnet add package Aspire.Npgsql
### [PackageReference](#tab/package-reference)
```xml
-
+
```
---
diff --git a/docs/database/qdrant-integration.md b/docs/database/qdrant-integration.md
index 714a76d3bb..3b7fd6cb6e 100644
--- a/docs/database/qdrant-integration.md
+++ b/docs/database/qdrant-integration.md
@@ -23,7 +23,7 @@ dotnet add package Aspire.Qdrant.Client
```xml
+ Version="*" />
```
---
@@ -61,7 +61,7 @@ dotnet add package Aspire.Hosting.Qdrant
```xml
+ Version="*" />
```
---
diff --git a/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj b/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj
index 79d847a56d..88d15291c4 100644
--- a/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj
+++ b/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj
index 6714d26c05..ce216f5a3f 100644
--- a/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj
index 69d70202e8..d7e65828e1 100644
--- a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj
+++ b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
+++ b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj
index 239036d8fb..0d0ca96228 100644
--- a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj
+++ b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.AppHost/AspireSql.AppHost.csproj
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
+++ b/docs/database/snippets/tutorial/aspiresqldeploycontainer/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj
index 6d14df1d89..f00391d896 100644
--- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj
+++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj
+++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj
index a39b3fe9f9..206a283bad 100644
--- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj
+++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/database/sql-server-entity-framework-integration.md b/docs/database/sql-server-entity-framework-integration.md
index 803bbcc634..52fac037aa 100644
--- a/docs/database/sql-server-entity-framework-integration.md
+++ b/docs/database/sql-server-entity-framework-integration.md
@@ -32,7 +32,7 @@ dotnet add package Aspire.Microsoft.EntityFrameworkCore.SqlServer
```xml
+ Version="*" />
```
---
diff --git a/docs/database/sql-server-integration.md b/docs/database/sql-server-integration.md
index f978cd07f1..b1efe11090 100644
--- a/docs/database/sql-server-integration.md
+++ b/docs/database/sql-server-integration.md
@@ -33,7 +33,7 @@ dotnet add package Aspire.Microsoft.Data.SqlClient
```xml
+ Version="*" />
```
---
diff --git a/docs/deployment/azure/aca-deployment-azd-in-depth.md b/docs/deployment/azure/aca-deployment-azd-in-depth.md
index 18db2fc981..bac6b7692b 100644
--- a/docs/deployment/azure/aca-deployment-azd-in-depth.md
+++ b/docs/deployment/azure/aca-deployment-azd-in-depth.md
@@ -213,7 +213,7 @@ After this command is executed in the starter template example used in this guid
- _infra/main.bicep_: Represents the main entry point for the deployment.
- _infra/main.parameters.json_: Used as the parameters for main Bicep (maps to environment variables defined in _.azure_ folder).
-- _infra/resoures.bicep_: Defines the Azure resources required to support the .NET Aspire project model.
+- _infra/resources.bicep_: Defines the Azure resources required to support the .NET Aspire project model.
- _AspireSample.Web/manifests/containerApp.tmpl.yaml_: The container app definition for `webfrontend`.
- _AspireSample.ApiService/manifests/containerApp.tmpl.yaml_: The container app definition for `apiservice`.
diff --git a/docs/deployment/azure/application-insights.md b/docs/deployment/azure/application-insights.md
index e38abf2b6e..12c819dee8 100644
--- a/docs/deployment/azure/application-insights.md
+++ b/docs/deployment/azure/application-insights.md
@@ -120,7 +120,7 @@ Add the following package to the `ServiceDefaults` project, so that it will be i
``` xml
+ Version="*" />
```
Add a using statement to the top of the project.
diff --git a/docs/deployment/azure/custom-bicep-templates.md b/docs/deployment/azure/custom-bicep-templates.md
index 6f0e8b9cfd..b97e451332 100644
--- a/docs/deployment/azure/custom-bicep-templates.md
+++ b/docs/deployment/azure/custom-bicep-templates.md
@@ -29,7 +29,7 @@ dotnet add package Aspire.Hosting.Azure
```xml
+ Version="*" />
```
---
diff --git a/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj b/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj
index 7745561db2..688869abc8 100644
--- a/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj
+++ b/docs/deployment/azure/snippets/AppHost.Bicep/AppHost.Bicep.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/deployment/azure/snippets/WebHook.Api/WebHook.Api.csproj b/docs/deployment/azure/snippets/WebHook.Api/WebHook.Api.csproj
index e7f5c09faf..43f642c008 100644
--- a/docs/deployment/azure/snippets/WebHook.Api/WebHook.Api.csproj
+++ b/docs/deployment/azure/snippets/WebHook.Api/WebHook.Api.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj
index 578bc3e262..1eedbd043b 100644
--- a/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj
+++ b/docs/extensibility/snippets/MailDevResource/MailDev.Hosting/MailDev.Hosting.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj
index cc335ea815..3cfa773630 100644
--- a/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj
+++ b/docs/extensibility/snippets/MailDevResource/MailDevResource.AppHost/MailDevResource.AppHost.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResource/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj b/docs/extensibility/snippets/MailDevResource/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
index f860a324a8..f8b3ef976f 100644
--- a/docs/extensibility/snippets/MailDevResource/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
+++ b/docs/extensibility/snippets/MailDevResource/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
+++ b/docs/extensibility/snippets/MailDevResource/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj
index 578bc3e262..1eedbd043b 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj
index cc335ea815..3cfa773630 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
index 6525d044b7..1c597ed03e 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj
index 457237de65..90309ddbdd 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj
@@ -7,11 +7,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj
index 578bc3e262..1eedbd043b 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj
index cc335ea815..3cfa773630 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
index 6525d044b7..1c597ed03e 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/frameworks/dapr.md b/docs/frameworks/dapr.md
index 63d4fd7d19..158be383e8 100644
--- a/docs/frameworks/dapr.md
+++ b/docs/frameworks/dapr.md
@@ -40,7 +40,7 @@ dotnet add package Aspire.Hosting.Dapr
```xml
+ Version="*" />
```
---
@@ -87,7 +87,7 @@ dotnet add package Dapr.AspNetCore
```xml
+ Version="*" />
```
---
diff --git a/docs/frameworks/orleans.md b/docs/frameworks/orleans.md
index 5e4ab7b9e3..7c73c94fea 100644
--- a/docs/frameworks/orleans.md
+++ b/docs/frameworks/orleans.md
@@ -33,7 +33,7 @@ dotnet add package Aspire.Hosting.Orleans
```xml
+ Version="*" />
```
---
diff --git a/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj b/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj
index a18a1877df..c0a250ba9d 100644
--- a/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj
+++ b/docs/frameworks/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj b/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj
+++ b/docs/frameworks/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj b/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj
index fdfcb0ee8a..475a225430 100644
--- a/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj
@@ -10,10 +10,10 @@
-
-
-
-
+
+
+
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj b/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj
index 7f5269c360..b28f76f03a 100644
--- a/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj b/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj
index 5c2bf8ddfd..0e1240f1b2 100644
--- a/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj b/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj
index c5fa5a4f77..5cec291001 100644
--- a/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/docs/fundamentals/app-host-overview.md b/docs/fundamentals/app-host-overview.md
index 1c68a07eff..165b4703d1 100644
--- a/docs/fundamentals/app-host-overview.md
+++ b/docs/fundamentals/app-host-overview.md
@@ -105,7 +105,7 @@ The "webfrontend" project resource uses method:
+To express a , use the method:
#### [Docker](#tab/docker)
@@ -141,6 +141,15 @@ For more information, see [GPU support in Podman](https://github.com/containers/
The preceding code adds a container resource named "ollama" with the image "ollama/ollama". The container resource is configured with multiple bind mounts, a named HTTP endpoint, an entrypoint that resolves to Unix shell script, and container run arguments with the method.
+#### Container resource lifecycle
+
+When the app host is run, the container resource is used to determine what container image to create and start. Under the hood, .NET Aspire runs the container using the defined container image by delegating calls to the appropriate OCI-compliant container runtime, either Docker or Podman. The following commands are used:
+
+- `docker/podman container create`: Create the container.
+- `docker/podman container start`: Start the container.
+
+These commands are used instead of `docker/podman run` to manage attached container networks, volumes, and ports. Calling these commands in this order allows any IP (network configuration) to already be present at initial startup.
+
Beyond the base resource types, , , and , .NET Aspire provides extension methods to add common resources to your app model. For more information, see [Hosting integrations](integrations-overview.md#hosting-integrations).
### Connection string and endpoint references
diff --git a/docs/fundamentals/dashboard/configuration.md b/docs/fundamentals/dashboard/configuration.md
index 3c50774a71..40149c35ed 100644
--- a/docs/fundamentals/dashboard/configuration.md
+++ b/docs/fundamentals/dashboard/configuration.md
@@ -1,7 +1,7 @@
---
title: .NET Aspire dashboard configuration
description: .NET Aspire dashboard configuration options
-ms.date: 09/11/2024
+ms.date: 10/03/2024
ms.topic: reference
---
@@ -108,11 +108,7 @@ API key authentication works by requiring each OTLP request to have a valid `x-o
CORS (Cross-Origin Resource Sharing) can be configured to allow browser apps to send telemetry to the dashboard.
-By default, browser apps are restricted from making cross domain API calls. This impacts sending telemetry to the dashboard because the dashboard and the browser app are always on different domains. Configuring CORS in the .NET Aspire dashboard removes the restriction and allows browser apps with the [OpenTelemetry SDK for JavaScript](https://opentelemetry.io/docs/languages/js/) to send telemetry directly to the dashboard OTLP HTTP endpoint.
-
-Using CORS, the dashboard and browser telemetry together is demonstrated in the [browser telemetry](https://github.com/dotnet/aspire/tree/main/playground/BrowserTelemetry) sample.
-
-To configure CORS, use the `Dashboard:Otlp:Cors` section and specify the allowed origins and headers:
+By default, browser apps are restricted from making cross domain API calls. This impacts sending telemetry to the dashboard because the dashboard and the browser app are always on different domains. To configure CORS, use the `Dashboard:Otlp:Cors` section and specify the allowed origins and headers:
```json
{
diff --git a/docs/fundamentals/dashboard/enable-browser-telemetry.md b/docs/fundamentals/dashboard/enable-browser-telemetry.md
new file mode 100644
index 0000000000..5a24d4a373
--- /dev/null
+++ b/docs/fundamentals/dashboard/enable-browser-telemetry.md
@@ -0,0 +1,163 @@
+---
+title: Enable browser telemetry
+description: Learn how to enable browser telemetry in the .NET Aspire dashboard.
+ms.date: 10/11/2024
+---
+
+# Enable browser telemetry
+
+The .NET Aspire dashboard can be configure to receive telemetry sent from browser apps. This feature is useful for monitoring client-side performance and user interactions. Browser telemetry requires additional configuration to setup. This article discusses how to enable browser telemetry in the .NET Aspire dashboard.
+
+In addition to [enabling CORS](configuration.md#otlp-cors), you also need the [JavaScript OTEL SDK](https://opentelemetry.io/docs/languages/js/getting-started/browser/) in your browser app.
+
+## OTLP configuration
+
+The .NET Aspire dashboard receives telemetry through OTLP endpoints. [HTTP OTLP endpoints](https://opentelemetry.io/docs/specs/otlp/#otlphttp) and gRPC OTLP endpoints are supported by the dashboard. Browser apps must use HTTP OLTP to send telemetry to the dashboard because browser apps don't support gRPC.
+
+To configure the gPRC or HTTP endpoints, specify the following environment variables:
+
+- `DOTNET_DASHBOARD_OTLP_ENDPOINT_URL`: The gRPC endpoint to which the dashboard connects for its data.
+- `DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL`: The HTTP endpoint to which the dashboard connects for its data.
+
+Configuration of the HTTP OTLP endpoint depends on whether the dashboard is started by the app host or is run standalone.
+
+### Configure OTLP HTTP with app host
+
+If the dashboard and your app are started by the app host, the dashboard OTLP endpoints are configured in the app host's _launchSettings.json_ file.
+
+Consider the following example JSON file:
+
+:::code language="json" source="snippets/BrowserTelemetry/BrowserTelemetry.AppHost/Properties/launchSettings.json" highlight="12,25,40":::
+
+The preceding launch settings JSON file configures all profiles to include the `DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL` environment variable.
+
+### Configure OTLP HTTP with standalone dashboard
+
+If the dashboard is used standalone, without the rest of .NET Aspire, the OTLP HTTP endpoint is enabled by default on port `18890`. However, the port must be mapped when the dashboard container is started:
+
+### [Bash](#tab/bash)
+
+```bash
+docker run --rm -it \
+ -p 18888:18888 \
+ -p 4317:18889 \
+ -p 4318:18890 -d \
+ --name aspire-dashboard \
+ mcr.microsoft.com/dotnet/aspire-dashboard:8.1.0
+```
+
+### [PowerShell](#tab/powershell)
+
+```powershell
+docker run --rm -it `
+ -p 18888:18888 `
+ -p 4317:18889 `
+ -p 4318:18890 -d `
+ --name aspire-dashboard `
+ mcr.microsoft.com/dotnet/aspire-dashboard:8.1.0
+```
+
+---
+
+The preceding command runs the dashboard container and maps gRPC OTLP to port `4317` and HTTP OTLP to port `4318`.
+
+## CORS configuration
+
+By default, browser apps are restricted from making cross domain API calls. This impacts sending telemetry to the dashboard because the dashboard and the browser app are always on different domains. Configuring CORS in the .NET Aspire dashboard removes the restriction.
+
+If the dashboard and your app are started by the app host, no CORS configuration is required. .NET Aspire automatically configures the dashboard to allow all resource origins.
+
+If the dashboard is used standlone then CORS must be configured manually. The domain used to view the browser app must be configured as an allowed origin by specifing the `DASHBOARD__OTLP__CORS__ALLOWEDORIGINS` environment variable when the dashboard container is started:
+
+### [Bash](#tab/bash)
+
+```bash
+docker run --rm -it \
+ -p 18888:18888 \
+ -p 4317:18889 \
+ -p 4318:18890 -d \
+ -e DASHBOARD__OTLP__CORS__ALLOWEDORIGINS=https://localhost:8080 \
+ --name aspire-dashboard \
+ mcr.microsoft.com/dotnet/aspire-dashboard:8.1.0
+```
+
+### [PowerShell](#tab/powershell)
+
+```powershell
+docker run --rm -it `
+ -p 18888:18888 `
+ -p 4317:18889 `
+ -p 4318:18890 -d `
+ -e DASHBOARD__OTLP__CORS__ALLOWEDORIGINS=https://localhost:8080 `
+ --name aspire-dashboard `
+ mcr.microsoft.com/dotnet/aspire-dashboard:8.1.0
+```
+
+---
+
+The preceding command runs the dashboard container and configures `https://localhost:8080` as an allowed origin. That means a browser app that is accessed using `https://localhost:8080` has permission to send the dashboard telemetry.
+
+Multiple origins can be allowed with a comma separated value. Or all origins can be allowed with the `*` wildcard. For example, `DASHBOARD__OTLP__CORS__ALLOWEDORIGINS=*`.
+
+For more information, see [.NET Aspire dashboard configuration: OTLP CORS](configuration.md#otlp-cors).
+
+## OTLP endpoint security
+
+Dashboard OTLP endpoints can be secured with API key authentication. When enabled, HTTP OTLP requests to the dashboard must include the API key as the `x-otlp-api-key` header. By default a new API key is generated each time the dashboard is run.
+
+API key authentication is automatically enabled when the dashboard is run from the app host. Dashboard authentication can be disabled by setting `DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS` to `true` in the app host's _launchSettings.json_ file.
+
+OTLP endpoints are unsecured by default in the standalone dashboard.
+
+## Browser app configuration
+
+A browser app uses the [JavaScript OTEL SDK](https://opentelemetry.io/docs/languages/js/getting-started/browser/) to send telemetry to the dashboard. Successfully sending telemetry to the dashboard requires the SDK to be correctly configured.
+
+### OTLP exporter
+
+OTLP exporters must be included in the browser app and configured with the SDK. For example, exporting distributed tracing with OTLP uses the [@opentelemetry/exporter-trace-otlp-proto](https://www.npmjs.com/package/@opentelemetry/exporter-trace-otlp-proto) package.
+
+When OTLP is added to the SDK, OTLP options must be specified. OTLP options includes:
+
+- `url`: The address that HTTP OTLP requests are made to. The address should be the dashboard HTTP OTLP endpoint and the path to the OTLP HTTP API. For example, `https://localhost:4318/v1/traces` for the trace OTLP exporter. If the browser app is launched by the app host then the HTTP OTLP endpoint is available from the `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable.
+
+- `headers`: The headers sent with requests. If OTLP endpoint API key authentication is enabled the `x-otlp-api-key` header must be sent with OTLP requests. If the browser app is launched by the app host then the API key is available from the `OTEL_EXPORTER_OTLP_HEADERS` environment variable.
+
+### Browser metadata
+
+When a browser app is configured to collect distributed traces, the browser app can set the trace parent a browser's spans using the `meta` element in the HTML. The value of the `name="traceparent"` meta element should correspond to the current trace.
+
+In a .NET app, for example, the trace parent value would likely be assigned from the and passing its value as the `content`. For example, consider the following Razor code:
+
+```razor
+
+ @if (Activity.Current is { } currentActivity)
+ {
+
+ }
+
+
+```
+
+The preceding code sets the `traceparent` meta element to the current activity ID.
+
+## Example browser telemetry code
+
+The following JavaScript code demonstrates the initialization of the OpenTelemetry JavaScript SDK and the sending of telemetry data to the dashboard:
+
+:::code language="javascript" source="snippets/BrowserTelemetry/BrowserTelemetry.Web/Scripts/index.js":::
+
+The preceding JavaScript code defines an `initializeTelemetry` function that expects the OTLP endpoint URL, the headers, and the resource attributes. These parameters are provided by the consuming browser app that pulls them from the environment variables set by the app host. Consider the following Razor code:
+
+:::code language="razor" source="snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml" highlight="31-38":::
+
+> [!TIP]
+> The bundling and minification of the JavaScript code is beyond the scope of this article.
+
+For the complete working example of how to configure the JavaScript OTEL SDK to send telemetry to the dashboard, see the [browser telemetry sample](https://github.com/dotnet/aspire/tree/main/playground/BrowserTelemetry).
+
+## See also
+
+- [.NET Aspire dashboard configuration](configuration.md)
+- [Standalone .NET Aspire dashboard](standalone.md)
+- [Browser telemetry sample](https://github.com/dotnet/aspire/tree/main/playground/BrowserTelemetry)
diff --git a/docs/fundamentals/dashboard/overview.md b/docs/fundamentals/dashboard/overview.md
index b09dafc27e..c3726d8443 100644
--- a/docs/fundamentals/dashboard/overview.md
+++ b/docs/fundamentals/dashboard/overview.md
@@ -1,15 +1,15 @@
---
title: .NET Aspire dashboard overview
description: Overview of .NET Aspire dashboard and getting started.
-ms.date: 05/30/2024
+ms.date: 10/03/2024
ms.topic: reference
---
# .NET Aspire dashboard overview
-[.NET Aspire](../../get-started/aspire-overview.md) project templates offer a sophisticated dashboard for comprehensive app monitoring and inspection. This dashboard allows you to closely track various aspects of your app, including logs, traces, and environment configurations, in real-time. It's purpose-built to enhance the local development experience, providing an insightful overview of your app's state and structure.
+[.NET Aspire](../../get-started/aspire-overview.md) project templates offer a sophisticated dashboard for comprehensive app monitoring and inspection, and it's also available in [standalone mode](#standalone-mode). This dashboard allows you to closely track various aspects of your app, including logs, traces, and environment configurations, in real-time. It's purpose-built to enhance the development experience, providing an insightful overview of your app's state and structure.
-## Using the dashboard with .NET Aspire projects
+## Use the dashboard with .NET Aspire projects
The dashboard is integrated into the .NET Aspire **AppHost**. During development the dashboard is automatically launched when you start the project. It's configured to display the .NET Aspire project's resources and telemetry.
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/BrowserTelemetry.AppHost.csproj b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/BrowserTelemetry.AppHost.csproj
new file mode 100644
index 0000000000..6e7b88a178
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/BrowserTelemetry.AppHost.csproj
@@ -0,0 +1,17 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+ true
+ 7247ba20-5e3e-4299-afa7-4ca58ebe3488
+
+
+
+
+
+
+
+
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/Program.cs b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/Program.cs
new file mode 100644
index 0000000000..4ae2eae6c7
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/Program.cs
@@ -0,0 +1,6 @@
+var builder = DistributedApplication.CreateBuilder(args);
+
+builder.AddProject("web")
+ .WithExternalHttpEndpoints();
+
+builder.Build().Run();
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/Properties/launchSettings.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/Properties/launchSettings.json
new file mode 100644
index 0000000000..c63a8da2d8
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/Properties/launchSettings.json
@@ -0,0 +1,43 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "https://localhost:15887;http://localhost:15888",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development",
+ "DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL": "https://localhost:16175",
+ "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:17037",
+ "DOTNET_ASPIRE_SHOW_DASHBOARD_RESOURCES": "true"
+ }
+ },
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "http://localhost:15888",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development",
+ "DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL": "http://localhost:16175",
+ "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17037",
+ "DOTNET_ASPIRE_SHOW_DASHBOARD_RESOURCES": "true",
+ "ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true"
+ }
+ },
+ "generate-manifest": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "dotnetRunMessages": true,
+ "commandLineArgs": "--publisher manifest --output-path aspire-manifest.json",
+ "applicationUrl": "http://localhost:15888",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/appsettings.Development.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/appsettings.Development.json
new file mode 100644
index 0000000000..0c208ae918
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/appsettings.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/appsettings.json
new file mode 100644
index 0000000000..31c092aa45
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.AppHost/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning",
+ "Aspire.Hosting.Dcp": "Warning"
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.ServiceDefaults/BrowserTelemetry.ServiceDefaults.csproj b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.ServiceDefaults/BrowserTelemetry.ServiceDefaults.csproj
new file mode 100644
index 0000000000..34c4b0bcd3
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.ServiceDefaults/BrowserTelemetry.ServiceDefaults.csproj
@@ -0,0 +1,22 @@
+
+
+
+ net8.0
+ enable
+ enable
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.ServiceDefaults/Extensions.cs b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.ServiceDefaults/Extensions.cs
new file mode 100644
index 0000000000..9b608dc41c
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.ServiceDefaults/Extensions.cs
@@ -0,0 +1,116 @@
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Diagnostics.HealthChecks;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Diagnostics.HealthChecks;
+using Microsoft.Extensions.Logging;
+using OpenTelemetry;
+using OpenTelemetry.Metrics;
+using OpenTelemetry.Trace;
+
+namespace Microsoft.Extensions.Hosting;
+// Adds common .NET Aspire services: service discovery, resilience, health checks, and OpenTelemetry.
+// This project should be referenced by each service project in your solution.
+// To learn more about using this project, see https://aka.ms/dotnet/aspire/service-defaults
+public static class Extensions
+{
+ public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBuilder builder)
+ {
+ builder.ConfigureOpenTelemetry();
+
+ builder.AddDefaultHealthChecks();
+
+ builder.Services.AddServiceDiscovery();
+
+ builder.Services.ConfigureHttpClientDefaults(http =>
+ {
+ // Turn on resilience by default
+ http.AddStandardResilienceHandler();
+
+ // Turn on service discovery by default
+ http.AddServiceDiscovery();
+ });
+
+ // Uncomment the following to restrict the allowed schemes for service discovery.
+ // builder.Services.Configure(options =>
+ // {
+ // options.AllowedSchemes = ["https"];
+ // });
+
+ return builder;
+ }
+
+ public static IHostApplicationBuilder ConfigureOpenTelemetry(this IHostApplicationBuilder builder)
+ {
+ builder.Logging.AddOpenTelemetry(logging =>
+ {
+ logging.IncludeFormattedMessage = true;
+ logging.IncludeScopes = true;
+ });
+
+ builder.Services.AddOpenTelemetry()
+ .WithMetrics(metrics =>
+ {
+ metrics.AddAspNetCoreInstrumentation()
+ .AddHttpClientInstrumentation()
+ .AddRuntimeInstrumentation();
+ })
+ .WithTracing(tracing =>
+ {
+ tracing.AddAspNetCoreInstrumentation()
+ // Uncomment the following line to enable gRPC instrumentation (requires the OpenTelemetry.Instrumentation.GrpcNetClient package)
+ //.AddGrpcClientInstrumentation()
+ .AddHttpClientInstrumentation();
+ });
+
+ builder.AddOpenTelemetryExporters();
+
+ return builder;
+ }
+
+ private static IHostApplicationBuilder AddOpenTelemetryExporters(this IHostApplicationBuilder builder)
+ {
+ var useOtlpExporter = !string.IsNullOrWhiteSpace(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]);
+
+ if (useOtlpExporter)
+ {
+ builder.Services.AddOpenTelemetry().UseOtlpExporter();
+ }
+
+ // Uncomment the following lines to enable the Azure Monitor exporter (requires the Azure.Monitor.OpenTelemetry.AspNetCore package)
+ //if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
+ //{
+ // builder.Services.AddOpenTelemetry()
+ // .UseAzureMonitor();
+ //}
+
+ return builder;
+ }
+
+ public static IHostApplicationBuilder AddDefaultHealthChecks(this IHostApplicationBuilder builder)
+ {
+ builder.Services.AddHealthChecks()
+ // Add a default liveness check to ensure app is responsive
+ .AddCheck("self", () => HealthCheckResult.Healthy(), ["live"]);
+
+ return builder;
+ }
+
+ public static WebApplication MapDefaultEndpoints(this WebApplication app)
+ {
+ // Adding health checks endpoints to applications in non-development environments has security implications.
+ // See https://aka.ms/dotnet/aspire/healthchecks for details before enabling these endpoints in non-development environments.
+ if (app.Environment.IsDevelopment())
+ {
+ // All health checks must pass for app to be considered ready to accept traffic after starting
+ app.MapHealthChecks("/health");
+
+ // Only health checks tagged with the "live" tag must pass for app to be considered alive
+ app.MapHealthChecks("/alive", new HealthCheckOptions
+ {
+ Predicate = r => r.Tags.Contains("live")
+ });
+ }
+
+ return app;
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/BrowserTelemetry.Web.csproj b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/BrowserTelemetry.Web.csproj
new file mode 100644
index 0000000000..e2f43bf727
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/BrowserTelemetry.Web.csproj
@@ -0,0 +1,39 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Index.cshtml b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Index.cshtml
new file mode 100644
index 0000000000..c19b38067d
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Index.cshtml
@@ -0,0 +1,4 @@
+@page
+
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Index.cshtml.cs b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Index.cshtml.cs
new file mode 100644
index 0000000000..88feec1412
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Index.cshtml.cs
@@ -0,0 +1,11 @@
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+namespace BrowserTelemetry.Web.Pages;
+
+public class IndexModel(ILogger logger) : PageModel
+{
+ public void OnGet()
+ {
+ logger.LogInformation("Get index");
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml
new file mode 100644
index 0000000000..2bd1f2390f
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml
@@ -0,0 +1,40 @@
+@using System.Diagnostics
+
+
+
+
+
+ @ViewData["Title"] - BrowserTelemetry
+
+
+
+ @if (Activity.Current is { } currentActivity)
+ {
+
+ }
+
+
+
+
+
+ @RenderBody()
+
+
+ @await RenderSectionAsync("Scripts", required: false)
+
+ @if (Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_ENDPOINT") is { Length: > 0 } endpointUrl)
+ {
+ var headers = Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_HEADERS");
+ var attributes = Environment.GetEnvironmentVariable("OTEL_RESOURCE_ATTRIBUTES");
+
+ }
+
+
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml.cs b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml.cs
new file mode 100644
index 0000000000..df618fc7a6
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml.cs
@@ -0,0 +1,10 @@
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+namespace BrowserTelemetry.Web.Pages.Shared;
+
+public class _LayoutModel : PageModel
+{
+ public void OnGet()
+ {
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml.css b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml.css
new file mode 100644
index 0000000000..a11440f1a1
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/Shared/_Layout.cshtml.css
@@ -0,0 +1,48 @@
+/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
+for details on configuring this project to bundle and minify static web assets. */
+a.navbar-brand {
+ white-space: normal;
+ text-align: center;
+ word-break: break-all;
+}
+
+a {
+ color: #0077cc;
+}
+
+.btn-primary {
+ color: #fff;
+ background-color: #1b6ec2;
+ border-color: #1861ac;
+}
+
+.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #1b6ec2;
+ border-color: #1861ac;
+}
+
+.border-top {
+ border-top: 1px solid #e5e5e5;
+}
+
+.border-bottom {
+ border-bottom: 1px solid #e5e5e5;
+}
+
+.box-shadow {
+ box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
+}
+
+button.accept-policy {
+ font-size: 1rem;
+ line-height: inherit;
+}
+
+.footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ white-space: nowrap;
+ line-height: 60px;
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewImports.cshtml b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewImports.cshtml
new file mode 100644
index 0000000000..f3cb24d936
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewImports.cshtml
@@ -0,0 +1,3 @@
+@using BrowserTelemetry.Web
+@namespace BrowserTelemetry.Web.Pages
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewImports.cshtml.cs b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewImports.cshtml.cs
new file mode 100644
index 0000000000..e00c5a0eef
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewImports.cshtml.cs
@@ -0,0 +1,11 @@
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+namespace BrowserTelemetry.Web.Pages
+{
+ public class _ViewImportsModel : PageModel
+ {
+ public void OnGet()
+ {
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewStart.cshtml b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewStart.cshtml
new file mode 100644
index 0000000000..a5f10045db
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewStart.cshtml.cs b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewStart.cshtml.cs
new file mode 100644
index 0000000000..d265fbbea1
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Pages/_ViewStart.cshtml.cs
@@ -0,0 +1,11 @@
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+namespace BrowserTelemetry.Web.Pages
+{
+ public class _ViewStartModel : PageModel
+ {
+ public void OnGet()
+ {
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Program.cs b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Program.cs
new file mode 100644
index 0000000000..34f3f0a730
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Program.cs
@@ -0,0 +1,28 @@
+var builder = WebApplication.CreateBuilder(args);
+
+builder.AddServiceDefaults();
+
+builder.Services.AddRazorPages();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (!app.Environment.IsDevelopment())
+{
+ app.UseExceptionHandler("/Error");
+ // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
+ app.UseHsts();
+}
+
+app.UseHttpsRedirection();
+app.UseStaticFiles();
+
+app.UseRouting();
+
+app.UseAuthorization();
+
+app.MapRazorPages();
+
+app.MapDefaultEndpoints();
+
+app.Run();
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Properties/launchSettings.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Properties/launchSettings.json
new file mode 100644
index 0000000000..d0f6a88f1d
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Properties/launchSettings.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "BrowserTelemetry.Web": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "applicationUrl": "https://localhost:60983;http://localhost:60984"
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Scripts/index.js b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Scripts/index.js
new file mode 100644
index 0000000000..178e27ba5a
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/Scripts/index.js
@@ -0,0 +1,46 @@
+import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
+import { DocumentLoadInstrumentation } from '@opentelemetry/instrumentation-document-load';
+import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
+import { registerInstrumentations } from '@opentelemetry/instrumentation';
+import { Resource } from '@opentelemetry/resources';
+import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
+import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
+import { ZoneContextManager } from '@opentelemetry/context-zone';
+
+export function initializeTelemetry(otlpUrl, headers, resourceAttributes) {
+ const otlpOptions = {
+ url: `${otlpUrl}/v1/traces`,
+ headers: parseDelimitedValues(headers)
+ };
+
+ const attributes = parseDelimitedValues(resourceAttributes);
+ attributes[SemanticResourceAttributes.SERVICE_NAME] = 'browser';
+
+ const provider = new WebTracerProvider({
+ resource: new Resource(attributes),
+ });
+ provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
+ provider.addSpanProcessor(new SimpleSpanProcessor(new OTLPTraceExporter(otlpOptions)));
+
+ provider.register({
+ // Prefer ZoneContextManager: supports asynchronous operations
+ contextManager: new ZoneContextManager(),
+ });
+
+ // Registering instrumentations
+ registerInstrumentations({
+ instrumentations: [new DocumentLoadInstrumentation()],
+ });
+}
+
+function parseDelimitedValues(s) {
+ const headers = s.split(','); // Split by comma
+ const result = {};
+
+ headers.forEach(header => {
+ const [key, value] = header.split('='); // Split by equal sign
+ result[key.trim()] = value.trim(); // Add to the object, trimming spaces
+ });
+
+ return result;
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/appsettings.Development.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/appsettings.Development.json
new file mode 100644
index 0000000000..770d3e9314
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/appsettings.Development.json
@@ -0,0 +1,9 @@
+{
+ "DetailedErrors": true,
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/appsettings.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/appsettings.json
new file mode 100644
index 0000000000..10f68b8c8b
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/package-lock.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/package-lock.json
new file mode 100644
index 0000000000..8ba6fcb44f
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/package-lock.json
@@ -0,0 +1,1955 @@
+{
+ "name": "browsertelemetry.web",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "browsertelemetry.web",
+ "version": "1.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-zone": "^1.25.1",
+ "@opentelemetry/exporter-trace-otlp-proto": "^0.52.1",
+ "@opentelemetry/instrumentation-document-load": "^0.39.0",
+ "@opentelemetry/sdk-trace-web": "^1.25.1"
+ },
+ "devDependencies": {
+ "webpack": "^5.94.0",
+ "webpack-cli": "^5.1.4"
+ }
+ },
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
+ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@opentelemetry/api": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@opentelemetry/api-logs": {
+ "version": "0.52.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz",
+ "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/context-zone": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone/-/context-zone-1.26.0.tgz",
+ "integrity": "sha512-ckBEUKo7jZnZ2jARcntv365413cTe9Ra7uMQWvdk10K3tWOUsLnBG8dSMRbkaA+XL9hWGrZ1MMI8UXrwnbp0FA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/context-zone-peer-dep": "1.26.0",
+ "zone.js": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/context-zone-peer-dep": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-1.26.0.tgz",
+ "integrity": "sha512-Mgdy0WsHR52h5AnN2nhZJrelDK6unOFr8aSn3ToETk6DLSOijayOi0M0SZM72qhWr7iFrJ1oxGEIK8uzVaSC8Q==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0",
+ "zone.js": "^0.10.2 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0"
+ }
+ },
+ "node_modules/@opentelemetry/core": {
+ "version": "1.25.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz",
+ "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.25.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/exporter-trace-otlp-proto": {
+ "version": "0.52.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.52.1.tgz",
+ "integrity": "sha512-pt6uX0noTQReHXNeEslQv7x311/F1gJzMnp1HD2qgypLRPbXDeMzzeTngRTUaUbP6hqWNtPxuLr4DEoZG+TcEQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.25.1",
+ "@opentelemetry/otlp-exporter-base": "0.52.1",
+ "@opentelemetry/otlp-transformer": "0.52.1",
+ "@opentelemetry/resources": "1.25.1",
+ "@opentelemetry/sdk-trace-base": "1.25.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.0.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation": {
+ "version": "0.52.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz",
+ "integrity": "sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.52.1",
+ "@types/shimmer": "^1.0.2",
+ "import-in-the-middle": "^1.8.1",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-document-load": {
+ "version": "0.39.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-document-load/-/instrumentation-document-load-0.39.0.tgz",
+ "integrity": "sha512-M8QTHM1fFoJvQ1EYaxAF7V5RJhG4c+o4gWHLSFQl6dvQJuGiSdhM3azenRFcTe88Sn6AmVYRGiUjlac9GSVQ2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.52.0",
+ "@opentelemetry/sdk-trace-base": "^1.0.0",
+ "@opentelemetry/sdk-trace-web": "^1.15.0",
+ "@opentelemetry/semantic-conventions": "^1.22.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-exporter-base": {
+ "version": "0.52.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.52.1.tgz",
+ "integrity": "sha512-z175NXOtX5ihdlshtYBe5RpGeBoTXVCKPPLiQlD6FHvpM4Ch+p2B0yWKYSrBfLH24H9zjJiBdTrtD+hLlfnXEQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.25.1",
+ "@opentelemetry/otlp-transformer": "0.52.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.0.0"
+ }
+ },
+ "node_modules/@opentelemetry/otlp-transformer": {
+ "version": "0.52.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.52.1.tgz",
+ "integrity": "sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.52.1",
+ "@opentelemetry/core": "1.25.1",
+ "@opentelemetry/resources": "1.25.1",
+ "@opentelemetry/sdk-logs": "0.52.1",
+ "@opentelemetry/sdk-metrics": "1.25.1",
+ "@opentelemetry/sdk-trace-base": "1.25.1",
+ "protobufjs": "^7.3.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.3.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/resources": {
+ "version": "1.25.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz",
+ "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.25.1",
+ "@opentelemetry/semantic-conventions": "1.25.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-logs": {
+ "version": "0.52.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.52.1.tgz",
+ "integrity": "sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.52.1",
+ "@opentelemetry/core": "1.25.1",
+ "@opentelemetry/resources": "1.25.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.4.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-metrics": {
+ "version": "1.25.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz",
+ "integrity": "sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.25.1",
+ "@opentelemetry/resources": "1.25.1",
+ "lodash.merge": "^4.6.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.3.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-base": {
+ "version": "1.25.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz",
+ "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.25.1",
+ "@opentelemetry/resources": "1.25.1",
+ "@opentelemetry/semantic-conventions": "1.25.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-web": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.26.0.tgz",
+ "integrity": "sha512-sxeKPcG/gUyxZ8iB8X1MI8/grfSCGgo1n2kxOE73zjVaO9yW/7JuVC3gqUaWRjtZ6VD/V3lo2/ZSwMlm6n2mdg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.26.0",
+ "@opentelemetry/sdk-trace-base": "1.26.0",
+ "@opentelemetry/semantic-conventions": "1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/core": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.26.0.tgz",
+ "integrity": "sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/resources": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.26.0.tgz",
+ "integrity": "sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.26.0",
+ "@opentelemetry/semantic-conventions": "1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/sdk-trace-base": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.26.0.tgz",
+ "integrity": "sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.26.0",
+ "@opentelemetry/resources": "1.26.0",
+ "@opentelemetry/semantic-conventions": "1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.27.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz",
+ "integrity": "sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.25.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz",
+ "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.7.4",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz",
+ "integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "node_modules/@types/shimmer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz",
+ "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==",
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
+ "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
+ "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
+ "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
+ "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
+ "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.6",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
+ "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
+ "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/wasm-gen": "1.12.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
+ "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
+ "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.11.6",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
+ "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
+ "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/helper-wasm-section": "1.12.1",
+ "@webassemblyjs/wasm-gen": "1.12.1",
+ "@webassemblyjs/wasm-opt": "1.12.1",
+ "@webassemblyjs/wasm-parser": "1.12.1",
+ "@webassemblyjs/wast-printer": "1.12.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
+ "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
+ "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
+ "@webassemblyjs/wasm-gen": "1.12.1",
+ "@webassemblyjs/wasm-parser": "1.12.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
+ "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-api-error": "1.11.6",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
+ "@webassemblyjs/ieee754": "1.11.6",
+ "@webassemblyjs/leb128": "1.11.6",
+ "@webassemblyjs/utf8": "1.11.6"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
+ "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.12.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webpack-cli/configtest": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
+ "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@webpack-cli/info": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
+ "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@webpack-cli/serve": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
+ "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ },
+ "peerDependenciesMeta": {
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/acorn": {
+ "version": "8.12.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-import-attributes": {
+ "version": "1.9.5",
+ "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
+ "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
+ "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001663",
+ "electron-to-chromium": "^1.5.28",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001666",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001666.tgz",
+ "integrity": "sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "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/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz",
+ "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==",
+ "license": "MIT"
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.31",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.31.tgz",
+ "integrity": "sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.17.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
+ "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/envinfo": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz",
+ "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "envinfo": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
+ "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastest-levenshtein": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
+ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.9.1"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "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/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/import-in-the-middle": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz",
+ "integrity": "sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "acorn": "^8.8.2",
+ "acorn-import-attributes": "^1.9.5",
+ "cjs-module-lexer": "^1.2.2",
+ "module-details-from-path": "^1.0.3"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
+ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/interpret": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
+ "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "license": "MIT"
+ },
+ "node_modules/long": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/module-details-from-path": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
+ "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==",
+ "license": "MIT"
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
+ "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/protobufjs": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz",
+ "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==",
+ "hasInstallScript": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/node": ">=13.7.0",
+ "long": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/rechoir": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz",
+ "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve": "^1.20.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/require-in-the-middle": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz",
+ "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.5",
+ "module-details-from-path": "^1.0.3",
+ "resolve": "^1.22.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shimmer": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
+ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "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",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.34.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz",
+ "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.10",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
+ "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.20",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.1",
+ "terser": "^5.26.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "license": "MIT"
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
+ "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack": {
+ "version": "5.95.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz",
+ "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.5",
+ "@webassemblyjs/ast": "^1.12.1",
+ "@webassemblyjs/wasm-edit": "^1.12.1",
+ "@webassemblyjs/wasm-parser": "^1.12.1",
+ "acorn": "^8.7.1",
+ "acorn-import-attributes": "^1.9.5",
+ "browserslist": "^4.21.10",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.1",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.2.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.10",
+ "watchpack": "^2.4.1",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-cli": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
+ "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@discoveryjs/json-ext": "^0.5.0",
+ "@webpack-cli/configtest": "^2.1.1",
+ "@webpack-cli/info": "^2.0.2",
+ "@webpack-cli/serve": "^2.0.5",
+ "colorette": "^2.0.14",
+ "commander": "^10.0.1",
+ "cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
+ "fastest-levenshtein": "^1.0.12",
+ "import-local": "^3.0.2",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
+ "webpack-merge": "^5.7.3"
+ },
+ "bin": {
+ "webpack-cli": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x"
+ },
+ "peerDependenciesMeta": {
+ "@webpack-cli/generators": {
+ "optional": true
+ },
+ "webpack-bundle-analyzer": {
+ "optional": true
+ },
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-cli/node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/webpack-merge": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
+ "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "flat": "^5.0.2",
+ "wildcard": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wildcard": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
+ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/zone.js": {
+ "version": "0.14.10",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz",
+ "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==",
+ "license": "MIT"
+ }
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/package.json b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/package.json
new file mode 100644
index 0000000000..85f84cbad8
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "browsertelemetry.web",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "build": "webpack --mode production",
+ "dev": "webpack --mode development",
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-zone": "^1.25.1",
+ "@opentelemetry/exporter-trace-otlp-proto": "^0.52.1",
+ "@opentelemetry/instrumentation-document-load": "^0.39.0",
+ "@opentelemetry/sdk-trace-web": "^1.25.1"
+ },
+ "devDependencies": {
+ "webpack": "^5.94.0",
+ "webpack-cli": "^5.1.4"
+ }
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/webpack.config.js b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/webpack.config.js
new file mode 100644
index 0000000000..471db8a287
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/webpack.config.js
@@ -0,0 +1,11 @@
+const path = require('path');
+
+module.exports = {
+ entry: './Scripts/index.js',
+ output: {
+ filename: 'bundle.js',
+ path: path.resolve(__dirname, 'wwwroot/scripts'),
+ library: 'BrowserTelemetry'
+ },
+ mode: 'production'
+};
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/css/site.css b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/css/site.css
new file mode 100644
index 0000000000..6760198309
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/css/site.css
@@ -0,0 +1,22 @@
+html {
+ font-size: 14px;
+}
+
+@media (min-width: 768px) {
+ html {
+ font-size: 16px;
+ }
+}
+
+.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
+ box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
+}
+
+html {
+ position: relative;
+ min-height: 100%;
+}
+
+body {
+ margin-bottom: 60px;
+}
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/favicon.ico b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/favicon.ico
new file mode 100644
index 0000000000..63e859b476
Binary files /dev/null and b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/favicon.ico differ
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/scripts/bundle.js b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/scripts/bundle.js
new file mode 100644
index 0000000000..68a40e60e1
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/scripts/bundle.js
@@ -0,0 +1,2 @@
+/*! For license information please see bundle.js.LICENSE.txt */
+var BrowserTelemetry;(()=>{"use strict";var __webpack_modules__={135:(e,t,r)=>{var n,o,i,a,s,u,c=r(946),_=c.Reader,l=c.Writer,S=c.util,E=c.roots.default||(c.roots.default={});E.opentelemetry=((u={}).proto=((s={}).common=((o={}).v1=((n={}).AnyValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.stringValue=e.string();break;case 2:n.boolValue=e.bool();break;case 3:n.intValue=e.int64();break;case 4:n.doubleValue=e.double();break;case 5:n.arrayValue=E.opentelemetry.proto.common.v1.ArrayValue.decode(e,e.uint32());break;case 6:n.kvlistValue=E.opentelemetry.proto.common.v1.KeyValueList.decode(e,e.uint32());break;case 7:n.bytesValue=e.bytes();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.stringValue&&e.hasOwnProperty("stringValue")&&(t.value=1,!S.isString(e.stringValue)))return"stringValue: string expected";if(null!=e.boolValue&&e.hasOwnProperty("boolValue")){if(1===t.value)return"value: multiple values";if(t.value=1,"boolean"!=typeof e.boolValue)return"boolValue: boolean expected"}if(null!=e.intValue&&e.hasOwnProperty("intValue")){if(1===t.value)return"value: multiple values";if(t.value=1,!(S.isInteger(e.intValue)||e.intValue&&S.isInteger(e.intValue.low)&&S.isInteger(e.intValue.high)))return"intValue: integer|Long expected"}if(null!=e.doubleValue&&e.hasOwnProperty("doubleValue")){if(1===t.value)return"value: multiple values";if(t.value=1,"number"!=typeof e.doubleValue)return"doubleValue: number expected"}if(null!=e.arrayValue&&e.hasOwnProperty("arrayValue")){if(1===t.value)return"value: multiple values";if(t.value=1,r=E.opentelemetry.proto.common.v1.ArrayValue.verify(e.arrayValue))return"arrayValue."+r}if(null!=e.kvlistValue&&e.hasOwnProperty("kvlistValue")){if(1===t.value)return"value: multiple values";var r;if(t.value=1,r=E.opentelemetry.proto.common.v1.KeyValueList.verify(e.kvlistValue))return"kvlistValue."+r}if(null!=e.bytesValue&&e.hasOwnProperty("bytesValue")){if(1===t.value)return"value: multiple values";if(t.value=1,!(e.bytesValue&&"number"==typeof e.bytesValue.length||S.isString(e.bytesValue)))return"bytesValue: buffer expected"}return null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.common.v1.AnyValue)return e;var t=new E.opentelemetry.proto.common.v1.AnyValue;if(null!=e.stringValue&&(t.stringValue=String(e.stringValue)),null!=e.boolValue&&(t.boolValue=Boolean(e.boolValue)),null!=e.intValue&&(S.Long?(t.intValue=S.Long.fromValue(e.intValue)).unsigned=!1:"string"==typeof e.intValue?t.intValue=parseInt(e.intValue,10):"number"==typeof e.intValue?t.intValue=e.intValue:"object"==typeof e.intValue&&(t.intValue=new S.LongBits(e.intValue.low>>>0,e.intValue.high>>>0).toNumber())),null!=e.doubleValue&&(t.doubleValue=Number(e.doubleValue)),null!=e.arrayValue){if("object"!=typeof e.arrayValue)throw TypeError(".opentelemetry.proto.common.v1.AnyValue.arrayValue: object expected");t.arrayValue=E.opentelemetry.proto.common.v1.ArrayValue.fromObject(e.arrayValue)}if(null!=e.kvlistValue){if("object"!=typeof e.kvlistValue)throw TypeError(".opentelemetry.proto.common.v1.AnyValue.kvlistValue: object expected");t.kvlistValue=E.opentelemetry.proto.common.v1.KeyValueList.fromObject(e.kvlistValue)}return null!=e.bytesValue&&("string"==typeof e.bytesValue?S.base64.decode(e.bytesValue,t.bytesValue=S.newBuffer(S.base64.length(e.bytesValue)),0):e.bytesValue.length>=0&&(t.bytesValue=e.bytesValue)),t},e.toObject=function(e,t){t||(t={});var r={};return null!=e.stringValue&&e.hasOwnProperty("stringValue")&&(r.stringValue=e.stringValue,t.oneofs&&(r.value="stringValue")),null!=e.boolValue&&e.hasOwnProperty("boolValue")&&(r.boolValue=e.boolValue,t.oneofs&&(r.value="boolValue")),null!=e.intValue&&e.hasOwnProperty("intValue")&&("number"==typeof e.intValue?r.intValue=t.longs===String?String(e.intValue):e.intValue:r.intValue=t.longs===String?S.Long.prototype.toString.call(e.intValue):t.longs===Number?new S.LongBits(e.intValue.low>>>0,e.intValue.high>>>0).toNumber():e.intValue,t.oneofs&&(r.value="intValue")),null!=e.doubleValue&&e.hasOwnProperty("doubleValue")&&(r.doubleValue=t.json&&!isFinite(e.doubleValue)?String(e.doubleValue):e.doubleValue,t.oneofs&&(r.value="doubleValue")),null!=e.arrayValue&&e.hasOwnProperty("arrayValue")&&(r.arrayValue=E.opentelemetry.proto.common.v1.ArrayValue.toObject(e.arrayValue,t),t.oneofs&&(r.value="arrayValue")),null!=e.kvlistValue&&e.hasOwnProperty("kvlistValue")&&(r.kvlistValue=E.opentelemetry.proto.common.v1.KeyValueList.toObject(e.kvlistValue,t),t.oneofs&&(r.value="kvlistValue")),null!=e.bytesValue&&e.hasOwnProperty("bytesValue")&&(r.bytesValue=t.bytes===String?S.base64.encode(e.bytesValue,0,e.bytesValue.length):t.bytes===Array?Array.prototype.slice.call(e.bytesValue):e.bytesValue,t.oneofs&&(r.value="bytesValue")),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.common.v1.AnyValue"},e}(),n.ArrayValue=function(){function e(e){if(this.values=[],e)for(var t=Object.keys(e),r=0;r>>3==1?(n.values&&n.values.length||(n.values=[]),n.values.push(E.opentelemetry.proto.common.v1.AnyValue.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.values&&e.hasOwnProperty("values")){if(!Array.isArray(e.values))return"values: array expected";for(var t=0;t>>3==1?(n.values&&n.values.length||(n.values=[]),n.values.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.values&&e.hasOwnProperty("values")){if(!Array.isArray(e.values))return"values: array expected";for(var t=0;t>>3){case 1:n.key=e.string();break;case 2:n.value=E.opentelemetry.proto.common.v1.AnyValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.key&&e.hasOwnProperty("key")&&!S.isString(e.key))return"key: string expected";if(null!=e.value&&e.hasOwnProperty("value")){var t=E.opentelemetry.proto.common.v1.AnyValue.verify(e.value);if(t)return"value."+t}return null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.common.v1.KeyValue)return e;var t=new E.opentelemetry.proto.common.v1.KeyValue;if(null!=e.key&&(t.key=String(e.key)),null!=e.value){if("object"!=typeof e.value)throw TypeError(".opentelemetry.proto.common.v1.KeyValue.value: object expected");t.value=E.opentelemetry.proto.common.v1.AnyValue.fromObject(e.value)}return t},e.toObject=function(e,t){t||(t={});var r={};return t.defaults&&(r.key="",r.value=null),null!=e.key&&e.hasOwnProperty("key")&&(r.key=e.key),null!=e.value&&e.hasOwnProperty("value")&&(r.value=E.opentelemetry.proto.common.v1.AnyValue.toObject(e.value,t)),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.common.v1.KeyValue"},e}(),n.InstrumentationScope=function(){function e(e){if(this.attributes=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.name=e.string();break;case 2:n.version=e.string();break;case 3:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 4:n.droppedAttributesCount=e.uint32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.name&&e.hasOwnProperty("name")&&!S.isString(e.name))return"name: string expected";if(null!=e.version&&e.hasOwnProperty("version")&&!S.isString(e.version))return"version: string expected";if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var t=0;t>>0),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.attributes=[]),t.defaults&&(r.name="",r.version="",r.droppedAttributesCount=0),null!=e.name&&e.hasOwnProperty("name")&&(r.name=e.name),null!=e.version&&e.hasOwnProperty("version")&&(r.version=e.version),e.attributes&&e.attributes.length){r.attributes=[];for(var n=0;n>>3){case 1:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 2:n.droppedAttributesCount=e.uint32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var t=0;t>>0),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.attributes=[]),t.defaults&&(r.droppedAttributesCount=0),e.attributes&&e.attributes.length){r.attributes=[];for(var n=0;n>>3==1?(n.resourceSpans&&n.resourceSpans.length||(n.resourceSpans=[]),n.resourceSpans.push(E.opentelemetry.proto.trace.v1.ResourceSpans.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resourceSpans&&e.hasOwnProperty("resourceSpans")){if(!Array.isArray(e.resourceSpans))return"resourceSpans: array expected";for(var t=0;t>>3){case 1:n.resource=E.opentelemetry.proto.resource.v1.Resource.decode(e,e.uint32());break;case 2:n.scopeSpans&&n.scopeSpans.length||(n.scopeSpans=[]),n.scopeSpans.push(E.opentelemetry.proto.trace.v1.ScopeSpans.decode(e,e.uint32()));break;case 3:n.schemaUrl=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resource&&e.hasOwnProperty("resource")&&(r=E.opentelemetry.proto.resource.v1.Resource.verify(e.resource)))return"resource."+r;if(null!=e.scopeSpans&&e.hasOwnProperty("scopeSpans")){if(!Array.isArray(e.scopeSpans))return"scopeSpans: array expected";for(var t=0;t>>3){case 1:n.scope=E.opentelemetry.proto.common.v1.InstrumentationScope.decode(e,e.uint32());break;case 2:n.spans&&n.spans.length||(n.spans=[]),n.spans.push(E.opentelemetry.proto.trace.v1.Span.decode(e,e.uint32()));break;case 3:n.schemaUrl=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.scope&&e.hasOwnProperty("scope")&&(r=E.opentelemetry.proto.common.v1.InstrumentationScope.verify(e.scope)))return"scope."+r;if(null!=e.spans&&e.hasOwnProperty("spans")){if(!Array.isArray(e.spans))return"spans: array expected";for(var t=0;t>>3){case 1:n.traceId=e.bytes();break;case 2:n.spanId=e.bytes();break;case 3:n.traceState=e.string();break;case 4:n.parentSpanId=e.bytes();break;case 5:n.name=e.string();break;case 6:n.kind=e.int32();break;case 7:n.startTimeUnixNano=e.fixed64();break;case 8:n.endTimeUnixNano=e.fixed64();break;case 9:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 10:n.droppedAttributesCount=e.uint32();break;case 11:n.events&&n.events.length||(n.events=[]),n.events.push(E.opentelemetry.proto.trace.v1.Span.Event.decode(e,e.uint32()));break;case 12:n.droppedEventsCount=e.uint32();break;case 13:n.links&&n.links.length||(n.links=[]),n.links.push(E.opentelemetry.proto.trace.v1.Span.Link.decode(e,e.uint32()));break;case 14:n.droppedLinksCount=e.uint32();break;case 15:n.status=E.opentelemetry.proto.trace.v1.Status.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.traceId&&e.hasOwnProperty("traceId")&&!(e.traceId&&"number"==typeof e.traceId.length||S.isString(e.traceId)))return"traceId: buffer expected";if(null!=e.spanId&&e.hasOwnProperty("spanId")&&!(e.spanId&&"number"==typeof e.spanId.length||S.isString(e.spanId)))return"spanId: buffer expected";if(null!=e.traceState&&e.hasOwnProperty("traceState")&&!S.isString(e.traceState))return"traceState: string expected";if(null!=e.parentSpanId&&e.hasOwnProperty("parentSpanId")&&!(e.parentSpanId&&"number"==typeof e.parentSpanId.length||S.isString(e.parentSpanId)))return"parentSpanId: buffer expected";if(null!=e.name&&e.hasOwnProperty("name")&&!S.isString(e.name))return"name: string expected";if(null!=e.kind&&e.hasOwnProperty("kind"))switch(e.kind){default:return"kind: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:}if(null!=e.startTimeUnixNano&&e.hasOwnProperty("startTimeUnixNano")&&!(S.isInteger(e.startTimeUnixNano)||e.startTimeUnixNano&&S.isInteger(e.startTimeUnixNano.low)&&S.isInteger(e.startTimeUnixNano.high)))return"startTimeUnixNano: integer|Long expected";if(null!=e.endTimeUnixNano&&e.hasOwnProperty("endTimeUnixNano")&&!(S.isInteger(e.endTimeUnixNano)||e.endTimeUnixNano&&S.isInteger(e.endTimeUnixNano.low)&&S.isInteger(e.endTimeUnixNano.high)))return"endTimeUnixNano: integer|Long expected";if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var t=0;t=0&&(t.traceId=e.traceId)),null!=e.spanId&&("string"==typeof e.spanId?S.base64.decode(e.spanId,t.spanId=S.newBuffer(S.base64.length(e.spanId)),0):e.spanId.length>=0&&(t.spanId=e.spanId)),null!=e.traceState&&(t.traceState=String(e.traceState)),null!=e.parentSpanId&&("string"==typeof e.parentSpanId?S.base64.decode(e.parentSpanId,t.parentSpanId=S.newBuffer(S.base64.length(e.parentSpanId)),0):e.parentSpanId.length>=0&&(t.parentSpanId=e.parentSpanId)),null!=e.name&&(t.name=String(e.name)),e.kind){default:if("number"==typeof e.kind){t.kind=e.kind;break}break;case"SPAN_KIND_UNSPECIFIED":case 0:t.kind=0;break;case"SPAN_KIND_INTERNAL":case 1:t.kind=1;break;case"SPAN_KIND_SERVER":case 2:t.kind=2;break;case"SPAN_KIND_CLIENT":case 3:t.kind=3;break;case"SPAN_KIND_PRODUCER":case 4:t.kind=4;break;case"SPAN_KIND_CONSUMER":case 5:t.kind=5}if(null!=e.startTimeUnixNano&&(S.Long?(t.startTimeUnixNano=S.Long.fromValue(e.startTimeUnixNano)).unsigned=!1:"string"==typeof e.startTimeUnixNano?t.startTimeUnixNano=parseInt(e.startTimeUnixNano,10):"number"==typeof e.startTimeUnixNano?t.startTimeUnixNano=e.startTimeUnixNano:"object"==typeof e.startTimeUnixNano&&(t.startTimeUnixNano=new S.LongBits(e.startTimeUnixNano.low>>>0,e.startTimeUnixNano.high>>>0).toNumber())),null!=e.endTimeUnixNano&&(S.Long?(t.endTimeUnixNano=S.Long.fromValue(e.endTimeUnixNano)).unsigned=!1:"string"==typeof e.endTimeUnixNano?t.endTimeUnixNano=parseInt(e.endTimeUnixNano,10):"number"==typeof e.endTimeUnixNano?t.endTimeUnixNano=e.endTimeUnixNano:"object"==typeof e.endTimeUnixNano&&(t.endTimeUnixNano=new S.LongBits(e.endTimeUnixNano.low>>>0,e.endTimeUnixNano.high>>>0).toNumber())),e.attributes){if(!Array.isArray(e.attributes))throw TypeError(".opentelemetry.proto.trace.v1.Span.attributes: array expected");t.attributes=[];for(var r=0;r>>0),e.events){if(!Array.isArray(e.events))throw TypeError(".opentelemetry.proto.trace.v1.Span.events: array expected");for(t.events=[],r=0;r>>0),e.links){if(!Array.isArray(e.links))throw TypeError(".opentelemetry.proto.trace.v1.Span.links: array expected");for(t.links=[],r=0;r>>0),null!=e.status){if("object"!=typeof e.status)throw TypeError(".opentelemetry.proto.trace.v1.Span.status: object expected");t.status=E.opentelemetry.proto.trace.v1.Status.fromObject(e.status)}return t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.attributes=[],r.events=[],r.links=[]),t.defaults){if(t.bytes===String?r.traceId="":(r.traceId=[],t.bytes!==Array&&(r.traceId=S.newBuffer(r.traceId))),t.bytes===String?r.spanId="":(r.spanId=[],t.bytes!==Array&&(r.spanId=S.newBuffer(r.spanId))),r.traceState="",t.bytes===String?r.parentSpanId="":(r.parentSpanId=[],t.bytes!==Array&&(r.parentSpanId=S.newBuffer(r.parentSpanId))),r.name="",r.kind=t.enums===String?"SPAN_KIND_UNSPECIFIED":0,S.Long){var n=new S.Long(0,0,!1);r.startTimeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.startTimeUnixNano=t.longs===String?"0":0;S.Long?(n=new S.Long(0,0,!1),r.endTimeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n):r.endTimeUnixNano=t.longs===String?"0":0,r.droppedAttributesCount=0,r.droppedEventsCount=0,r.droppedLinksCount=0,r.status=null}if(null!=e.traceId&&e.hasOwnProperty("traceId")&&(r.traceId=t.bytes===String?S.base64.encode(e.traceId,0,e.traceId.length):t.bytes===Array?Array.prototype.slice.call(e.traceId):e.traceId),null!=e.spanId&&e.hasOwnProperty("spanId")&&(r.spanId=t.bytes===String?S.base64.encode(e.spanId,0,e.spanId.length):t.bytes===Array?Array.prototype.slice.call(e.spanId):e.spanId),null!=e.traceState&&e.hasOwnProperty("traceState")&&(r.traceState=e.traceState),null!=e.parentSpanId&&e.hasOwnProperty("parentSpanId")&&(r.parentSpanId=t.bytes===String?S.base64.encode(e.parentSpanId,0,e.parentSpanId.length):t.bytes===Array?Array.prototype.slice.call(e.parentSpanId):e.parentSpanId),null!=e.name&&e.hasOwnProperty("name")&&(r.name=e.name),null!=e.kind&&e.hasOwnProperty("kind")&&(r.kind=t.enums===String?void 0===E.opentelemetry.proto.trace.v1.Span.SpanKind[e.kind]?e.kind:E.opentelemetry.proto.trace.v1.Span.SpanKind[e.kind]:e.kind),null!=e.startTimeUnixNano&&e.hasOwnProperty("startTimeUnixNano")&&("number"==typeof e.startTimeUnixNano?r.startTimeUnixNano=t.longs===String?String(e.startTimeUnixNano):e.startTimeUnixNano:r.startTimeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.startTimeUnixNano):t.longs===Number?new S.LongBits(e.startTimeUnixNano.low>>>0,e.startTimeUnixNano.high>>>0).toNumber():e.startTimeUnixNano),null!=e.endTimeUnixNano&&e.hasOwnProperty("endTimeUnixNano")&&("number"==typeof e.endTimeUnixNano?r.endTimeUnixNano=t.longs===String?String(e.endTimeUnixNano):e.endTimeUnixNano:r.endTimeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.endTimeUnixNano):t.longs===Number?new S.LongBits(e.endTimeUnixNano.low>>>0,e.endTimeUnixNano.high>>>0).toNumber():e.endTimeUnixNano),e.attributes&&e.attributes.length){r.attributes=[];for(var o=0;o>>3){case 1:n.timeUnixNano=e.fixed64();break;case 2:n.name=e.string();break;case 3:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 4:n.droppedAttributesCount=e.uint32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&!(S.isInteger(e.timeUnixNano)||e.timeUnixNano&&S.isInteger(e.timeUnixNano.low)&&S.isInteger(e.timeUnixNano.high)))return"timeUnixNano: integer|Long expected";if(null!=e.name&&e.hasOwnProperty("name")&&!S.isString(e.name))return"name: string expected";if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var t=0;t>>0,e.timeUnixNano.high>>>0).toNumber())),null!=e.name&&(t.name=String(e.name)),e.attributes){if(!Array.isArray(e.attributes))throw TypeError(".opentelemetry.proto.trace.v1.Span.Event.attributes: array expected");t.attributes=[];for(var r=0;r>>0),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.attributes=[]),t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.timeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.timeUnixNano=t.longs===String?"0":0;r.name="",r.droppedAttributesCount=0}if(null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&("number"==typeof e.timeUnixNano?r.timeUnixNano=t.longs===String?String(e.timeUnixNano):e.timeUnixNano:r.timeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.timeUnixNano):t.longs===Number?new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber():e.timeUnixNano),null!=e.name&&e.hasOwnProperty("name")&&(r.name=e.name),e.attributes&&e.attributes.length){r.attributes=[];for(var o=0;o>>3){case 1:n.traceId=e.bytes();break;case 2:n.spanId=e.bytes();break;case 3:n.traceState=e.string();break;case 4:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 5:n.droppedAttributesCount=e.uint32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.traceId&&e.hasOwnProperty("traceId")&&!(e.traceId&&"number"==typeof e.traceId.length||S.isString(e.traceId)))return"traceId: buffer expected";if(null!=e.spanId&&e.hasOwnProperty("spanId")&&!(e.spanId&&"number"==typeof e.spanId.length||S.isString(e.spanId)))return"spanId: buffer expected";if(null!=e.traceState&&e.hasOwnProperty("traceState")&&!S.isString(e.traceState))return"traceState: string expected";if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var t=0;t=0&&(t.traceId=e.traceId)),null!=e.spanId&&("string"==typeof e.spanId?S.base64.decode(e.spanId,t.spanId=S.newBuffer(S.base64.length(e.spanId)),0):e.spanId.length>=0&&(t.spanId=e.spanId)),null!=e.traceState&&(t.traceState=String(e.traceState)),e.attributes){if(!Array.isArray(e.attributes))throw TypeError(".opentelemetry.proto.trace.v1.Span.Link.attributes: array expected");t.attributes=[];for(var r=0;r>>0),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.attributes=[]),t.defaults&&(t.bytes===String?r.traceId="":(r.traceId=[],t.bytes!==Array&&(r.traceId=S.newBuffer(r.traceId))),t.bytes===String?r.spanId="":(r.spanId=[],t.bytes!==Array&&(r.spanId=S.newBuffer(r.spanId))),r.traceState="",r.droppedAttributesCount=0),null!=e.traceId&&e.hasOwnProperty("traceId")&&(r.traceId=t.bytes===String?S.base64.encode(e.traceId,0,e.traceId.length):t.bytes===Array?Array.prototype.slice.call(e.traceId):e.traceId),null!=e.spanId&&e.hasOwnProperty("spanId")&&(r.spanId=t.bytes===String?S.base64.encode(e.spanId,0,e.spanId.length):t.bytes===Array?Array.prototype.slice.call(e.spanId):e.spanId),null!=e.traceState&&e.hasOwnProperty("traceState")&&(r.traceState=e.traceState),e.attributes&&e.attributes.length){r.attributes=[];for(var n=0;n>>3){case 2:n.message=e.string();break;case 3:n.code=e.int32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.message&&e.hasOwnProperty("message")&&!S.isString(e.message))return"message: string expected";if(null!=e.code&&e.hasOwnProperty("code"))switch(e.code){default:return"code: enum value expected";case 0:case 1:case 2:}return null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.trace.v1.Status)return e;var t=new E.opentelemetry.proto.trace.v1.Status;switch(null!=e.message&&(t.message=String(e.message)),e.code){default:if("number"==typeof e.code){t.code=e.code;break}break;case"STATUS_CODE_UNSET":case 0:t.code=0;break;case"STATUS_CODE_OK":case 1:t.code=1;break;case"STATUS_CODE_ERROR":case 2:t.code=2}return t},e.toObject=function(e,t){t||(t={});var r={};return t.defaults&&(r.message="",r.code=t.enums===String?"STATUS_CODE_UNSET":0),null!=e.message&&e.hasOwnProperty("message")&&(r.message=e.message),null!=e.code&&e.hasOwnProperty("code")&&(r.code=t.enums===String?void 0===E.opentelemetry.proto.trace.v1.Status.StatusCode[e.code]?e.code:E.opentelemetry.proto.trace.v1.Status.StatusCode[e.code]:e.code),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.trace.v1.Status"},e.StatusCode=(t={},(r=Object.create(t))[t[0]="STATUS_CODE_UNSET"]=0,r[t[1]="STATUS_CODE_OK"]=1,r[t[2]="STATUS_CODE_ERROR"]=2,r),e}(),e}(),e}(),s.collector=((a={}).trace=function(){var e={};return e.v1=function(){var e={};return e.TraceService=function(){function e(e,t,r){c.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create(c.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.export=function e(t,r){return this.rpcCall(e,E.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,E.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,t,r)},"name",{value:"Export"}),e}(),e.ExportTraceServiceRequest=function(){function e(e){if(this.resourceSpans=[],e)for(var t=Object.keys(e),r=0;r>>3==1?(n.resourceSpans&&n.resourceSpans.length||(n.resourceSpans=[]),n.resourceSpans.push(E.opentelemetry.proto.trace.v1.ResourceSpans.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resourceSpans&&e.hasOwnProperty("resourceSpans")){if(!Array.isArray(e.resourceSpans))return"resourceSpans: array expected";for(var t=0;t>>3==1?n.partialSuccess=E.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.decode(e,e.uint32()):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.partialSuccess&&e.hasOwnProperty("partialSuccess")){var t=E.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.verify(e.partialSuccess);if(t)return"partialSuccess."+t}return null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse)return e;var t=new E.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse;if(null!=e.partialSuccess){if("object"!=typeof e.partialSuccess)throw TypeError(".opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse.partialSuccess: object expected");t.partialSuccess=E.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.fromObject(e.partialSuccess)}return t},e.toObject=function(e,t){t||(t={});var r={};return t.defaults&&(r.partialSuccess=null),null!=e.partialSuccess&&e.hasOwnProperty("partialSuccess")&&(r.partialSuccess=E.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess.toObject(e.partialSuccess,t)),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse"},e}(),e.ExportTracePartialSuccess=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.rejectedSpans=e.int64();break;case 2:n.errorMessage=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.rejectedSpans&&e.hasOwnProperty("rejectedSpans")&&!(S.isInteger(e.rejectedSpans)||e.rejectedSpans&&S.isInteger(e.rejectedSpans.low)&&S.isInteger(e.rejectedSpans.high))?"rejectedSpans: integer|Long expected":null!=e.errorMessage&&e.hasOwnProperty("errorMessage")&&!S.isString(e.errorMessage)?"errorMessage: string expected":null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess)return e;var t=new E.opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess;return null!=e.rejectedSpans&&(S.Long?(t.rejectedSpans=S.Long.fromValue(e.rejectedSpans)).unsigned=!1:"string"==typeof e.rejectedSpans?t.rejectedSpans=parseInt(e.rejectedSpans,10):"number"==typeof e.rejectedSpans?t.rejectedSpans=e.rejectedSpans:"object"==typeof e.rejectedSpans&&(t.rejectedSpans=new S.LongBits(e.rejectedSpans.low>>>0,e.rejectedSpans.high>>>0).toNumber())),null!=e.errorMessage&&(t.errorMessage=String(e.errorMessage)),t},e.toObject=function(e,t){t||(t={});var r={};if(t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.rejectedSpans=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.rejectedSpans=t.longs===String?"0":0;r.errorMessage=""}return null!=e.rejectedSpans&&e.hasOwnProperty("rejectedSpans")&&("number"==typeof e.rejectedSpans?r.rejectedSpans=t.longs===String?String(e.rejectedSpans):e.rejectedSpans:r.rejectedSpans=t.longs===String?S.Long.prototype.toString.call(e.rejectedSpans):t.longs===Number?new S.LongBits(e.rejectedSpans.low>>>0,e.rejectedSpans.high>>>0).toNumber():e.rejectedSpans),null!=e.errorMessage&&e.hasOwnProperty("errorMessage")&&(r.errorMessage=e.errorMessage),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.collector.trace.v1.ExportTracePartialSuccess"},e}(),e}(),e}(),a.metrics=function(){var e={};return e.v1=function(){var e={};return e.MetricsService=function(){function e(e,t,r){c.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create(c.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.export=function e(t,r){return this.rpcCall(e,E.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest,E.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse,t,r)},"name",{value:"Export"}),e}(),e.ExportMetricsServiceRequest=function(){function e(e){if(this.resourceMetrics=[],e)for(var t=Object.keys(e),r=0;r>>3==1?(n.resourceMetrics&&n.resourceMetrics.length||(n.resourceMetrics=[]),n.resourceMetrics.push(E.opentelemetry.proto.metrics.v1.ResourceMetrics.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resourceMetrics&&e.hasOwnProperty("resourceMetrics")){if(!Array.isArray(e.resourceMetrics))return"resourceMetrics: array expected";for(var t=0;t>>3==1?n.partialSuccess=E.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.decode(e,e.uint32()):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.partialSuccess&&e.hasOwnProperty("partialSuccess")){var t=E.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.verify(e.partialSuccess);if(t)return"partialSuccess."+t}return null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse)return e;var t=new E.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse;if(null!=e.partialSuccess){if("object"!=typeof e.partialSuccess)throw TypeError(".opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse.partialSuccess: object expected");t.partialSuccess=E.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.fromObject(e.partialSuccess)}return t},e.toObject=function(e,t){t||(t={});var r={};return t.defaults&&(r.partialSuccess=null),null!=e.partialSuccess&&e.hasOwnProperty("partialSuccess")&&(r.partialSuccess=E.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess.toObject(e.partialSuccess,t)),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse"},e}(),e.ExportMetricsPartialSuccess=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.rejectedDataPoints=e.int64();break;case 2:n.errorMessage=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.rejectedDataPoints&&e.hasOwnProperty("rejectedDataPoints")&&!(S.isInteger(e.rejectedDataPoints)||e.rejectedDataPoints&&S.isInteger(e.rejectedDataPoints.low)&&S.isInteger(e.rejectedDataPoints.high))?"rejectedDataPoints: integer|Long expected":null!=e.errorMessage&&e.hasOwnProperty("errorMessage")&&!S.isString(e.errorMessage)?"errorMessage: string expected":null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess)return e;var t=new E.opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess;return null!=e.rejectedDataPoints&&(S.Long?(t.rejectedDataPoints=S.Long.fromValue(e.rejectedDataPoints)).unsigned=!1:"string"==typeof e.rejectedDataPoints?t.rejectedDataPoints=parseInt(e.rejectedDataPoints,10):"number"==typeof e.rejectedDataPoints?t.rejectedDataPoints=e.rejectedDataPoints:"object"==typeof e.rejectedDataPoints&&(t.rejectedDataPoints=new S.LongBits(e.rejectedDataPoints.low>>>0,e.rejectedDataPoints.high>>>0).toNumber())),null!=e.errorMessage&&(t.errorMessage=String(e.errorMessage)),t},e.toObject=function(e,t){t||(t={});var r={};if(t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.rejectedDataPoints=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.rejectedDataPoints=t.longs===String?"0":0;r.errorMessage=""}return null!=e.rejectedDataPoints&&e.hasOwnProperty("rejectedDataPoints")&&("number"==typeof e.rejectedDataPoints?r.rejectedDataPoints=t.longs===String?String(e.rejectedDataPoints):e.rejectedDataPoints:r.rejectedDataPoints=t.longs===String?S.Long.prototype.toString.call(e.rejectedDataPoints):t.longs===Number?new S.LongBits(e.rejectedDataPoints.low>>>0,e.rejectedDataPoints.high>>>0).toNumber():e.rejectedDataPoints),null!=e.errorMessage&&e.hasOwnProperty("errorMessage")&&(r.errorMessage=e.errorMessage),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.collector.metrics.v1.ExportMetricsPartialSuccess"},e}(),e}(),e}(),a.logs=function(){var e={};return e.v1=function(){var e={};return e.LogsService=function(){function e(e,t,r){c.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create(c.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.export=function e(t,r){return this.rpcCall(e,E.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest,E.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse,t,r)},"name",{value:"Export"}),e}(),e.ExportLogsServiceRequest=function(){function e(e){if(this.resourceLogs=[],e)for(var t=Object.keys(e),r=0;r>>3==1?(n.resourceLogs&&n.resourceLogs.length||(n.resourceLogs=[]),n.resourceLogs.push(E.opentelemetry.proto.logs.v1.ResourceLogs.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resourceLogs&&e.hasOwnProperty("resourceLogs")){if(!Array.isArray(e.resourceLogs))return"resourceLogs: array expected";for(var t=0;t>>3==1?n.partialSuccess=E.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.decode(e,e.uint32()):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.partialSuccess&&e.hasOwnProperty("partialSuccess")){var t=E.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.verify(e.partialSuccess);if(t)return"partialSuccess."+t}return null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse)return e;var t=new E.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse;if(null!=e.partialSuccess){if("object"!=typeof e.partialSuccess)throw TypeError(".opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse.partialSuccess: object expected");t.partialSuccess=E.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.fromObject(e.partialSuccess)}return t},e.toObject=function(e,t){t||(t={});var r={};return t.defaults&&(r.partialSuccess=null),null!=e.partialSuccess&&e.hasOwnProperty("partialSuccess")&&(r.partialSuccess=E.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess.toObject(e.partialSuccess,t)),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse"},e}(),e.ExportLogsPartialSuccess=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.rejectedLogRecords=e.int64();break;case 2:n.errorMessage=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.rejectedLogRecords&&e.hasOwnProperty("rejectedLogRecords")&&!(S.isInteger(e.rejectedLogRecords)||e.rejectedLogRecords&&S.isInteger(e.rejectedLogRecords.low)&&S.isInteger(e.rejectedLogRecords.high))?"rejectedLogRecords: integer|Long expected":null!=e.errorMessage&&e.hasOwnProperty("errorMessage")&&!S.isString(e.errorMessage)?"errorMessage: string expected":null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess)return e;var t=new E.opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess;return null!=e.rejectedLogRecords&&(S.Long?(t.rejectedLogRecords=S.Long.fromValue(e.rejectedLogRecords)).unsigned=!1:"string"==typeof e.rejectedLogRecords?t.rejectedLogRecords=parseInt(e.rejectedLogRecords,10):"number"==typeof e.rejectedLogRecords?t.rejectedLogRecords=e.rejectedLogRecords:"object"==typeof e.rejectedLogRecords&&(t.rejectedLogRecords=new S.LongBits(e.rejectedLogRecords.low>>>0,e.rejectedLogRecords.high>>>0).toNumber())),null!=e.errorMessage&&(t.errorMessage=String(e.errorMessage)),t},e.toObject=function(e,t){t||(t={});var r={};if(t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.rejectedLogRecords=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.rejectedLogRecords=t.longs===String?"0":0;r.errorMessage=""}return null!=e.rejectedLogRecords&&e.hasOwnProperty("rejectedLogRecords")&&("number"==typeof e.rejectedLogRecords?r.rejectedLogRecords=t.longs===String?String(e.rejectedLogRecords):e.rejectedLogRecords:r.rejectedLogRecords=t.longs===String?S.Long.prototype.toString.call(e.rejectedLogRecords):t.longs===Number?new S.LongBits(e.rejectedLogRecords.low>>>0,e.rejectedLogRecords.high>>>0).toNumber():e.rejectedLogRecords),null!=e.errorMessage&&e.hasOwnProperty("errorMessage")&&(r.errorMessage=e.errorMessage),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.collector.logs.v1.ExportLogsPartialSuccess"},e}(),e}(),e}(),a),s.metrics=function(){var e={};return e.v1=function(){var e,t,r={};return r.MetricsData=function(){function e(e){if(this.resourceMetrics=[],e)for(var t=Object.keys(e),r=0;r>>3==1?(n.resourceMetrics&&n.resourceMetrics.length||(n.resourceMetrics=[]),n.resourceMetrics.push(E.opentelemetry.proto.metrics.v1.ResourceMetrics.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resourceMetrics&&e.hasOwnProperty("resourceMetrics")){if(!Array.isArray(e.resourceMetrics))return"resourceMetrics: array expected";for(var t=0;t>>3){case 1:n.resource=E.opentelemetry.proto.resource.v1.Resource.decode(e,e.uint32());break;case 2:n.scopeMetrics&&n.scopeMetrics.length||(n.scopeMetrics=[]),n.scopeMetrics.push(E.opentelemetry.proto.metrics.v1.ScopeMetrics.decode(e,e.uint32()));break;case 3:n.schemaUrl=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resource&&e.hasOwnProperty("resource")&&(r=E.opentelemetry.proto.resource.v1.Resource.verify(e.resource)))return"resource."+r;if(null!=e.scopeMetrics&&e.hasOwnProperty("scopeMetrics")){if(!Array.isArray(e.scopeMetrics))return"scopeMetrics: array expected";for(var t=0;t>>3){case 1:n.scope=E.opentelemetry.proto.common.v1.InstrumentationScope.decode(e,e.uint32());break;case 2:n.metrics&&n.metrics.length||(n.metrics=[]),n.metrics.push(E.opentelemetry.proto.metrics.v1.Metric.decode(e,e.uint32()));break;case 3:n.schemaUrl=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.scope&&e.hasOwnProperty("scope")&&(r=E.opentelemetry.proto.common.v1.InstrumentationScope.verify(e.scope)))return"scope."+r;if(null!=e.metrics&&e.hasOwnProperty("metrics")){if(!Array.isArray(e.metrics))return"metrics: array expected";for(var t=0;t>>3){case 1:n.name=e.string();break;case 2:n.description=e.string();break;case 3:n.unit=e.string();break;case 5:n.gauge=E.opentelemetry.proto.metrics.v1.Gauge.decode(e,e.uint32());break;case 7:n.sum=E.opentelemetry.proto.metrics.v1.Sum.decode(e,e.uint32());break;case 9:n.histogram=E.opentelemetry.proto.metrics.v1.Histogram.decode(e,e.uint32());break;case 10:n.exponentialHistogram=E.opentelemetry.proto.metrics.v1.ExponentialHistogram.decode(e,e.uint32());break;case 11:n.summary=E.opentelemetry.proto.metrics.v1.Summary.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.name&&e.hasOwnProperty("name")&&!S.isString(e.name))return"name: string expected";if(null!=e.description&&e.hasOwnProperty("description")&&!S.isString(e.description))return"description: string expected";if(null!=e.unit&&e.hasOwnProperty("unit")&&!S.isString(e.unit))return"unit: string expected";if(null!=e.gauge&&e.hasOwnProperty("gauge")&&(t.data=1,r=E.opentelemetry.proto.metrics.v1.Gauge.verify(e.gauge)))return"gauge."+r;if(null!=e.sum&&e.hasOwnProperty("sum")){if(1===t.data)return"data: multiple values";if(t.data=1,r=E.opentelemetry.proto.metrics.v1.Sum.verify(e.sum))return"sum."+r}if(null!=e.histogram&&e.hasOwnProperty("histogram")){if(1===t.data)return"data: multiple values";if(t.data=1,r=E.opentelemetry.proto.metrics.v1.Histogram.verify(e.histogram))return"histogram."+r}if(null!=e.exponentialHistogram&&e.hasOwnProperty("exponentialHistogram")){if(1===t.data)return"data: multiple values";if(t.data=1,r=E.opentelemetry.proto.metrics.v1.ExponentialHistogram.verify(e.exponentialHistogram))return"exponentialHistogram."+r}if(null!=e.summary&&e.hasOwnProperty("summary")){if(1===t.data)return"data: multiple values";var r;if(t.data=1,r=E.opentelemetry.proto.metrics.v1.Summary.verify(e.summary))return"summary."+r}return null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.metrics.v1.Metric)return e;var t=new E.opentelemetry.proto.metrics.v1.Metric;if(null!=e.name&&(t.name=String(e.name)),null!=e.description&&(t.description=String(e.description)),null!=e.unit&&(t.unit=String(e.unit)),null!=e.gauge){if("object"!=typeof e.gauge)throw TypeError(".opentelemetry.proto.metrics.v1.Metric.gauge: object expected");t.gauge=E.opentelemetry.proto.metrics.v1.Gauge.fromObject(e.gauge)}if(null!=e.sum){if("object"!=typeof e.sum)throw TypeError(".opentelemetry.proto.metrics.v1.Metric.sum: object expected");t.sum=E.opentelemetry.proto.metrics.v1.Sum.fromObject(e.sum)}if(null!=e.histogram){if("object"!=typeof e.histogram)throw TypeError(".opentelemetry.proto.metrics.v1.Metric.histogram: object expected");t.histogram=E.opentelemetry.proto.metrics.v1.Histogram.fromObject(e.histogram)}if(null!=e.exponentialHistogram){if("object"!=typeof e.exponentialHistogram)throw TypeError(".opentelemetry.proto.metrics.v1.Metric.exponentialHistogram: object expected");t.exponentialHistogram=E.opentelemetry.proto.metrics.v1.ExponentialHistogram.fromObject(e.exponentialHistogram)}if(null!=e.summary){if("object"!=typeof e.summary)throw TypeError(".opentelemetry.proto.metrics.v1.Metric.summary: object expected");t.summary=E.opentelemetry.proto.metrics.v1.Summary.fromObject(e.summary)}return t},e.toObject=function(e,t){t||(t={});var r={};return t.defaults&&(r.name="",r.description="",r.unit=""),null!=e.name&&e.hasOwnProperty("name")&&(r.name=e.name),null!=e.description&&e.hasOwnProperty("description")&&(r.description=e.description),null!=e.unit&&e.hasOwnProperty("unit")&&(r.unit=e.unit),null!=e.gauge&&e.hasOwnProperty("gauge")&&(r.gauge=E.opentelemetry.proto.metrics.v1.Gauge.toObject(e.gauge,t),t.oneofs&&(r.data="gauge")),null!=e.sum&&e.hasOwnProperty("sum")&&(r.sum=E.opentelemetry.proto.metrics.v1.Sum.toObject(e.sum,t),t.oneofs&&(r.data="sum")),null!=e.histogram&&e.hasOwnProperty("histogram")&&(r.histogram=E.opentelemetry.proto.metrics.v1.Histogram.toObject(e.histogram,t),t.oneofs&&(r.data="histogram")),null!=e.exponentialHistogram&&e.hasOwnProperty("exponentialHistogram")&&(r.exponentialHistogram=E.opentelemetry.proto.metrics.v1.ExponentialHistogram.toObject(e.exponentialHistogram,t),t.oneofs&&(r.data="exponentialHistogram")),null!=e.summary&&e.hasOwnProperty("summary")&&(r.summary=E.opentelemetry.proto.metrics.v1.Summary.toObject(e.summary,t),t.oneofs&&(r.data="summary")),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.metrics.v1.Metric"},e}(),r.Gauge=function(){function e(e){if(this.dataPoints=[],e)for(var t=Object.keys(e),r=0;r>>3==1?(n.dataPoints&&n.dataPoints.length||(n.dataPoints=[]),n.dataPoints.push(E.opentelemetry.proto.metrics.v1.NumberDataPoint.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.dataPoints&&e.hasOwnProperty("dataPoints")){if(!Array.isArray(e.dataPoints))return"dataPoints: array expected";for(var t=0;t>>3){case 1:n.dataPoints&&n.dataPoints.length||(n.dataPoints=[]),n.dataPoints.push(E.opentelemetry.proto.metrics.v1.NumberDataPoint.decode(e,e.uint32()));break;case 2:n.aggregationTemporality=e.int32();break;case 3:n.isMonotonic=e.bool();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.dataPoints&&e.hasOwnProperty("dataPoints")){if(!Array.isArray(e.dataPoints))return"dataPoints: array expected";for(var t=0;t>>3){case 1:n.dataPoints&&n.dataPoints.length||(n.dataPoints=[]),n.dataPoints.push(E.opentelemetry.proto.metrics.v1.HistogramDataPoint.decode(e,e.uint32()));break;case 2:n.aggregationTemporality=e.int32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.dataPoints&&e.hasOwnProperty("dataPoints")){if(!Array.isArray(e.dataPoints))return"dataPoints: array expected";for(var t=0;t>>3){case 1:n.dataPoints&&n.dataPoints.length||(n.dataPoints=[]),n.dataPoints.push(E.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.decode(e,e.uint32()));break;case 2:n.aggregationTemporality=e.int32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.dataPoints&&e.hasOwnProperty("dataPoints")){if(!Array.isArray(e.dataPoints))return"dataPoints: array expected";for(var t=0;t>>3==1?(n.dataPoints&&n.dataPoints.length||(n.dataPoints=[]),n.dataPoints.push(E.opentelemetry.proto.metrics.v1.SummaryDataPoint.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.dataPoints&&e.hasOwnProperty("dataPoints")){if(!Array.isArray(e.dataPoints))return"dataPoints: array expected";for(var t=0;t>>3){case 7:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 2:n.startTimeUnixNano=e.fixed64();break;case 3:n.timeUnixNano=e.fixed64();break;case 4:n.asDouble=e.double();break;case 6:n.asInt=e.sfixed64();break;case 5:n.exemplars&&n.exemplars.length||(n.exemplars=[]),n.exemplars.push(E.opentelemetry.proto.metrics.v1.Exemplar.decode(e,e.uint32()));break;case 8:n.flags=e.uint32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var r=0;r>>0,e.startTimeUnixNano.high>>>0).toNumber())),null!=e.timeUnixNano&&(S.Long?(t.timeUnixNano=S.Long.fromValue(e.timeUnixNano)).unsigned=!1:"string"==typeof e.timeUnixNano?t.timeUnixNano=parseInt(e.timeUnixNano,10):"number"==typeof e.timeUnixNano?t.timeUnixNano=e.timeUnixNano:"object"==typeof e.timeUnixNano&&(t.timeUnixNano=new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber())),null!=e.asDouble&&(t.asDouble=Number(e.asDouble)),null!=e.asInt&&(S.Long?(t.asInt=S.Long.fromValue(e.asInt)).unsigned=!1:"string"==typeof e.asInt?t.asInt=parseInt(e.asInt,10):"number"==typeof e.asInt?t.asInt=e.asInt:"object"==typeof e.asInt&&(t.asInt=new S.LongBits(e.asInt.low>>>0,e.asInt.high>>>0).toNumber())),e.exemplars){if(!Array.isArray(e.exemplars))throw TypeError(".opentelemetry.proto.metrics.v1.NumberDataPoint.exemplars: array expected");for(t.exemplars=[],r=0;r>>0),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.exemplars=[],r.attributes=[]),t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.startTimeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.startTimeUnixNano=t.longs===String?"0":0;S.Long?(n=new S.Long(0,0,!1),r.timeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n):r.timeUnixNano=t.longs===String?"0":0,r.flags=0}if(null!=e.startTimeUnixNano&&e.hasOwnProperty("startTimeUnixNano")&&("number"==typeof e.startTimeUnixNano?r.startTimeUnixNano=t.longs===String?String(e.startTimeUnixNano):e.startTimeUnixNano:r.startTimeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.startTimeUnixNano):t.longs===Number?new S.LongBits(e.startTimeUnixNano.low>>>0,e.startTimeUnixNano.high>>>0).toNumber():e.startTimeUnixNano),null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&("number"==typeof e.timeUnixNano?r.timeUnixNano=t.longs===String?String(e.timeUnixNano):e.timeUnixNano:r.timeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.timeUnixNano):t.longs===Number?new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber():e.timeUnixNano),null!=e.asDouble&&e.hasOwnProperty("asDouble")&&(r.asDouble=t.json&&!isFinite(e.asDouble)?String(e.asDouble):e.asDouble,t.oneofs&&(r.value="asDouble")),e.exemplars&&e.exemplars.length){r.exemplars=[];for(var o=0;o>>0,e.asInt.high>>>0).toNumber():e.asInt,t.oneofs&&(r.value="asInt")),e.attributes&&e.attributes.length)for(r.attributes=[],o=0;o>>3){case 9:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 2:n.startTimeUnixNano=e.fixed64();break;case 3:n.timeUnixNano=e.fixed64();break;case 4:n.count=e.fixed64();break;case 5:n.sum=e.double();break;case 6:if(n.bucketCounts&&n.bucketCounts.length||(n.bucketCounts=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>0,e.startTimeUnixNano.high>>>0).toNumber())),null!=e.timeUnixNano&&(S.Long?(t.timeUnixNano=S.Long.fromValue(e.timeUnixNano)).unsigned=!1:"string"==typeof e.timeUnixNano?t.timeUnixNano=parseInt(e.timeUnixNano,10):"number"==typeof e.timeUnixNano?t.timeUnixNano=e.timeUnixNano:"object"==typeof e.timeUnixNano&&(t.timeUnixNano=new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber())),null!=e.count&&(S.Long?(t.count=S.Long.fromValue(e.count)).unsigned=!1:"string"==typeof e.count?t.count=parseInt(e.count,10):"number"==typeof e.count?t.count=e.count:"object"==typeof e.count&&(t.count=new S.LongBits(e.count.low>>>0,e.count.high>>>0).toNumber())),null!=e.sum&&(t.sum=Number(e.sum)),e.bucketCounts){if(!Array.isArray(e.bucketCounts))throw TypeError(".opentelemetry.proto.metrics.v1.HistogramDataPoint.bucketCounts: array expected");for(t.bucketCounts=[],r=0;r>>0,e.bucketCounts[r].high>>>0).toNumber())}if(e.explicitBounds){if(!Array.isArray(e.explicitBounds))throw TypeError(".opentelemetry.proto.metrics.v1.HistogramDataPoint.explicitBounds: array expected");for(t.explicitBounds=[],r=0;r>>0),null!=e.min&&(t.min=Number(e.min)),null!=e.max&&(t.max=Number(e.max)),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.bucketCounts=[],r.explicitBounds=[],r.exemplars=[],r.attributes=[]),t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.startTimeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.startTimeUnixNano=t.longs===String?"0":0;S.Long?(n=new S.Long(0,0,!1),r.timeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n):r.timeUnixNano=t.longs===String?"0":0,S.Long?(n=new S.Long(0,0,!1),r.count=t.longs===String?n.toString():t.longs===Number?n.toNumber():n):r.count=t.longs===String?"0":0,r.flags=0}if(null!=e.startTimeUnixNano&&e.hasOwnProperty("startTimeUnixNano")&&("number"==typeof e.startTimeUnixNano?r.startTimeUnixNano=t.longs===String?String(e.startTimeUnixNano):e.startTimeUnixNano:r.startTimeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.startTimeUnixNano):t.longs===Number?new S.LongBits(e.startTimeUnixNano.low>>>0,e.startTimeUnixNano.high>>>0).toNumber():e.startTimeUnixNano),null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&("number"==typeof e.timeUnixNano?r.timeUnixNano=t.longs===String?String(e.timeUnixNano):e.timeUnixNano:r.timeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.timeUnixNano):t.longs===Number?new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber():e.timeUnixNano),null!=e.count&&e.hasOwnProperty("count")&&("number"==typeof e.count?r.count=t.longs===String?String(e.count):e.count:r.count=t.longs===String?S.Long.prototype.toString.call(e.count):t.longs===Number?new S.LongBits(e.count.low>>>0,e.count.high>>>0).toNumber():e.count),null!=e.sum&&e.hasOwnProperty("sum")&&(r.sum=t.json&&!isFinite(e.sum)?String(e.sum):e.sum,t.oneofs&&(r._sum="sum")),e.bucketCounts&&e.bucketCounts.length){r.bucketCounts=[];for(var o=0;o>>0,e.bucketCounts[o].high>>>0).toNumber():e.bucketCounts[o]}if(e.explicitBounds&&e.explicitBounds.length)for(r.explicitBounds=[],o=0;o>>3){case 1:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 2:n.startTimeUnixNano=e.fixed64();break;case 3:n.timeUnixNano=e.fixed64();break;case 4:n.count=e.fixed64();break;case 5:n.sum=e.double();break;case 6:n.scale=e.sint32();break;case 7:n.zeroCount=e.fixed64();break;case 8:n.positive=E.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.decode(e,e.uint32());break;case 9:n.negative=E.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.decode(e,e.uint32());break;case 10:n.flags=e.uint32();break;case 11:n.exemplars&&n.exemplars.length||(n.exemplars=[]),n.exemplars.push(E.opentelemetry.proto.metrics.v1.Exemplar.decode(e,e.uint32()));break;case 12:n.min=e.double();break;case 13:n.max=e.double();break;case 14:n.zeroThreshold=e.double();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var r=0;r>>0,e.startTimeUnixNano.high>>>0).toNumber())),null!=e.timeUnixNano&&(S.Long?(t.timeUnixNano=S.Long.fromValue(e.timeUnixNano)).unsigned=!1:"string"==typeof e.timeUnixNano?t.timeUnixNano=parseInt(e.timeUnixNano,10):"number"==typeof e.timeUnixNano?t.timeUnixNano=e.timeUnixNano:"object"==typeof e.timeUnixNano&&(t.timeUnixNano=new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber())),null!=e.count&&(S.Long?(t.count=S.Long.fromValue(e.count)).unsigned=!1:"string"==typeof e.count?t.count=parseInt(e.count,10):"number"==typeof e.count?t.count=e.count:"object"==typeof e.count&&(t.count=new S.LongBits(e.count.low>>>0,e.count.high>>>0).toNumber())),null!=e.sum&&(t.sum=Number(e.sum)),null!=e.scale&&(t.scale=0|e.scale),null!=e.zeroCount&&(S.Long?(t.zeroCount=S.Long.fromValue(e.zeroCount)).unsigned=!1:"string"==typeof e.zeroCount?t.zeroCount=parseInt(e.zeroCount,10):"number"==typeof e.zeroCount?t.zeroCount=e.zeroCount:"object"==typeof e.zeroCount&&(t.zeroCount=new S.LongBits(e.zeroCount.low>>>0,e.zeroCount.high>>>0).toNumber())),null!=e.positive){if("object"!=typeof e.positive)throw TypeError(".opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.positive: object expected");t.positive=E.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.fromObject(e.positive)}if(null!=e.negative){if("object"!=typeof e.negative)throw TypeError(".opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.negative: object expected");t.negative=E.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.fromObject(e.negative)}if(null!=e.flags&&(t.flags=e.flags>>>0),e.exemplars){if(!Array.isArray(e.exemplars))throw TypeError(".opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.exemplars: array expected");for(t.exemplars=[],r=0;r>>0,e.startTimeUnixNano.high>>>0).toNumber():e.startTimeUnixNano),null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&("number"==typeof e.timeUnixNano?r.timeUnixNano=t.longs===String?String(e.timeUnixNano):e.timeUnixNano:r.timeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.timeUnixNano):t.longs===Number?new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber():e.timeUnixNano),null!=e.count&&e.hasOwnProperty("count")&&("number"==typeof e.count?r.count=t.longs===String?String(e.count):e.count:r.count=t.longs===String?S.Long.prototype.toString.call(e.count):t.longs===Number?new S.LongBits(e.count.low>>>0,e.count.high>>>0).toNumber():e.count),null!=e.sum&&e.hasOwnProperty("sum")&&(r.sum=t.json&&!isFinite(e.sum)?String(e.sum):e.sum,t.oneofs&&(r._sum="sum")),null!=e.scale&&e.hasOwnProperty("scale")&&(r.scale=e.scale),null!=e.zeroCount&&e.hasOwnProperty("zeroCount")&&("number"==typeof e.zeroCount?r.zeroCount=t.longs===String?String(e.zeroCount):e.zeroCount:r.zeroCount=t.longs===String?S.Long.prototype.toString.call(e.zeroCount):t.longs===Number?new S.LongBits(e.zeroCount.low>>>0,e.zeroCount.high>>>0).toNumber():e.zeroCount),null!=e.positive&&e.hasOwnProperty("positive")&&(r.positive=E.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.toObject(e.positive,t)),null!=e.negative&&e.hasOwnProperty("negative")&&(r.negative=E.opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets.toObject(e.negative,t)),null!=e.flags&&e.hasOwnProperty("flags")&&(r.flags=e.flags),e.exemplars&&e.exemplars.length)for(r.exemplars=[],o=0;o>>3){case 1:n.offset=e.sint32();break;case 2:if(n.bucketCounts&&n.bucketCounts.length||(n.bucketCounts=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>0,e.bucketCounts[r].high>>>0).toNumber(!0))}return t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.bucketCounts=[]),t.defaults&&(r.offset=0),null!=e.offset&&e.hasOwnProperty("offset")&&(r.offset=e.offset),e.bucketCounts&&e.bucketCounts.length){r.bucketCounts=[];for(var n=0;n>>0,e.bucketCounts[n].high>>>0).toNumber(!0):e.bucketCounts[n]}return r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets"},e}(),e}(),r.SummaryDataPoint=function(){function e(e){if(this.attributes=[],this.quantileValues=[],e)for(var t=Object.keys(e),r=0;r>>3){case 7:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 2:n.startTimeUnixNano=e.fixed64();break;case 3:n.timeUnixNano=e.fixed64();break;case 4:n.count=e.fixed64();break;case 5:n.sum=e.double();break;case 6:n.quantileValues&&n.quantileValues.length||(n.quantileValues=[]),n.quantileValues.push(E.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile.decode(e,e.uint32()));break;case 8:n.flags=e.uint32();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var t=0;t>>0,e.startTimeUnixNano.high>>>0).toNumber())),null!=e.timeUnixNano&&(S.Long?(t.timeUnixNano=S.Long.fromValue(e.timeUnixNano)).unsigned=!1:"string"==typeof e.timeUnixNano?t.timeUnixNano=parseInt(e.timeUnixNano,10):"number"==typeof e.timeUnixNano?t.timeUnixNano=e.timeUnixNano:"object"==typeof e.timeUnixNano&&(t.timeUnixNano=new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber())),null!=e.count&&(S.Long?(t.count=S.Long.fromValue(e.count)).unsigned=!1:"string"==typeof e.count?t.count=parseInt(e.count,10):"number"==typeof e.count?t.count=e.count:"object"==typeof e.count&&(t.count=new S.LongBits(e.count.low>>>0,e.count.high>>>0).toNumber())),null!=e.sum&&(t.sum=Number(e.sum)),e.quantileValues){if(!Array.isArray(e.quantileValues))throw TypeError(".opentelemetry.proto.metrics.v1.SummaryDataPoint.quantileValues: array expected");for(t.quantileValues=[],r=0;r>>0),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.quantileValues=[],r.attributes=[]),t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.startTimeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.startTimeUnixNano=t.longs===String?"0":0;S.Long?(n=new S.Long(0,0,!1),r.timeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n):r.timeUnixNano=t.longs===String?"0":0,S.Long?(n=new S.Long(0,0,!1),r.count=t.longs===String?n.toString():t.longs===Number?n.toNumber():n):r.count=t.longs===String?"0":0,r.sum=0,r.flags=0}if(null!=e.startTimeUnixNano&&e.hasOwnProperty("startTimeUnixNano")&&("number"==typeof e.startTimeUnixNano?r.startTimeUnixNano=t.longs===String?String(e.startTimeUnixNano):e.startTimeUnixNano:r.startTimeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.startTimeUnixNano):t.longs===Number?new S.LongBits(e.startTimeUnixNano.low>>>0,e.startTimeUnixNano.high>>>0).toNumber():e.startTimeUnixNano),null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&("number"==typeof e.timeUnixNano?r.timeUnixNano=t.longs===String?String(e.timeUnixNano):e.timeUnixNano:r.timeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.timeUnixNano):t.longs===Number?new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber():e.timeUnixNano),null!=e.count&&e.hasOwnProperty("count")&&("number"==typeof e.count?r.count=t.longs===String?String(e.count):e.count:r.count=t.longs===String?S.Long.prototype.toString.call(e.count):t.longs===Number?new S.LongBits(e.count.low>>>0,e.count.high>>>0).toNumber():e.count),null!=e.sum&&e.hasOwnProperty("sum")&&(r.sum=t.json&&!isFinite(e.sum)?String(e.sum):e.sum),e.quantileValues&&e.quantileValues.length){r.quantileValues=[];for(var o=0;o>>3){case 1:n.quantile=e.double();break;case 2:n.value=e.double();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":null!=e.quantile&&e.hasOwnProperty("quantile")&&"number"!=typeof e.quantile?"quantile: number expected":null!=e.value&&e.hasOwnProperty("value")&&"number"!=typeof e.value?"value: number expected":null},e.fromObject=function(e){if(e instanceof E.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)return e;var t=new E.opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile;return null!=e.quantile&&(t.quantile=Number(e.quantile)),null!=e.value&&(t.value=Number(e.value)),t},e.toObject=function(e,t){t||(t={});var r={};return t.defaults&&(r.quantile=0,r.value=0),null!=e.quantile&&e.hasOwnProperty("quantile")&&(r.quantile=t.json&&!isFinite(e.quantile)?String(e.quantile):e.quantile),null!=e.value&&e.hasOwnProperty("value")&&(r.value=t.json&&!isFinite(e.value)?String(e.value):e.value),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile"},e}(),e}(),r.Exemplar=function(){function e(e){if(this.filteredAttributes=[],e)for(var t=Object.keys(e),r=0;r>>3){case 7:n.filteredAttributes&&n.filteredAttributes.length||(n.filteredAttributes=[]),n.filteredAttributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 2:n.timeUnixNano=e.fixed64();break;case 3:n.asDouble=e.double();break;case 6:n.asInt=e.sfixed64();break;case 4:n.spanId=e.bytes();break;case 5:n.traceId=e.bytes();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var t={};if(null!=e.filteredAttributes&&e.hasOwnProperty("filteredAttributes")){if(!Array.isArray(e.filteredAttributes))return"filteredAttributes: array expected";for(var r=0;r>>0,e.timeUnixNano.high>>>0).toNumber())),null!=e.asDouble&&(t.asDouble=Number(e.asDouble)),null!=e.asInt&&(S.Long?(t.asInt=S.Long.fromValue(e.asInt)).unsigned=!1:"string"==typeof e.asInt?t.asInt=parseInt(e.asInt,10):"number"==typeof e.asInt?t.asInt=e.asInt:"object"==typeof e.asInt&&(t.asInt=new S.LongBits(e.asInt.low>>>0,e.asInt.high>>>0).toNumber())),null!=e.spanId&&("string"==typeof e.spanId?S.base64.decode(e.spanId,t.spanId=S.newBuffer(S.base64.length(e.spanId)),0):e.spanId.length>=0&&(t.spanId=e.spanId)),null!=e.traceId&&("string"==typeof e.traceId?S.base64.decode(e.traceId,t.traceId=S.newBuffer(S.base64.length(e.traceId)),0):e.traceId.length>=0&&(t.traceId=e.traceId)),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.filteredAttributes=[]),t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.timeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.timeUnixNano=t.longs===String?"0":0;t.bytes===String?r.spanId="":(r.spanId=[],t.bytes!==Array&&(r.spanId=S.newBuffer(r.spanId))),t.bytes===String?r.traceId="":(r.traceId=[],t.bytes!==Array&&(r.traceId=S.newBuffer(r.traceId)))}if(null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&("number"==typeof e.timeUnixNano?r.timeUnixNano=t.longs===String?String(e.timeUnixNano):e.timeUnixNano:r.timeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.timeUnixNano):t.longs===Number?new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber():e.timeUnixNano),null!=e.asDouble&&e.hasOwnProperty("asDouble")&&(r.asDouble=t.json&&!isFinite(e.asDouble)?String(e.asDouble):e.asDouble,t.oneofs&&(r.value="asDouble")),null!=e.spanId&&e.hasOwnProperty("spanId")&&(r.spanId=t.bytes===String?S.base64.encode(e.spanId,0,e.spanId.length):t.bytes===Array?Array.prototype.slice.call(e.spanId):e.spanId),null!=e.traceId&&e.hasOwnProperty("traceId")&&(r.traceId=t.bytes===String?S.base64.encode(e.traceId,0,e.traceId.length):t.bytes===Array?Array.prototype.slice.call(e.traceId):e.traceId),null!=e.asInt&&e.hasOwnProperty("asInt")&&("number"==typeof e.asInt?r.asInt=t.longs===String?String(e.asInt):e.asInt:r.asInt=t.longs===String?S.Long.prototype.toString.call(e.asInt):t.longs===Number?new S.LongBits(e.asInt.low>>>0,e.asInt.high>>>0).toNumber():e.asInt,t.oneofs&&(r.value="asInt")),e.filteredAttributes&&e.filteredAttributes.length){r.filteredAttributes=[];for(var o=0;o>>3==1?(n.resourceLogs&&n.resourceLogs.length||(n.resourceLogs=[]),n.resourceLogs.push(E.opentelemetry.proto.logs.v1.ResourceLogs.decode(e,e.uint32()))):e.skipType(7&o)}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resourceLogs&&e.hasOwnProperty("resourceLogs")){if(!Array.isArray(e.resourceLogs))return"resourceLogs: array expected";for(var t=0;t>>3){case 1:n.resource=E.opentelemetry.proto.resource.v1.Resource.decode(e,e.uint32());break;case 2:n.scopeLogs&&n.scopeLogs.length||(n.scopeLogs=[]),n.scopeLogs.push(E.opentelemetry.proto.logs.v1.ScopeLogs.decode(e,e.uint32()));break;case 3:n.schemaUrl=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.resource&&e.hasOwnProperty("resource")&&(r=E.opentelemetry.proto.resource.v1.Resource.verify(e.resource)))return"resource."+r;if(null!=e.scopeLogs&&e.hasOwnProperty("scopeLogs")){if(!Array.isArray(e.scopeLogs))return"scopeLogs: array expected";for(var t=0;t>>3){case 1:n.scope=E.opentelemetry.proto.common.v1.InstrumentationScope.decode(e,e.uint32());break;case 2:n.logRecords&&n.logRecords.length||(n.logRecords=[]),n.logRecords.push(E.opentelemetry.proto.logs.v1.LogRecord.decode(e,e.uint32()));break;case 3:n.schemaUrl=e.string();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.scope&&e.hasOwnProperty("scope")&&(r=E.opentelemetry.proto.common.v1.InstrumentationScope.verify(e.scope)))return"scope."+r;if(null!=e.logRecords&&e.hasOwnProperty("logRecords")){if(!Array.isArray(e.logRecords))return"logRecords: array expected";for(var t=0;t>>3){case 1:n.timeUnixNano=e.fixed64();break;case 11:n.observedTimeUnixNano=e.fixed64();break;case 2:n.severityNumber=e.int32();break;case 3:n.severityText=e.string();break;case 5:n.body=E.opentelemetry.proto.common.v1.AnyValue.decode(e,e.uint32());break;case 6:n.attributes&&n.attributes.length||(n.attributes=[]),n.attributes.push(E.opentelemetry.proto.common.v1.KeyValue.decode(e,e.uint32()));break;case 7:n.droppedAttributesCount=e.uint32();break;case 8:n.flags=e.fixed32();break;case 9:n.traceId=e.bytes();break;case 10:n.spanId=e.bytes();break;default:e.skipType(7&o)}}return n},e.decodeDelimited=function(e){return e instanceof _||(e=new _(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&!(S.isInteger(e.timeUnixNano)||e.timeUnixNano&&S.isInteger(e.timeUnixNano.low)&&S.isInteger(e.timeUnixNano.high)))return"timeUnixNano: integer|Long expected";if(null!=e.observedTimeUnixNano&&e.hasOwnProperty("observedTimeUnixNano")&&!(S.isInteger(e.observedTimeUnixNano)||e.observedTimeUnixNano&&S.isInteger(e.observedTimeUnixNano.low)&&S.isInteger(e.observedTimeUnixNano.high)))return"observedTimeUnixNano: integer|Long expected";if(null!=e.severityNumber&&e.hasOwnProperty("severityNumber"))switch(e.severityNumber){default:return"severityNumber: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:}if(null!=e.severityText&&e.hasOwnProperty("severityText")&&!S.isString(e.severityText))return"severityText: string expected";if(null!=e.body&&e.hasOwnProperty("body")&&(r=E.opentelemetry.proto.common.v1.AnyValue.verify(e.body)))return"body."+r;if(null!=e.attributes&&e.hasOwnProperty("attributes")){if(!Array.isArray(e.attributes))return"attributes: array expected";for(var t=0;t>>0,e.timeUnixNano.high>>>0).toNumber())),null!=e.observedTimeUnixNano&&(S.Long?(t.observedTimeUnixNano=S.Long.fromValue(e.observedTimeUnixNano)).unsigned=!1:"string"==typeof e.observedTimeUnixNano?t.observedTimeUnixNano=parseInt(e.observedTimeUnixNano,10):"number"==typeof e.observedTimeUnixNano?t.observedTimeUnixNano=e.observedTimeUnixNano:"object"==typeof e.observedTimeUnixNano&&(t.observedTimeUnixNano=new S.LongBits(e.observedTimeUnixNano.low>>>0,e.observedTimeUnixNano.high>>>0).toNumber())),e.severityNumber){default:if("number"==typeof e.severityNumber){t.severityNumber=e.severityNumber;break}break;case"SEVERITY_NUMBER_UNSPECIFIED":case 0:t.severityNumber=0;break;case"SEVERITY_NUMBER_TRACE":case 1:t.severityNumber=1;break;case"SEVERITY_NUMBER_TRACE2":case 2:t.severityNumber=2;break;case"SEVERITY_NUMBER_TRACE3":case 3:t.severityNumber=3;break;case"SEVERITY_NUMBER_TRACE4":case 4:t.severityNumber=4;break;case"SEVERITY_NUMBER_DEBUG":case 5:t.severityNumber=5;break;case"SEVERITY_NUMBER_DEBUG2":case 6:t.severityNumber=6;break;case"SEVERITY_NUMBER_DEBUG3":case 7:t.severityNumber=7;break;case"SEVERITY_NUMBER_DEBUG4":case 8:t.severityNumber=8;break;case"SEVERITY_NUMBER_INFO":case 9:t.severityNumber=9;break;case"SEVERITY_NUMBER_INFO2":case 10:t.severityNumber=10;break;case"SEVERITY_NUMBER_INFO3":case 11:t.severityNumber=11;break;case"SEVERITY_NUMBER_INFO4":case 12:t.severityNumber=12;break;case"SEVERITY_NUMBER_WARN":case 13:t.severityNumber=13;break;case"SEVERITY_NUMBER_WARN2":case 14:t.severityNumber=14;break;case"SEVERITY_NUMBER_WARN3":case 15:t.severityNumber=15;break;case"SEVERITY_NUMBER_WARN4":case 16:t.severityNumber=16;break;case"SEVERITY_NUMBER_ERROR":case 17:t.severityNumber=17;break;case"SEVERITY_NUMBER_ERROR2":case 18:t.severityNumber=18;break;case"SEVERITY_NUMBER_ERROR3":case 19:t.severityNumber=19;break;case"SEVERITY_NUMBER_ERROR4":case 20:t.severityNumber=20;break;case"SEVERITY_NUMBER_FATAL":case 21:t.severityNumber=21;break;case"SEVERITY_NUMBER_FATAL2":case 22:t.severityNumber=22;break;case"SEVERITY_NUMBER_FATAL3":case 23:t.severityNumber=23;break;case"SEVERITY_NUMBER_FATAL4":case 24:t.severityNumber=24}if(null!=e.severityText&&(t.severityText=String(e.severityText)),null!=e.body){if("object"!=typeof e.body)throw TypeError(".opentelemetry.proto.logs.v1.LogRecord.body: object expected");t.body=E.opentelemetry.proto.common.v1.AnyValue.fromObject(e.body)}if(e.attributes){if(!Array.isArray(e.attributes))throw TypeError(".opentelemetry.proto.logs.v1.LogRecord.attributes: array expected");t.attributes=[];for(var r=0;r>>0),null!=e.flags&&(t.flags=e.flags>>>0),null!=e.traceId&&("string"==typeof e.traceId?S.base64.decode(e.traceId,t.traceId=S.newBuffer(S.base64.length(e.traceId)),0):e.traceId.length>=0&&(t.traceId=e.traceId)),null!=e.spanId&&("string"==typeof e.spanId?S.base64.decode(e.spanId,t.spanId=S.newBuffer(S.base64.length(e.spanId)),0):e.spanId.length>=0&&(t.spanId=e.spanId)),t},e.toObject=function(e,t){t||(t={});var r={};if((t.arrays||t.defaults)&&(r.attributes=[]),t.defaults){if(S.Long){var n=new S.Long(0,0,!1);r.timeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n}else r.timeUnixNano=t.longs===String?"0":0;r.severityNumber=t.enums===String?"SEVERITY_NUMBER_UNSPECIFIED":0,r.severityText="",r.body=null,r.droppedAttributesCount=0,r.flags=0,t.bytes===String?r.traceId="":(r.traceId=[],t.bytes!==Array&&(r.traceId=S.newBuffer(r.traceId))),t.bytes===String?r.spanId="":(r.spanId=[],t.bytes!==Array&&(r.spanId=S.newBuffer(r.spanId))),S.Long?(n=new S.Long(0,0,!1),r.observedTimeUnixNano=t.longs===String?n.toString():t.longs===Number?n.toNumber():n):r.observedTimeUnixNano=t.longs===String?"0":0}if(null!=e.timeUnixNano&&e.hasOwnProperty("timeUnixNano")&&("number"==typeof e.timeUnixNano?r.timeUnixNano=t.longs===String?String(e.timeUnixNano):e.timeUnixNano:r.timeUnixNano=t.longs===String?S.Long.prototype.toString.call(e.timeUnixNano):t.longs===Number?new S.LongBits(e.timeUnixNano.low>>>0,e.timeUnixNano.high>>>0).toNumber():e.timeUnixNano),null!=e.severityNumber&&e.hasOwnProperty("severityNumber")&&(r.severityNumber=t.enums===String?void 0===E.opentelemetry.proto.logs.v1.SeverityNumber[e.severityNumber]?e.severityNumber:E.opentelemetry.proto.logs.v1.SeverityNumber[e.severityNumber]:e.severityNumber),null!=e.severityText&&e.hasOwnProperty("severityText")&&(r.severityText=e.severityText),null!=e.body&&e.hasOwnProperty("body")&&(r.body=E.opentelemetry.proto.common.v1.AnyValue.toObject(e.body,t)),e.attributes&&e.attributes.length){r.attributes=[];for(var o=0;o>>0,e.observedTimeUnixNano.high>>>0).toNumber():e.observedTimeUnixNano),r},e.prototype.toJSON=function(){return this.constructor.toObject(this,c.util.toJSONOptions)},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/opentelemetry.proto.logs.v1.LogRecord"},e}(),r}(),e}(),s),u),e.exports=E},45:e=>{e.exports=function(e,t){for(var r=new Array(arguments.length-1),n=0,o=2,i=!0;o{var r=t;r.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;--t%4>1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var n=new Array(64),o=new Array(123),i=0;i<64;)o[n[i]=i<26?i+65:i<52?i+71:i<62?i-4:i-59|43]=i++;r.encode=function(e,t,r){for(var o,i=null,a=[],s=0,u=0;t>2],o=(3&c)<<4,u=1;break;case 1:a[s++]=n[o|c>>4],o=(15&c)<<2,u=2;break;case 2:a[s++]=n[o|c>>6],a[s++]=n[63&c],u=0}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return u&&(a[s++]=n[o],a[s++]=61,1===u&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var a="invalid encoding";r.decode=function(e,t,r){for(var n,i=r,s=0,u=0;u1)break;if(void 0===(c=o[c]))throw Error(a);switch(s){case 0:n=c,s=1;break;case 1:t[r++]=n<<2|(48&c)>>4,n=c,s=2;break;case 2:t[r++]=(15&n)<<4|(60&c)>>2,n=c,s=3;break;case 3:t[r++]=(3&n)<<6|c,s=0}}if(1===s)throw Error(a);return r-i},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},358:e=>{function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],n=0;n{function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=128===r[3];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3]}function i(e,n,o){t[0]=e,n[o]=r[3],n[o+1]=r[2],n[o+2]=r[1],n[o+3]=r[0]}function a(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],t[0]}function s(e,n){return r[3]=e[n],r[2]=e[n+1],r[1]=e[n+2],r[0]=e[n+3],t[0]}e.writeFloatLE=n?o:i,e.writeFloatBE=n?i:o,e.readFloatLE=n?a:s,e.readFloatBE=n?s:a}():function(){function t(e,t,r,n){var o=t<0?1:0;if(o&&(t=-t),0===t)e(1/t>0?0:2147483648,r,n);else if(isNaN(t))e(2143289344,r,n);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,r,n);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,r,n);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,r,n)}}function a(e,t,r){var n=e(t,r),o=2*(n>>31)+1,i=n>>>23&255,a=8388607&n;return 255===i?a?NaN:o*(1/0):0===i?1401298464324817e-60*o*a:o*Math.pow(2,i-150)*(a+8388608)}e.writeFloatLE=t.bind(null,r),e.writeFloatBE=t.bind(null,n),e.readFloatLE=a.bind(null,o),e.readFloatBE=a.bind(null,i)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=128===r[7];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3],n[o+4]=r[4],n[o+5]=r[5],n[o+6]=r[6],n[o+7]=r[7]}function i(e,n,o){t[0]=e,n[o]=r[7],n[o+1]=r[6],n[o+2]=r[5],n[o+3]=r[4],n[o+4]=r[3],n[o+5]=r[2],n[o+6]=r[1],n[o+7]=r[0]}function a(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],r[4]=e[n+4],r[5]=e[n+5],r[6]=e[n+6],r[7]=e[n+7],t[0]}function s(e,n){return r[7]=e[n],r[6]=e[n+1],r[5]=e[n+2],r[4]=e[n+3],r[3]=e[n+4],r[2]=e[n+5],r[1]=e[n+6],r[0]=e[n+7],t[0]}e.writeDoubleLE=n?o:i,e.writeDoubleBE=n?i:o,e.readDoubleLE=n?a:s,e.readDoubleBE=n?s:a}():function(){function t(e,t,r,n,o,i){var a=n<0?1:0;if(a&&(n=-n),0===n)e(0,o,i+t),e(1/n>0?0:2147483648,o,i+r);else if(isNaN(n))e(0,o,i+t),e(2146959360,o,i+r);else if(n>17976931348623157e292)e(0,o,i+t),e((a<<31|2146435072)>>>0,o,i+r);else{var s;if(n<22250738585072014e-324)e((s=n/5e-324)>>>0,o,i+t),e((a<<31|s/4294967296)>>>0,o,i+r);else{var u=Math.floor(Math.log(n)/Math.LN2);1024===u&&(u=1023),e(4503599627370496*(s=n*Math.pow(2,-u))>>>0,o,i+t),e((a<<31|u+1023<<20|1048576*s&1048575)>>>0,o,i+r)}}}function a(e,t,r,n,o){var i=e(n,o+t),a=e(n,o+r),s=2*(a>>31)+1,u=a>>>20&2047,c=4294967296*(1048575&a)+i;return 2047===u?c?NaN:s*(1/0):0===u?5e-324*s*c:s*Math.pow(2,u-1075)*(c+4503599627370496)}e.writeDoubleLE=t.bind(null,r,0,4),e.writeDoubleBE=t.bind(null,n,4,0),e.readDoubleLE=a.bind(null,o,0,4),e.readDoubleBE=a.bind(null,i,4,0)}(),e}function r(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function n(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function o(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function i(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=t(t)},153:module=>{function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},390:e=>{e.exports=function(e,t,r){var n=r||8192,o=n>>>1,i=null,a=n;return function(r){if(r<1||r>o)return e(r);a+r>n&&(i=e(n),a=0);var s=t.call(i,a,a+=r);return 7&a&&(a=1+(7|a)),s}}},447:(e,t)=>{var r=t;r.length=function(e){for(var t=0,r=0,n=0;n191&&n<224?i[a++]=(31&n)<<6|63&e[t++]:n>239&&n<365?(n=((7&n)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[a++]=55296+(n>>10),i[a++]=56320+(1023&n)):i[a++]=(15&n)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,i.slice(0,a))),o.join("")):String.fromCharCode.apply(String,i.slice(0,a))},r.write=function(e,t,r){for(var n,o,i=r,a=0;a>6|192,t[r++]=63&n|128):55296==(64512&n)&&56320==(64512&(o=e.charCodeAt(a+1)))?(n=65536+((1023&n)<<10)+(1023&o),++a,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-i}},946:(e,t,r)=>{e.exports=r(394)},394:(e,t,r)=>{var n=t;function o(){n.util._configure(),n.Writer._configure(n.BufferWriter),n.Reader._configure(n.BufferReader)}n.build="minimal",n.Writer=r(449),n.BufferWriter=r(818),n.Reader=r(237),n.BufferReader=r(158),n.util=r(610),n.rpc=r(47),n.roots=r(529),n.configure=o,o()},237:(e,t,r)=>{e.exports=u;var n,o=r(610),i=o.LongBits,a=o.utf8;function s(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function u(e){this.buf=e,this.pos=0,this.len=e.length}var c,_="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new u(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new u(e);throw Error("illegal buffer")},l=function(){return o.Buffer?function(e){return(u.create=function(e){return o.Buffer.isBuffer(e)?new n(e):_(e)})(e)}:_};function S(){var e=new i(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw s(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw s(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function E(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function T(){if(this.pos+8>this.len)throw s(this,8);return new i(E(this.buf,this.pos+=4),E(this.buf,this.pos+=4))}u.create=l(),u.prototype._slice=o.Array.prototype.subarray||o.Array.prototype.slice,u.prototype.uint32=(c=4294967295,function(){if(c=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return c;if(c=(c|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return c;if((this.pos+=5)>this.len)throw this.pos=this.len,s(this,10);return c}),u.prototype.int32=function(){return 0|this.uint32()},u.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)},u.prototype.bool=function(){return 0!==this.uint32()},u.prototype.fixed32=function(){if(this.pos+4>this.len)throw s(this,4);return E(this.buf,this.pos+=4)},u.prototype.sfixed32=function(){if(this.pos+4>this.len)throw s(this,4);return 0|E(this.buf,this.pos+=4)},u.prototype.float=function(){if(this.pos+4>this.len)throw s(this,4);var e=o.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},u.prototype.double=function(){if(this.pos+8>this.len)throw s(this,4);var e=o.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},u.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw s(this,e);if(this.pos+=e,Array.isArray(this.buf))return this.buf.slice(t,r);if(t===r){var n=o.Buffer;return n?n.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,t,r)},u.prototype.string=function(){var e=this.bytes();return a.read(e,0,e.length)},u.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw s(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw s(this)}while(128&this.buf[this.pos++]);return this},u.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},u._configure=function(e){n=e,u.create=l(),n._configure();var t=o.Long?"toLong":"toNumber";o.merge(u.prototype,{int64:function(){return S.call(this)[t](!1)},uint64:function(){return S.call(this)[t](!0)},sint64:function(){return S.call(this).zzDecode()[t](!1)},fixed64:function(){return T.call(this)[t](!0)},sfixed64:function(){return T.call(this)[t](!1)}})}},158:(e,t,r)=>{e.exports=i;var n=r(237);(i.prototype=Object.create(n.prototype)).constructor=i;var o=r(610);function i(e){n.call(this,e)}i._configure=function(){o.Buffer&&(i.prototype._slice=o.Buffer.prototype.slice)},i.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},i._configure()},529:e=>{e.exports={}},47:(e,t,r)=>{t.Service=r(595)},595:(e,t,r)=>{e.exports=o;var n=r(610);function o(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");n.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(o.prototype=Object.create(n.EventEmitter.prototype)).constructor=o,o.prototype.rpcCall=function e(t,r,o,i,a){if(!i)throw TypeError("request must be specified");var s=this;if(!a)return n.asPromise(e,s,t,r,o,i);if(s.rpcImpl)try{return s.rpcImpl(t,r[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),(function(e,r){if(e)return s.emit("error",e,t),a(e);if(null!==r){if(!(r instanceof o))try{r=o[s.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",r,t),a(null,r)}s.end(!0)}))}catch(e){return s.emit("error",e,t),void setTimeout((function(){a(e)}),0)}else setTimeout((function(){a(Error("already ended"))}),0)},o.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},239:(e,t,r)=>{e.exports=o;var n=r(610);function o(e,t){this.lo=e>>>0,this.hi=t>>>0}var i=o.zero=new o(0,0);i.toNumber=function(){return 0},i.zzEncode=i.zzDecode=function(){return this},i.length=function(){return 1};var a=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(e){if(0===e)return i;var t=e<0;t&&(e=-e);var r=e>>>0,n=(e-r)/4294967296>>>0;return t&&(n=~n>>>0,r=~r>>>0,++r>4294967295&&(r=0,++n>4294967295&&(n=0))),new o(r,n)},o.from=function(e){if("number"==typeof e)return o.fromNumber(e);if(n.isString(e)){if(!n.Long)return o.fromNumber(parseInt(e,10));e=n.Long.fromString(e)}return e.low||e.high?new o(e.low>>>0,e.high>>>0):i},o.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},o.prototype.toLong=function(e){return n.Long?new n.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;o.fromHash=function(e){return e===a?i:new o((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},o.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},o.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},610:function(e,t,r){var n=t;function o(e,t,r){for(var n=Object.keys(t),o=0;o0)},n.Buffer=function(){try{var e=n.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),n._Buffer_from=null,n._Buffer_allocUnsafe=null,n.newBuffer=function(e){return"number"==typeof e?n.Buffer?n._Buffer_allocUnsafe(e):new n.Array(e):n.Buffer?n._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},n.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,n.Long=n.global.dcodeIO&&n.global.dcodeIO.Long||n.global.Long||n.inquire("long"),n.key2Re=/^true|false|0|1$/,n.key32Re=/^-?(?:0|[1-9][0-9]*)$/,n.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,n.longToHash=function(e){return e?n.LongBits.from(e).toHash():n.LongBits.zeroHash},n.longFromHash=function(e,t){var r=n.LongBits.fromHash(e);return n.Long?n.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},n.merge=o,n.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},n.newError=i,n.ProtocolError=i("ProtocolError"),n.oneOfGetter=function(e){for(var t={},r=0;r-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},n.oneOfSetter=function(e){return function(t){for(var r=0;r{e.exports=l;var n,o=r(610),i=o.LongBits,a=o.base64,s=o.utf8;function u(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function c(){}function _(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function l(){this.len=0,this.head=new u(c,0,0),this.tail=this.head,this.states=null}var S=function(){return o.Buffer?function(){return(l.create=function(){return new n})()}:function(){return new l}};function E(e,t,r){t[r]=255&e}function T(e,t){this.len=e,this.next=void 0,this.val=t}function A(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function p(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}l.create=S(),l.alloc=function(e){return new o.Array(e)},o.Array!==Array&&(l.alloc=o.pool(l.alloc,o.Array.prototype.subarray)),l.prototype._push=function(e,t,r){return this.tail=this.tail.next=new u(e,t,r),this.len+=t,this},T.prototype=Object.create(u.prototype),T.prototype.fn=function(e,t,r){for(;e>127;)t[r++]=127&e|128,e>>>=7;t[r]=e},l.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new T((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},l.prototype.int32=function(e){return e<0?this._push(A,10,i.fromNumber(e)):this.uint32(e)},l.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},l.prototype.uint64=function(e){var t=i.from(e);return this._push(A,t.length(),t)},l.prototype.int64=l.prototype.uint64,l.prototype.sint64=function(e){var t=i.from(e).zzEncode();return this._push(A,t.length(),t)},l.prototype.bool=function(e){return this._push(E,1,e?1:0)},l.prototype.fixed32=function(e){return this._push(p,4,e>>>0)},l.prototype.sfixed32=l.prototype.fixed32,l.prototype.fixed64=function(e){var t=i.from(e);return this._push(p,4,t.lo)._push(p,4,t.hi)},l.prototype.sfixed64=l.prototype.fixed64,l.prototype.float=function(e){return this._push(o.float.writeFloatLE,4,e)},l.prototype.double=function(e){return this._push(o.float.writeDoubleLE,8,e)};var m=o.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this._push(E,1,0);if(o.isString(e)){var r=l.alloc(t=a.length(e));a.decode(e,r,0),e=r}return this.uint32(t)._push(m,t,e)},l.prototype.string=function(e){var t=s.length(e);return t?this.uint32(t)._push(s.write,t,e):this._push(E,1,0)},l.prototype.fork=function(){return this.states=new _(this),this.head=this.tail=new u(c,0,0),this.len=0,this},l.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new u(c,0,0),this.len=0),this},l.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},l.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},l._configure=function(e){n=e,l.create=S(),n._configure()}},818:(e,t,r)=>{e.exports=i;var n=r(449);(i.prototype=Object.create(n.prototype)).constructor=i;var o=r(610);function i(){n.call(this)}function a(e,t,r){e.length<40?o.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}i._configure=function(){i.alloc=o._Buffer_allocUnsafe,i.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&"set"===o.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this._push(i.writeBytesBuffer,t,e),this},i.prototype.string=function(e){var t=o.Buffer.byteLength(e);return this.uint32(t),t&&this._push(a,t,e),this},i._configure()},132:e=>{function t(e){return"function"==typeof e}var r=console.error.bind(console);function n(e,t,r){var n=!!e[t]&&e.propertyIsEnumerable(t);Object.defineProperty(e,t,{configurable:!0,enumerable:n,writable:!0,value:r})}function o(e){e&&e.logger&&(t(e.logger)?r=e.logger:r("new logger isn't a function, not replacing"))}function i(e,o,i){if(e&&e[o]){if(!i)return r("no wrapper function"),void r((new Error).stack);if(t(e[o])&&t(i)){var a=e[o],s=i(a,o);return n(s,"__original",a),n(s,"__unwrap",(function(){e[o]===s&&n(e,o,a)})),n(s,"__wrapped",!0),n(e,o,s),s}r("original object and wrapper must be functions")}else r("no original function "+o+" to wrap")}function a(e,t){return e&&e[t]?e[t].__unwrap?e[t].__unwrap():void r("no original to unwrap to -- has "+t+" already been unwrapped?"):(r("no function to unwrap."),void r((new Error).stack))}o.wrap=i,o.massWrap=function(e,t,n){if(!e)return r("must provide one or more modules to patch"),void r((new Error).stack);Array.isArray(e)||(e=[e]),t&&Array.isArray(t)?e.forEach((function(e){t.forEach((function(t){i(e,t,n)}))})):r("must provide one or more functions to wrap on modules")},o.unwrap=a,o.massUnwrap=function(e,t){if(!e)return r("must provide one or more modules to patch"),void r((new Error).stack);Array.isArray(e)||(e=[e]),t&&Array.isArray(t)?e.forEach((function(e){t.forEach((function(t){a(e,t)}))})):r("must provide one or more functions to unwrap on modules")},e.exports=o},216:()=>{const e=globalThis;function t(t){return(e.__Zone_symbol_prefix||"__zone_symbol__")+t}function r(){const r=e.performance;function n(e){r&&r.mark&&r.mark(e)}function o(e,t){r&&r.measure&&r.measure(e,t)}n("Zone");class i{static{this.__symbol__=t}static assertZonePatched(){if(e.Promise!==L.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let e=i.current;for(;e.parent;)e=e.parent;return e}static get current(){return C.zone}static get currentTask(){return I}static __load_patch(r,a,s=!1){if(L.hasOwnProperty(r)){const n=!0===e[t("forceDuplicateZoneCheck")];if(!s&&n)throw Error("Already loaded patch: "+r)}else if(!e["__Zone_disable_"+r]){const t="Zone:"+r;n(t),L[r]=a(e,i,h),o(t,t)}}get parent(){return this._parent}get name(){return this._name}constructor(e,t){this._parent=e,this._name=t?t.name||"unnamed":"",this._properties=t&&t.properties||{},this._zoneDelegate=new s(this,this._parent&&this._parent._zoneDelegate,t)}get(e){const t=this.getZoneWith(e);if(t)return t._properties[e]}getZoneWith(e){let t=this;for(;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null}fork(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)}wrap(e,t){if("function"!=typeof e)throw new Error("Expecting function got: "+e);const r=this._zoneDelegate.intercept(this,e,t),n=this;return function(){return n.runGuarded(r,this,arguments,t)}}run(e,t,r,n){C={parent:C,zone:this};try{return this._zoneDelegate.invoke(this,e,t,r,n)}finally{C=C.parent}}runGuarded(e,t=null,r,n){C={parent:C,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,r,n)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{C=C.parent}}runTask(e,t,r){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||O).name+"; Execution: "+this.name+")");const n=e,{type:o,data:{isPeriodic:i=!1,isRefreshable:a=!1}={}}=e;if(e.state===f&&(o===y||o===g))return;const s=e.state!=P;s&&n._transitionTo(P,d);const u=I;I=n,C={parent:C,zone:this};try{o!=g||!e.data||i||a||(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,n,t,r)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{const t=e.state;if(t!==f&&t!==M)if(o==y||i||a&&t===N)s&&n._transitionTo(d,P,N);else{const e=n._zoneDelegates;this._updateTaskCount(n,-1),s&&n._transitionTo(f,P,f),a&&(n._zoneDelegates=e)}C=C.parent,I=u}}scheduleTask(e){if(e.zone&&e.zone!==this){let t=this;for(;t;){if(t===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);t=t.parent}}e._transitionTo(N,f);const t=[];e._zoneDelegates=t,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(t){throw e._transitionTo(M,N,f),this._zoneDelegate.handleError(this,t),t}return e._zoneDelegates===t&&this._updateTaskCount(e,1),e.state==N&&e._transitionTo(d,N),e}scheduleMicroTask(e,t,r,n){return this.scheduleTask(new u(b,e,t,r,n,void 0))}scheduleMacroTask(e,t,r,n,o){return this.scheduleTask(new u(g,e,t,r,n,o))}scheduleEventTask(e,t,r,n,o){return this.scheduleTask(new u(y,e,t,r,n,o))}cancelTask(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||O).name+"; Execution: "+this.name+")");if(e.state===d||e.state===P){e._transitionTo(R,d,P);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(M,R),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(f,R),e.runCount=-1,e}}_updateTaskCount(e,t){const r=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(let n=0;ne.hasTask(r,n),onScheduleTask:(e,t,r,n)=>e.scheduleTask(r,n),onInvokeTask:(e,t,r,n,o,i)=>e.invokeTask(r,n,o,i),onCancelTask:(e,t,r,n)=>e.cancelTask(r,n)};class s{get zone(){return this._zone}constructor(e,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=e,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this._zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this._zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this._zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this._zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this._zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this._zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this._zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const n=r&&r.onHasTask,o=t&&t._hasTaskZS;(n||o)&&(this._hasTaskZS=n?r:a,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,r.onScheduleTask||(this._scheduleTaskZS=a,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this._zone),r.onInvokeTask||(this._invokeTaskZS=a,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this._zone),r.onCancelTask||(this._cancelTaskZS=a,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this._zone))}fork(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)}intercept(e,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,r):t}invoke(e,t,r,n,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,r,n,o):t.apply(r,n)}handleError(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)}scheduleTask(e,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=b)throw new Error("Task is missing scheduleFn.");p(t)}return r}invokeTask(e,t,r,n){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,r,n):t.callback.apply(r,n)}cancelTask(e,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(t){this.handleError(e,t)}}_updateTaskCount(e,t){const r=this._taskCounts,n=r[e],o=r[e]=n+t;if(o<0)throw new Error("More tasks executed then were scheduled.");if(0==n||0==o){const t={microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:e};this.hasTask(this._zone,t)}}}class u{constructor(t,r,n,o,i,a){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=t,this.source=r,this.data=o,this.scheduleFn=i,this.cancelFn=a,!n)throw new Error("callback is not defined");this.callback=n;const s=this;t===y&&o&&o.useG?this.invoke=u.invokeTask:this.invoke=function(){return u.invokeTask.call(e,s,this,arguments)}}static invokeTask(e,t,r){e||(e=this),U++;try{return e.runCount++,e.zone.runTask(e,t,r)}finally{1==U&&m(),U--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(f,N)}_transitionTo(e,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${e}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=e,e==f&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const c=t("setTimeout"),_=t("Promise"),l=t("then");let S,E=[],T=!1;function A(t){if(S||e[_]&&(S=e[_].resolve(0)),S){let e=S[l];e||(e=S.then),e.call(S,t)}else e[c](t,0)}function p(e){0===U&&0===E.length&&A(m),e&&E.push(e)}function m(){if(!T){for(T=!0;E.length;){const e=E;E=[];for(let t=0;tC,onUnhandledError:D,microtaskDrainDone:D,scheduleMicroTask:p,showUncaughtError:()=>!i[t("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:D,patchMethod:()=>D,bindArguments:()=>[],patchThen:()=>D,patchMacroTask:()=>D,patchEventPrototype:()=>D,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>D,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>D,wrapWithCurrentZone:()=>D,filterProperties:()=>[],attachOriginToPatched:()=>D,_redefineProperty:()=>D,patchCallbacks:()=>D,nativeScheduleMicroTask:A};let C={parent:null,zone:new i(null,null)},I=null,U=0;function D(){}return o("Zone","Zone"),i}const n=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=Object.getPrototypeOf,a=Object.create,s=Array.prototype.slice,u="addEventListener",c="removeEventListener",_=t(u),l=t(c),S="true",E="false",T=t("");function A(e,t){return Zone.current.wrap(e,t)}function p(e,t,r,n,o){return Zone.current.scheduleMacroTask(e,t,r,n,o)}const m=t,O="undefined"!=typeof window,f=O?window:void 0,N=O&&f||globalThis;function d(e,t){for(let r=e.length-1;r>=0;r--)"function"==typeof e[r]&&(e[r]=A(e[r],t+"_"+r));return e}function P(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&void 0===e.set)}const R="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,M=!("nw"in N)&&void 0!==N.process&&"[object process]"===N.process.toString(),b=!M&&!R&&!(!O||!f.HTMLElement),g=void 0!==N.process&&"[object process]"===N.process.toString()&&!R&&!(!O||!f.HTMLElement),y={},L=m("enable_beforeunload"),h=function(e){if(!(e=e||N.event))return;let t=y[e.type];t||(t=y[e.type]=m("ON_PROPERTY"+e.type));const r=this||e.target||N,n=r[t];let o;if(b&&r===f&&"error"===e.type){const t=e;o=n&&n.call(this,t.message,t.filename,t.lineno,t.colno,t.error),!0===o&&e.preventDefault()}else o=n&&n.apply(this,arguments),"beforeunload"===e.type&&N[L]&&"string"==typeof o?e.returnValue=o:null==o||o||e.preventDefault();return o};function C(e,t,r){let i=n(e,t);if(!i&&r&&n(r,t)&&(i={enumerable:!0,configurable:!0}),!i||!i.configurable)return;const a=m("on"+t+"patched");if(e.hasOwnProperty(a)&&e[a])return;delete i.writable,delete i.value;const s=i.get,u=i.set,c=t.slice(2);let _=y[c];_||(_=y[c]=m("ON_PROPERTY"+c)),i.set=function(t){let r=this;r||e!==N||(r=N),r&&("function"==typeof r[_]&&r.removeEventListener(c,h),u&&u.call(r,null),r[_]=t,"function"==typeof t&&r.addEventListener(c,h,!1))},i.get=function(){let r=this;if(r||e!==N||(r=N),!r)return null;const n=r[_];if(n)return n;if(s){let e=s.call(this);if(e)return i.set.call(this,e),"function"==typeof r.removeAttribute&&r.removeAttribute(t),e}return null},o(e,t,i),e[a]=!0}function I(e,t,r){if(t)for(let n=0;nfunction(t,n){const i=r(t,n);return i.cbIdx>=0&&"function"==typeof n[i.cbIdx]?p(i.name,n[i.cbIdx],i,o):e.apply(t,n)}))}function x(e,t){e[m("OriginalDelegate")]=t}let w=!1,B=!1;function G(){try{const e=f.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch(e){}return!1}function Y(){if(w)return B;w=!0;try{const e=f.navigator.userAgent;-1===e.indexOf("MSIE ")&&-1===e.indexOf("Trident/")&&-1===e.indexOf("Edge/")||(B=!0)}catch(e){}return B}function k(e){return"function"==typeof e}function H(e){return"number"==typeof e}let j=!1;if("undefined"!=typeof window)try{const e=Object.defineProperty({},"passive",{get:function(){j=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){j=!1}const F={useG:!0},K={},W={},X=new RegExp("^"+T+"(\\w+)(true|false)$"),z=m("propagationStopped");function Z(e,t){const r=(t?t(e):e)+E,n=(t?t(e):e)+S,o=T+r,i=T+n;K[e]={},K[e][E]=o,K[e][S]=i}function q(e,t,r,n){const o=n&&n.add||u,a=n&&n.rm||c,s=n&&n.listeners||"eventListeners",_=n&&n.rmAll||"removeAllListeners",l=m(o),A="."+o+":",p="prependListener",O="."+p+":",f=function(e,t,r){if(e.isRemoved)return;const n=e.callback;let o;"object"==typeof n&&n.handleEvent&&(e.callback=e=>n.handleEvent(e),e.originalDelegate=n);try{e.invoke(e,t,[r])}catch(e){o=e}const i=e.options;if(i&&"object"==typeof i&&i.once){const n=e.originalDelegate?e.originalDelegate:e.callback;t[a].call(t,r.type,n,i)}return o};function N(r,n,o){if(!(n=n||e.event))return;const i=r||n.target||e,a=i[K[n.type][o?S:E]];if(a){const e=[];if(1===a.length){const t=f(a[0],i,n);t&&e.push(t)}else{const t=a.slice();for(let r=0;r{throw n}))}}}const d=function(e){return N(this,e,!1)},P=function(e){return N(this,e,!0)};function R(t,r){if(!t)return!1;let n=!0;r&&void 0!==r.useG&&(n=r.useG);const u=r&&r.vh;let c=!0;r&&void 0!==r.chkDup&&(c=r.chkDup);let f=!1;r&&void 0!==r.rt&&(f=r.rt);let N=t;for(;N&&!N.hasOwnProperty(o);)N=i(N);if(!N&&t[o]&&(N=t),!N)return!1;if(N[l])return!1;const R=r&&r.eventNameToString,b={},g=N[l]=N[o],y=N[m(a)]=N[a],L=N[m(s)]=N[s],h=N[m(_)]=N[_];let C;r&&r.prepend&&(C=N[m(r.prepend)]=N[r.prepend]);const I=n?function(e){if(!b.isExisting)return g.call(b.target,b.eventName,b.capture?P:d,b.options)}:function(e){return g.call(b.target,b.eventName,e.invoke,b.options)},U=n?function(e){if(!e.isRemoved){const t=K[e.eventName];let r;t&&(r=t[e.capture?S:E]);const n=r&&e.target[r];if(n)for(let t=0;tw.zone.cancelTask(w);t.call(f,"abort",e,{once:!0}),w.removeAbortListener=()=>f.removeEventListener("abort",e)}return b.target=null,x&&(x.taskData=null),d&&(b.options.once=!0),(j||"boolean"!=typeof w.options)&&(w.options=O),w.target=l,w.capture=N,w.eventName=T,p&&(w.originalDelegate=A),_?h.unshift(w):h.push(w),s?l:void 0}};return N[o]=w(g,A,I,U,f),C&&(N[p]=w(C,O,(function(e){return C.call(b.target,b.eventName,e.invoke,b.options)}),U,f,!0)),N[a]=function(){const t=this||e;let n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));const o=arguments[2],i=!!o&&("boolean"==typeof o||o.capture),a=arguments[1];if(!a)return y.apply(this,arguments);if(u&&!u(y,a,t,arguments))return;const s=K[n];let c;s&&(c=s[i?S:E]);const _=c&&t[c];if(_)for(let e=0;e<_.length;e++){const r=_[e];if(D(r,a))return _.splice(e,1),r.isRemoved=!0,0!==_.length||(r.allRemoved=!0,t[c]=null,i||"string"!=typeof n)||(t[T+"ON_PROPERTY"+n]=null),r.zone.cancelTask(r),f?t:void 0}return y.apply(this,arguments)},N[s]=function(){const t=this||e;let n=arguments[0];r&&r.transferEventName&&(n=r.transferEventName(n));const o=[],i=J(t,R?R(n):n);for(let e=0;efunction(t,r){t[z]=!0,e&&e.apply(t,r)}))}function $(e,t){t.patchMethod(e,"queueMicrotask",(e=>function(e,t){Zone.current.scheduleMicroTask("queueMicrotask",t[0])}))}const ee=m("zoneTask");function te(e,t,r,n){let o=null,i=null;r+=n;const a={};function s(t){const r=t.data;r.args[0]=function(){return t.invoke.apply(this,arguments)};const n=o.apply(e,r.args);return H(n)?r.handleId=n:(r.handle=n,r.isRefreshable=k(n.refresh)),t}function u(t){const{handle:r,handleId:n}=t.data;return i.call(e,r??n)}o=v(e,t+=n,(r=>function(o,i){if(k(i[0])){const e={isRefreshable:!1,isPeriodic:"Interval"===n,delay:"Timeout"===n||"Interval"===n?i[1]||0:void 0,args:i},r=i[0];i[0]=function(){try{return r.apply(this,arguments)}finally{const{handle:t,handleId:r,isPeriodic:n,isRefreshable:o}=e;n||o||(r?delete a[r]:t&&(t[ee]=null))}};const o=p(t,i[0],e,s,u);if(!o)return o;const{handleId:c,handle:_,isRefreshable:l,isPeriodic:S}=o.data;if(c)a[c]=o;else if(_&&(_[ee]=o,l&&!S)){const e=_.refresh;_.refresh=function(){const{zone:t,state:r}=o;return"notScheduled"===r?(o._state="scheduled",t._updateTaskCount(o,1)):"running"===r&&(o._state="scheduling"),e.call(this)}}return _??c??o}return r.apply(e,i)})),i=v(e,r,(t=>function(r,n){const o=n[0];let i;H(o)?(i=a[o],delete a[o]):(i=o?.[ee],i?o[ee]=null:i=o),i?.type?i.cancelFn&&i.zone.cancelTask(i):t.apply(e,n)}))}function re(e,t){if(Zone[t.symbol("patchEventTarget")])return;const{eventNames:r,zoneSymbolEventNames:n,TRUE_STR:o,FALSE_STR:i,ZONE_SYMBOL_PREFIX:a}=t.getGlobalObjects();for(let e=0;et.target===e));if(!n||0===n.length)return t;const o=n[0].ignoreProperties;return t.filter((e=>-1===o.indexOf(e)))}function oe(e,t,r,n){e&&I(e,ne(e,t,r),n)}function ie(e){return Object.getOwnPropertyNames(e).filter((e=>e.startsWith("on")&&e.length>2)).map((e=>e.substring(2)))}function ae(e,t){if(M&&!g)return;if(Zone[e.symbol("patchEvents")])return;const r=t.__Zone_ignore_on_properties;let n=[];if(b){const e=window;n=n.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const t=G()?[{target:e,ignoreProperties:["error"]}]:[];oe(e,ie(e),r?r.concat(t):r,i(e))}n=n.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let e=0;e{const n=Object.getOwnPropertyDescriptor,o=Object.defineProperty,i=r.symbol,a=[],s=!1!==e[i("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],u=i("Promise"),c=i("then");r.onUnhandledError=e=>{if(r.showUncaughtError()){const t=e&&e.rejection;t?console.error("Unhandled Promise rejection:",t instanceof Error?t.message:t,"; Zone:",e.zone.name,"; Task:",e.task&&e.task.source,"; Value:",t,t instanceof Error?t.stack:void 0):console.error(e)}},r.microtaskDrainDone=()=>{for(;a.length;){const e=a.shift();try{e.zone.runGuarded((()=>{if(e.throwOriginal)throw e.rejection;throw e}))}catch(e){l(e)}}};const _=i("unhandledPromiseRejectionHandler");function l(e){r.onUnhandledError(e);try{const r=t[_];"function"==typeof r&&r.call(this,e)}catch(e){}}function S(e){return e&&e.then}function E(e){return e}function T(e){return D.reject(e)}const A=i("state"),p=i("value"),m=i("finally"),O=i("parentPromiseValue"),f=i("parentPromiseState"),N=null,d=!0,P=!1;function R(e,t){return r=>{try{y(e,t,r)}catch(t){y(e,!1,t)}}}const M=function(){let e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}},b="Promise resolved with itself",g=i("currentTaskTrace");function y(e,n,i){const u=M();if(e===i)throw new TypeError(b);if(e[A]===N){let _=null;try{"object"!=typeof i&&"function"!=typeof i||(_=i&&i.then)}catch(t){return u((()=>{y(e,!1,t)}))(),e}if(n!==P&&i instanceof D&&i.hasOwnProperty(A)&&i.hasOwnProperty(p)&&i[A]!==N)h(i),y(e,i[A],i[p]);else if(n!==P&&"function"==typeof _)try{_.call(i,u(R(e,n)),u(R(e,!1)))}catch(t){u((()=>{y(e,!1,t)}))()}else{e[A]=n;const u=e[p];if(e[p]=i,e[m]===m&&n===d&&(e[A]=e[f],e[p]=e[O]),n===P&&i instanceof Error){const e=t.currentTask&&t.currentTask.data&&t.currentTask.data.__creationTrace__;e&&o(i,g,{configurable:!0,enumerable:!1,writable:!0,value:e})}for(let t=0;t{try{const n=e[p],o=!!r&&m===r[m];o&&(r[O]=n,r[f]=i);const s=t.run(a,void 0,o&&a!==T&&a!==E?[]:[n]);y(r,!0,s)}catch(e){y(r,!1,e)}}),r)}const I=function(){},U=e.AggregateError;class D{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(e){return e instanceof D?e:y(new this(null),d,e)}static reject(e){return y(new this(null),P,e)}static withResolvers(){const e={};return e.promise=new D(((t,r)=>{e.resolve=t,e.reject=r})),e}static any(e){if(!e||"function"!=typeof e[Symbol.iterator])return Promise.reject(new U([],"All promises were rejected"));const t=[];let r=0;try{for(let n of e)r++,t.push(D.resolve(n))}catch(e){return Promise.reject(new U([],"All promises were rejected"))}if(0===r)return Promise.reject(new U([],"All promises were rejected"));let n=!1;const o=[];return new D(((e,i)=>{for(let a=0;a{n||(n=!0,e(t))}),(e=>{o.push(e),r--,0===r&&(n=!0,i(new U(o,"All promises were rejected")))}))}))}static race(e){let t,r,n=new this(((e,n)=>{t=e,r=n}));function o(e){t(e)}function i(e){r(e)}for(let t of e)S(t)||(t=this.resolve(t)),t.then(o,i);return n}static all(e){return D.allWithCallback(e)}static allSettled(e){return(this&&this.prototype instanceof D?this:D).allWithCallback(e,{thenCallback:e=>({status:"fulfilled",value:e}),errorCallback:e=>({status:"rejected",reason:e})})}static allWithCallback(e,t){let r,n,o=new this(((e,t)=>{r=e,n=t})),i=2,a=0;const s=[];for(let o of e){S(o)||(o=this.resolve(o));const e=a;try{o.then((n=>{s[e]=t?t.thenCallback(n):n,i--,0===i&&r(s)}),(o=>{t?(s[e]=t.errorCallback(o),i--,0===i&&r(s)):n(o)}))}catch(e){n(e)}i++,a++}return i-=2,0===i&&r(s),o}constructor(e){const t=this;if(!(t instanceof D))throw new Error("Must be an instanceof Promise.");t[A]=N,t[p]=[];try{const r=M();e&&e(r(R(t,d)),r(R(t,P)))}catch(e){y(t,!1,e)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return D}then(e,r){let n=this.constructor?.[Symbol.species];n&&"function"==typeof n||(n=this.constructor||D);const o=new n(I),i=t.current;return this[A]==N?this[p].push(i,o,e,r):C(this,i,o,e,r),o}catch(e){return this.then(null,e)}finally(e){let r=this.constructor?.[Symbol.species];r&&"function"==typeof r||(r=D);const n=new r(I);n[m]=m;const o=t.current;return this[A]==N?this[p].push(o,n,e,e):C(this,o,n,e,e),n}}D.resolve=D.resolve,D.reject=D.reject,D.race=D.race,D.all=D.all;const V=e[u]=e.Promise;e.Promise=D;const x=i("thenPatched");function w(e){const t=e.prototype,r=n(t,"then");if(r&&(!1===r.writable||!r.configurable))return;const o=t.then;t[c]=o,e.prototype.then=function(e,t){return new D(((e,t)=>{o.call(this,e,t)})).then(e,t)},e[x]=!0}return r.patchThen=w,V&&(w(V),v(e,"fetch",(e=>{return t=e,function(e,r){let n=t.apply(e,r);if(n instanceof D)return n;let o=n.constructor;return o[x]||w(o),n};var t}))),Promise[t.__symbol__("uncaughtPromiseErrors")]=a,D}))})(e),function(e){e.__load_patch("toString",(e=>{const t=Function.prototype.toString,r=m("OriginalDelegate"),n=m("Promise"),o=m("Error"),i=function(){if("function"==typeof this){const i=this[r];if(i)return"function"==typeof i?t.call(i):Object.prototype.toString.call(i);if(this===Promise){const r=e[n];if(r)return t.call(r)}if(this===Error){const r=e[o];if(r)return t.call(r)}}return t.call(this)};i[r]=t,Function.prototype.toString=i;const a=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":a.call(this)}}))}(e),function(e){e.__load_patch("util",((e,t,r)=>{const i=ie(e);r.patchOnProperties=I,r.patchMethod=v,r.bindArguments=d,r.patchMacroTask=V;const _=t.__symbol__("BLACK_LISTED_EVENTS"),l=t.__symbol__("UNPATCHED_EVENTS");e[l]&&(e[_]=e[l]),e[_]&&(t[_]=t[l]=e[_]),r.patchEventPrototype=Q,r.patchEventTarget=q,r.isIEOrEdge=Y,r.ObjectDefineProperty=o,r.ObjectGetOwnPropertyDescriptor=n,r.ObjectCreate=a,r.ArraySlice=s,r.patchClass=D,r.wrapWithCurrentZone=A,r.filterProperties=ne,r.attachOriginToPatched=x,r._redefineProperty=Object.defineProperty,r.patchCallbacks=se,r.getGlobalObjects=()=>({globalSources:W,zoneSymbolEventNames:K,eventNames:i,isBrowser:b,isMix:g,isNode:M,TRUE_STR:S,FALSE_STR:E,ZONE_SYMBOL_PREFIX:T,ADD_EVENT_LISTENER_STR:u,REMOVE_EVENT_LISTENER_STR:c})}))}(e)}(ue),function(e){e.__load_patch("legacy",(t=>{const r=t[e.__symbol__("legacyPatch")];r&&r()})),e.__load_patch("timers",(e=>{const t="set",r="clear";te(e,t,r,"Timeout"),te(e,t,r,"Interval"),te(e,t,r,"Immediate")})),e.__load_patch("requestAnimationFrame",(e=>{te(e,"request","cancel","AnimationFrame"),te(e,"mozRequest","mozCancel","AnimationFrame"),te(e,"webkitRequest","webkitCancel","AnimationFrame")})),e.__load_patch("blocking",((e,t)=>{const r=["alert","prompt","confirm"];for(let n=0;nfunction(n,i){return t.current.run(r,e,i,o)}))})),e.__load_patch("EventTarget",((e,t,r)=>{!function(e,t){t.patchEventPrototype(e,t)}(e,r),re(e,r);const n=e.XMLHttpRequestEventTarget;n&&n.prototype&&r.patchEventTarget(e,r,[n.prototype])})),e.__load_patch("MutationObserver",((e,t,r)=>{D("MutationObserver"),D("WebKitMutationObserver")})),e.__load_patch("IntersectionObserver",((e,t,r)=>{D("IntersectionObserver")})),e.__load_patch("FileReader",((e,t,r)=>{D("FileReader")})),e.__load_patch("on_property",((e,t,r)=>{ae(r,e)})),e.__load_patch("customElements",((e,t,r)=>{!function(e,t){const{isBrowser:r,isMix:n}=t.getGlobalObjects();(r||n)&&e.customElements&&"customElements"in e&&t.patchCallbacks(t,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(e,r)})),e.__load_patch("XHR",((e,t)=>{!function(e){const u=e.XMLHttpRequest;if(!u)return;const c=u.prototype;let S=c[_],E=c[l];if(!S){const t=e.XMLHttpRequestEventTarget;if(t){const e=t.prototype;S=e[_],E=e[l]}}const T="readystatechange",A="scheduled";function O(e){const n=e.data,a=n.target;a[i]=!1,a[s]=!1;const u=a[o];S||(S=a[_],E=a[l]),u&&E.call(a,T,u);const c=a[o]=()=>{if(a.readyState===a.DONE)if(!n.aborted&&a[i]&&e.state===A){const r=a[t.__symbol__("loadfalse")];if(0!==a.status&&r&&r.length>0){const o=e.invoke;e.invoke=function(){const r=a[t.__symbol__("loadfalse")];for(let t=0;tfunction(e,t){return e[n]=0==t[2],e[a]=t[1],d.apply(e,t)})),P=m("fetchTaskAborting"),R=m("fetchTaskScheduling"),M=v(c,"send",(()=>function(e,r){if(!0===t.current[R])return M.apply(e,r);if(e[n])return M.apply(e,r);{const t={target:e,url:e[a],isPeriodic:!1,args:r,aborted:!1},n=p("XMLHttpRequest.send",f,t,O,N);e&&!0===e[s]&&!t.aborted&&n.state===A&&n.invoke()}})),b=v(c,"abort",(()=>function(e,n){const o=e[r];if(o&&"string"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===t.current[P])return b.apply(e,n)}))}(e);const r=m("xhrTask"),n=m("xhrSync"),o=m("xhrListener"),i=m("xhrScheduled"),a=m("xhrURL"),s=m("xhrErrorBeforeScheduled")})),e.__load_patch("geolocation",(e=>{e.navigator&&e.navigator.geolocation&&function(e,t){const r=e.constructor.name;for(let o=0;o{const t=function(){return e.apply(this,d(arguments,r+"."+i))};return x(t,e),t})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])})),e.__load_patch("PromiseRejectionEvent",((e,t)=>{function r(t){return function(r){J(e,t).forEach((n=>{const o=e.PromiseRejectionEvent;if(o){const e=new o(t,{promise:r.promise,reason:r.rejection});n.invoke(e)}}))}}e.PromiseRejectionEvent&&(t[m("unhandledPromiseRejectionHandler")]=r("unhandledrejection"),t[m("rejectionHandledHandler")]=r("rejectionhandled"))})),e.__load_patch("queueMicrotask",((e,t,r)=>{$(e,r)}))}(ue)}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.exports}__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={},TraceFlags;__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{initializeTelemetry:()=>initializeTelemetry}),function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"}(TraceFlags||(TraceFlags={}));var Deferred=function(){function e(){var e=this;this._promise=new Promise((function(t,r){e._resolve=t,e._reject=r}))}return Object.defineProperty(e.prototype,"promise",{get:function(){return this._promise},enumerable:!1,configurable:!0}),e.prototype.resolve=function(e){this._resolve(e)},e.prototype.reject=function(e){this._reject(e)},e}(),__read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},__spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},NoopContextManager_spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},ComponentLogger_spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o=n?o.bind(t):function(){}}return eDiagLogLevel.ALL&&(e=DiagLogLevel.ALL),t=t||{},{error:r("error",DiagLogLevel.ERROR),warn:r("warn",DiagLogLevel.WARN),info:r("info",DiagLogLevel.INFO),debug:r("debug",DiagLogLevel.DEBUG),verbose:r("verbose",DiagLogLevel.VERBOSE)}}!function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"}(DiagLogLevel||(DiagLogLevel={}));var diag_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},diag_spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o";s.warn("Current logger will be overwritten from "+c),u.warn("Current logger will overwrite one already registered from "+c)}return registerGlobal("diag",u,t,!0)},t.disable=function(){unregisterGlobal(API_NAME,t)},t.createComponentLogger=function(e){return new DiagComponentLogger(e)},t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}(),context_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},context_spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=SECOND_TO_NANOSECONDS&&(r[1]-=SECOND_TO_NANOSECONDS,r[0]+=1),r}var __values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},ConsoleSpanExporter=function(){function e(){}return e.prototype.export=function(e,t){return this._sendSpans(e,t)},e.prototype.shutdown=function(){return this._sendSpans([]),this.forceFlush()},e.prototype.forceFlush=function(){return Promise.resolve()},e.prototype._exportInfo=function(e){var t;return{resource:{attributes:e.resource.attributes},traceId:e.spanContext().traceId,parentId:e.parentSpanId,traceState:null===(t=e.spanContext().traceState)||void 0===t?void 0:t.serialize(),name:e.name,id:e.spanContext().spanId,kind:e.kind,timestamp:hrTimeToMicroseconds(e.startTime),duration:hrTimeToMicroseconds(e.duration),attributes:e.attributes,status:e.status,events:e.events,links:e.links}},e.prototype._sendSpans=function(e,t){var r,n;try{for(var o=__values(e),i=o.next();!i.done;i=o.next()){var a=i.value;console.dir(this._exportInfo(a),{depth:3})}}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}if(t)return t({code:ExportResultCode.SUCCESS})},e}(),INVALID_SPANID="0000000000000000",INVALID_TRACEID="00000000000000000000000000000000",INVALID_SPAN_CONTEXT={traceId:INVALID_TRACEID,spanId:INVALID_SPANID,traceFlags:TraceFlags.NONE},NonRecordingSpan=function(){function e(e){void 0===e&&(e=INVALID_SPAN_CONTEXT),this._spanContext=e}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(e,t){return this},e.prototype.setAttributes=function(e){return this},e.prototype.addEvent=function(e,t){return this},e.prototype.addLink=function(e){return this},e.prototype.addLinks=function(e){return this},e.prototype.setStatus=function(e){return this},e.prototype.updateName=function(e){return this},e.prototype.end=function(e){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(e,t){},e}(),SPAN_KEY=createContextKey("OpenTelemetry Context Key SPAN");function getSpan(e){return e.getValue(SPAN_KEY)||void 0}function getActiveSpan(){return getSpan(ContextAPI.getInstance().active())}function setSpan(e,t){return e.setValue(SPAN_KEY,t)}function deleteSpan(e){return e.deleteValue(SPAN_KEY)}function setSpanContext(e,t){return setSpan(e,new NonRecordingSpan(t))}function getSpanContext(e){var t;return null===(t=getSpan(e))||void 0===t?void 0:t.spanContext()}var VALID_TRACEID_REGEX=/^([0-9a-f]{32})$/i,VALID_SPANID_REGEX=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return VALID_TRACEID_REGEX.test(e)&&e!==INVALID_TRACEID}function isValidSpanId(e){return VALID_SPANID_REGEX.test(e)&&e!==INVALID_SPANID}function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}function wrapSpanContext(e){return new NonRecordingSpan(e)}var contextApi=ContextAPI.getInstance(),NoopTracer=function(){function e(){}return e.prototype.startSpan=function(e,t,r){if(void 0===r&&(r=contextApi.active()),Boolean(null==t?void 0:t.root))return new NonRecordingSpan;var n=r&&getSpanContext(r);return isSpanContext(n)&&isSpanContextValid(n)?new NonRecordingSpan(n):new NonRecordingSpan},e.prototype.startActiveSpan=function(e,t,r,n){var o,i,a;if(!(arguments.length<2)){2===arguments.length?a=t:3===arguments.length?(o=t,a=r):(o=t,i=r,a=n);var s=null!=i?i:contextApi.active(),u=this.startSpan(e,o,s),c=setSpan(s,u);return contextApi.with(c,a,void 0,u)}},e}();function isSpanContext(e){return"object"==typeof e&&"string"==typeof e.spanId&&"string"==typeof e.traceId&&"number"==typeof e.traceFlags}var NOOP_TRACER=new NoopTracer,ProxyTracer=function(){function e(e,t,r,n){this._provider=e,this.name=t,this.version=r,this.options=n}return e.prototype.startSpan=function(e,t,r){return this._getTracer().startSpan(e,t,r)},e.prototype.startActiveSpan=function(e,t,r,n){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):NOOP_TRACER},e}(),NoopTracerProvider=function(){function e(){}return e.prototype.getTracer=function(e,t,r){return new NoopTracer},e}(),NOOP_TRACER_PROVIDER=new NoopTracerProvider,ProxyTracerProvider=function(){function e(){}return e.prototype.getTracer=function(e,t,r){var n;return null!==(n=this.getDelegateTracer(e,t,r))&&void 0!==n?n:new ProxyTracer(this,e,t,r)},e.prototype.getDelegate=function(){var e;return null!==(e=this._delegate)&&void 0!==e?e:NOOP_TRACER_PROVIDER},e.prototype.setDelegate=function(e){this._delegate=e},e.prototype.getDelegateTracer=function(e,t,r){var n;return null===(n=this._delegate)||void 0===n?void 0:n.getTracer(e,t,r)},e}(),trace_API_NAME="trace",TraceAPI=function(){function e(){this._proxyTracerProvider=new ProxyTracerProvider,this.wrapSpanContext=wrapSpanContext,this.isSpanContextValid=isSpanContextValid,this.deleteSpan=deleteSpan,this.getSpan=getSpan,this.getActiveSpan=getActiveSpan,this.getSpanContext=getSpanContext,this.setSpan=setSpan,this.setSpanContext=setSpanContext}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(e){var t=registerGlobal(trace_API_NAME,this._proxyTracerProvider,DiagAPI.instance());return t&&this._proxyTracerProvider.setDelegate(e),t},e.prototype.getTracerProvider=function(){return getGlobal(trace_API_NAME)||this._proxyTracerProvider},e.prototype.getTracer=function(e,t){return this.getTracerProvider().getTracer(e,t)},e.prototype.disable=function(){unregisterGlobal(trace_API_NAME,DiagAPI.instance()),this._proxyTracerProvider=new ProxyTracerProvider},e}(),trace=TraceAPI.getInstance(),NoopTextMapPropagator=function(){function e(){}return e.prototype.inject=function(e,t){},e.prototype.extract=function(e,t){return e},e.prototype.fields=function(){return[]},e}(),defaultTextMapGetter={get:function(e,t){if(null!=e)return e[t]},keys:function(e){return null==e?[]:Object.keys(e)}},defaultTextMapSetter={set:function(e,t,r){null!=e&&(e[t]=r)}},BAGGAGE_KEY=createContextKey("OpenTelemetry Baggage Key");function getBaggage(e){return e.getValue(BAGGAGE_KEY)||void 0}function getActiveBaggage(){return getBaggage(ContextAPI.getInstance().active())}function setBaggage(e,t){return e.setValue(BAGGAGE_KEY,t)}function deleteBaggage(e){return e.deleteValue(BAGGAGE_KEY)}var baggage_impl_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},baggage_impl_values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},BaggageImpl=function(){function e(e){this._entries=e?new Map(e):new Map}return e.prototype.getEntry=function(e){var t=this._entries.get(e);if(t)return Object.assign({},t)},e.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map((function(e){var t=baggage_impl_read(e,2);return[t[0],t[1]]}))},e.prototype.setEntry=function(t,r){var n=new e(this._entries);return n._entries.set(t,r),n},e.prototype.removeEntry=function(t){var r=new e(this._entries);return r._entries.delete(t),r},e.prototype.removeEntries=function(){for(var t,r,n=[],o=0;o0;)r=mergeTwoObjects(r,e.shift(),0,n);return r}function takeValue(e){return isArray(e)?e.slice():e}function mergeTwoObjects(e,t,r,n){var o;if(void 0===r&&(r=0),!(r>MAX_LEVEL)){if(r++,isPrimitive(e)||isPrimitive(t)||isFunction(t))o=takeValue(t);else if(isArray(e)){if(o=e.slice(),isArray(t))for(var i=0,a=t.length;i-1}var ENVIRONMENT_NUMBERS_KEYS=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function isEnvVarANumber(e){return ENVIRONMENT_NUMBERS_KEYS.indexOf(e)>-1}var ENVIRONMENT_LISTS_KEYS=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS"];function isEnvVarAList(e){return ENVIRONMENT_LISTS_KEYS.indexOf(e)>-1}var DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0,DEFAULT_ATTRIBUTE_COUNT_LIMIT=128,DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128,DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128,DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative"};function parseBoolean(e,t,r){if(void 0!==r[e]){var n=String(r[e]);t[e]="true"===n.toLowerCase()}}function parseNumber(e,t,r,n,o){if(void 0===n&&(n=-1/0),void 0===o&&(o=1/0),void 0!==r[e]){var i=Number(r[e]);isNaN(i)||(t[e]=io?o:i)}}function parseStringList(e,t,r,n){void 0===n&&(n=DEFAULT_LIST_SEPARATOR);var o=r[e];"string"==typeof o&&(t[e]=o.split(n).map((function(e){return e.trim()})))}var logLevelMap={ALL:DiagLogLevel.ALL,VERBOSE:DiagLogLevel.VERBOSE,DEBUG:DiagLogLevel.DEBUG,INFO:DiagLogLevel.INFO,WARN:DiagLogLevel.WARN,ERROR:DiagLogLevel.ERROR,NONE:DiagLogLevel.NONE};function setLogLevelFromEnv(e,t,r){var n=r[e];if("string"==typeof n){var o=logLevelMap[n.toUpperCase()];null!=o&&(t[e]=o)}}function environment_parseEnvironment(e){var t={};for(var r in DEFAULT_ENVIRONMENT){var n=r;if("OTEL_LOG_LEVEL"===n)setLogLevelFromEnv(n,t,e);else if(isEnvVarABoolean(n))parseBoolean(n,t,e);else if(isEnvVarANumber(n))parseNumber(n,t,e);else if(isEnvVarAList(n))parseStringList(n,t,e);else{var o=e[n];null!=o&&(t[n]=String(o))}}return t}var browser_globalThis_globalThis="object"==typeof globalThis?globalThis:"object"==typeof self?self:"object"==typeof window?window:"object"==typeof __webpack_require__.g?__webpack_require__.g:{};function getEnv(){var e=environment_parseEnvironment(browser_globalThis_globalThis);return Object.assign({},DEFAULT_ENVIRONMENT,e)}function getEnvWithoutDefaults(){return environment_parseEnvironment(browser_globalThis_globalThis)}var composite_values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},CompositePropagator=function(){function e(e){var t;void 0===e&&(e={}),this._propagators=null!==(t=e.propagators)&&void 0!==t?t:[],this._fields=Array.from(new Set(this._propagators.map((function(e){return"function"==typeof e.fields?e.fields():[]})).reduce((function(e,t){return e.concat(t)}),[])))}return e.prototype.inject=function(e,t,r){var n,o;try{for(var i=composite_values(this._propagators),a=i.next();!a.done;a=i.next()){var s=a.value;try{s.inject(e,t,r)}catch(e){diag.warn("Failed to inject with "+s.constructor.name+". Err: "+e.message)}}}catch(e){n={error:e}}finally{try{a&&!a.done&&(o=i.return)&&o.call(i)}finally{if(n)throw n.error}}},e.prototype.extract=function(e,t,r){return this._propagators.reduce((function(e,n){try{return n.extract(e,t,r)}catch(e){diag.warn("Failed to inject with "+n.constructor.name+". Err: "+e.message)}return e}),e)},e.prototype.fields=function(){return this._fields.slice()},e}(),suppress_tracing_SUPPRESS_TRACING_KEY=createContextKey("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function suppress_tracing_suppressTracing(e){return e.setValue(suppress_tracing_SUPPRESS_TRACING_KEY,!0)}function suppress_tracing_unsuppressTracing(e){return e.deleteValue(suppress_tracing_SUPPRESS_TRACING_KEY)}function suppress_tracing_isTracingSuppressed(e){return!0===e.getValue(suppress_tracing_SUPPRESS_TRACING_KEY)}var VALID_KEY_CHAR_RANGE="[_0-9a-z-*/]",VALID_KEY="[a-z]"+VALID_KEY_CHAR_RANGE+"{0,255}",VALID_VENDOR_KEY="[a-z0-9]"+VALID_KEY_CHAR_RANGE+"{0,240}@[a-z]"+VALID_KEY_CHAR_RANGE+"{0,13}",VALID_KEY_REGEX=new RegExp("^(?:"+VALID_KEY+"|"+VALID_VENDOR_KEY+")$"),VALID_VALUE_BASE_REGEX=/^[ -~]{0,255}[!-~]$/,INVALID_VALUE_COMMA_EQUAL_REGEX=/,|=/;function validateKey(e){return VALID_KEY_REGEX.test(e)}function validateValue(e){return VALID_VALUE_BASE_REGEX.test(e)&&!INVALID_VALUE_COMMA_EQUAL_REGEX.test(e)}var MAX_TRACE_STATE_ITEMS=32,MAX_TRACE_STATE_LEN=512,LIST_MEMBERS_SEPARATOR=",",LIST_MEMBER_KEY_VALUE_SPLITTER="=",TraceState=function(){function e(e){this._internalState=new Map,e&&this._parse(e)}return e.prototype.set=function(e,t){var r=this._clone();return r._internalState.has(e)&&r._internalState.delete(e),r._internalState.set(e,t),r},e.prototype.unset=function(e){var t=this._clone();return t._internalState.delete(e),t},e.prototype.get=function(e){return this._internalState.get(e)},e.prototype.serialize=function(){var e=this;return this._keys().reduce((function(t,r){return t.push(r+LIST_MEMBER_KEY_VALUE_SPLITTER+e.get(r)),t}),[]).join(LIST_MEMBERS_SEPARATOR)},e.prototype._parse=function(e){e.length>MAX_TRACE_STATE_LEN||(this._internalState=e.split(LIST_MEMBERS_SEPARATOR).reverse().reduce((function(e,t){var r=t.trim(),n=r.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);if(-1!==n){var o=r.slice(0,n),i=r.slice(n+1,t.length);validateKey(o)&&validateValue(i)&&e.set(o,i)}return e}),new Map),this._internalState.size>MAX_TRACE_STATE_ITEMS&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,MAX_TRACE_STATE_ITEMS))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}(),TRACE_PARENT_HEADER="traceparent",TRACE_STATE_HEADER="tracestate",W3CTraceContextPropagator_VERSION="00",VERSION_PART="(?!ff)[\\da-f]{2}",TRACE_ID_PART="(?![0]{32})[\\da-f]{32}",PARENT_ID_PART="(?![0]{16})[\\da-f]{16}",FLAGS_PART="[\\da-f]{2}",TRACE_PARENT_REGEX=new RegExp("^\\s?("+VERSION_PART+")-("+TRACE_ID_PART+")-("+PARENT_ID_PART+")-("+FLAGS_PART+")(-.*)?\\s?$");function parseTraceParent(e){var t=TRACE_PARENT_REGEX.exec(e);return t?"00"===t[1]&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}:null}var W3CTraceContextPropagator=function(){function e(){}return e.prototype.inject=function(e,t,r){var n=trace.getSpanContext(e);if(n&&!suppress_tracing_isTracingSuppressed(e)&&isSpanContextValid(n)){var o=W3CTraceContextPropagator_VERSION+"-"+n.traceId+"-"+n.spanId+"-0"+Number(n.traceFlags||TraceFlags.NONE).toString(16);r.set(t,TRACE_PARENT_HEADER,o),n.traceState&&r.set(t,TRACE_STATE_HEADER,n.traceState.serialize())}},e.prototype.extract=function(e,t,r){var n=r.get(t,TRACE_PARENT_HEADER);if(!n)return e;var o=Array.isArray(n)?n[0]:n;if("string"!=typeof o)return e;var i=parseTraceParent(o);if(!i)return e;i.isRemote=!0;var a=r.get(t,TRACE_STATE_HEADER);if(a){var s=Array.isArray(a)?a.join(","):a;i.traceState=new TraceState("string"==typeof s?s:void 0)}return trace.setSpanContext(e,i)},e.prototype.fields=function(){return[TRACE_PARENT_HEADER,TRACE_STATE_HEADER]},e}(),BAGGAGE_KEY_PAIR_SEPARATOR="=",constants_BAGGAGE_PROPERTIES_SEPARATOR=";",constants_BAGGAGE_ITEMS_SEPARATOR=",",BAGGAGE_HEADER="baggage",BAGGAGE_MAX_NAME_VALUE_PAIRS=180,BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096,constants_BAGGAGE_MAX_TOTAL_LENGTH=8192,utils_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a};function serializeKeyPairs(e){return e.reduce((function(e,t){var r=""+e+(""!==e?constants_BAGGAGE_ITEMS_SEPARATOR:"")+t;return r.length>constants_BAGGAGE_MAX_TOTAL_LENGTH?e:r}),"")}function getKeyPairs(e){return e.getAllEntries().map((function(e){var t=utils_read(e,2),r=t[0],n=t[1],o=encodeURIComponent(r)+"="+encodeURIComponent(n.value);return void 0!==n.metadata&&(o+=constants_BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),o}))}function parsePairKeyValue(e){var t=e.split(constants_BAGGAGE_PROPERTIES_SEPARATOR);if(!(t.length<=0)){var r=t.shift();if(r){var n=r.indexOf(BAGGAGE_KEY_PAIR_SEPARATOR);if(!(n<=0)){var o,i=decodeURIComponent(r.substring(0,n).trim()),a=decodeURIComponent(r.substring(n+1).trim());return t.length>0&&(o=baggageEntryMetadataFromString(t.join(constants_BAGGAGE_PROPERTIES_SEPARATOR))),{key:i,value:a,metadata:o}}}}}function parseKeyPairsIntoRecord(e){return"string"!=typeof e||0===e.length?{}:e.split(BAGGAGE_ITEMS_SEPARATOR).map((function(e){return parsePairKeyValue(e)})).filter((function(e){return void 0!==e&&e.value.length>0})).reduce((function(e,t){return e[t.key]=t.value,e}),{})}var W3CBaggagePropagator=function(){function e(){}return e.prototype.inject=function(e,t,r){var n=propagation.getBaggage(e);if(n&&!suppress_tracing_isTracingSuppressed(e)){var o=serializeKeyPairs(getKeyPairs(n).filter((function(e){return e.length<=BAGGAGE_MAX_PER_NAME_VALUE_PAIRS})).slice(0,BAGGAGE_MAX_NAME_VALUE_PAIRS));o.length>0&&r.set(t,BAGGAGE_HEADER,o)}},e.prototype.extract=function(e,t,r){var n=r.get(t,BAGGAGE_HEADER),o=Array.isArray(n)?n.join(constants_BAGGAGE_ITEMS_SEPARATOR):n;if(!o)return e;var i={};return 0===o.length?e:(o.split(constants_BAGGAGE_ITEMS_SEPARATOR).forEach((function(e){var t=parsePairKeyValue(e);if(t){var r={value:t.value};t.metadata&&(r.metadata=t.metadata),i[t.key]=r}})),0===Object.entries(i).length?e:propagation.setBaggage(e,propagation.createBaggage(i)))},e.prototype.fields=function(){return[BAGGAGE_HEADER]},e}();function createConstMap(e){for(var t={},r=e.length,n=0;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},Resource=function(){function e(e,t){var r,n=this;this._attributes=e,this.asyncAttributesPending=null!=t,this._syncAttributes=null!==(r=this._attributes)&&void 0!==r?r:{},this._asyncAttributesPromise=null==t?void 0:t.then((function(e){return n._attributes=Object.assign({},n._attributes,e),n.asyncAttributesPending=!1,e}),(function(e){return diag.debug("a resource's async attributes promise rejected: %s",e),n.asyncAttributesPending=!1,{}}))}return e.empty=function(){return e.EMPTY},e.default=function(){var t;return new e(((t={})[SEMRESATTRS_SERVICE_NAME]=defaultServiceName(),t[SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]=SDK_INFO[SEMRESATTRS_TELEMETRY_SDK_LANGUAGE],t[SEMRESATTRS_TELEMETRY_SDK_NAME]=SDK_INFO[SEMRESATTRS_TELEMETRY_SDK_NAME],t[SEMRESATTRS_TELEMETRY_SDK_VERSION]=SDK_INFO[SEMRESATTRS_TELEMETRY_SDK_VERSION],t))},Object.defineProperty(e.prototype,"attributes",{get:function(){var e;return this.asyncAttributesPending&&diag.error("Accessing resource attributes before async attributes settled"),null!==(e=this._attributes)&&void 0!==e?e:{}},enumerable:!1,configurable:!0}),e.prototype.waitForAsyncAttributes=function(){return Resource_awaiter(this,void 0,void 0,(function(){return Resource_generator(this,(function(e){switch(e.label){case 0:return this.asyncAttributesPending?[4,this._asyncAttributesPromise]:[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},e.prototype.merge=function(t){var r,n=this;if(!t)return this;var o=__assign(__assign({},this._syncAttributes),null!==(r=t._syncAttributes)&&void 0!==r?r:t.attributes);if(!this._asyncAttributesPromise&&!t._asyncAttributesPromise)return new e(o);var i=Promise.all([this._asyncAttributesPromise,t._asyncAttributesPromise]).then((function(e){var r,o=Resource_read(e,2),i=o[0],a=o[1];return __assign(__assign(__assign(__assign({},n._syncAttributes),i),null!==(r=t._syncAttributes)&&void 0!==r?r:t.attributes),a)}));return new e(o,i)},e.EMPTY=new e({}),e}(),SpanKind,SamplingDecision;!function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"}(SpanKind||(SpanKind={})),function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"}(SamplingDecision||(SamplingDecision={}));var attributes_values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},attributes_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},SpanStatusCode;function sanitizeAttributes(e){var t,r,n={};if("object"!=typeof e||null==e)return n;try{for(var o=attributes_values(Object.entries(e)),i=o.next();!i.done;i=o.next()){var a=attributes_read(i.value,2),s=a[0],u=a[1];isAttributeKey(s)?isAttributeValue(u)?Array.isArray(u)?n[s]=u.slice():n[s]=u:diag.warn("Invalid attribute value set for key: "+s):diag.warn("Invalid attribute key: "+s)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return n}function isAttributeKey(e){return"string"==typeof e&&e.length>0}function isAttributeValue(e){return null==e||(Array.isArray(e)?isHomogeneousAttributeValueArray(e):isValidPrimitiveAttributeValue(e))}function isHomogeneousAttributeValueArray(e){var t,r,n;try{for(var o=attributes_values(e),i=o.next();!i.done;i=o.next()){var a=i.value;if(null!=a){if(!n){if(isValidPrimitiveAttributeValue(a)){n=typeof a;continue}return!1}if(typeof a!==n)return!1}}}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return!0}function isValidPrimitiveAttributeValue(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}!function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"}(SpanStatusCode||(SpanStatusCode={}));var otperformance=performance,time_NANOSECOND_DIGITS=9,time_NANOSECOND_DIGITS_IN_MILLIS=6,time_MILLISECONDS_TO_NANOSECONDS=Math.pow(10,time_NANOSECOND_DIGITS_IN_MILLIS),time_SECOND_TO_NANOSECONDS=Math.pow(10,time_NANOSECOND_DIGITS);function time_millisToHrTime(e){var t=e/1e3;return[Math.trunc(t),Math.round(e%1e3*time_MILLISECONDS_TO_NANOSECONDS)]}function time_getTimeOrigin(){var e=otperformance.timeOrigin;if("number"!=typeof e){var t=otperformance;e=t.timing&&t.timing.fetchStart}return e}function time_hrTime(e){return time_addHrTimes(time_millisToHrTime(time_getTimeOrigin()),time_millisToHrTime("number"==typeof e?e:otperformance.now()))}function common_time_timeInputToHrTime(e){if(time_isTimeInputHrTime(e))return e;if("number"==typeof e)return e=time_SECOND_TO_NANOSECONDS&&(r[1]-=time_SECOND_TO_NANOSECONDS,r[0]+=1),r}var TMP_AWS_LAMBDA_INVOKED_ARN="aws.lambda.invoked_arn",TMP_DB_SYSTEM="db.system",TMP_DB_CONNECTION_STRING="db.connection_string",TMP_DB_USER="db.user",TMP_DB_JDBC_DRIVER_CLASSNAME="db.jdbc.driver_classname",TMP_DB_NAME="db.name",TMP_DB_STATEMENT="db.statement",TMP_DB_OPERATION="db.operation",TMP_DB_MSSQL_INSTANCE_NAME="db.mssql.instance_name",TMP_DB_CASSANDRA_KEYSPACE="db.cassandra.keyspace",TMP_DB_CASSANDRA_PAGE_SIZE="db.cassandra.page_size",TMP_DB_CASSANDRA_CONSISTENCY_LEVEL="db.cassandra.consistency_level",TMP_DB_CASSANDRA_TABLE="db.cassandra.table",TMP_DB_CASSANDRA_IDEMPOTENCE="db.cassandra.idempotence",TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT="db.cassandra.speculative_execution_count",TMP_DB_CASSANDRA_COORDINATOR_ID="db.cassandra.coordinator.id",TMP_DB_CASSANDRA_COORDINATOR_DC="db.cassandra.coordinator.dc",TMP_DB_HBASE_NAMESPACE="db.hbase.namespace",TMP_DB_REDIS_DATABASE_INDEX="db.redis.database_index",TMP_DB_MONGODB_COLLECTION="db.mongodb.collection",TMP_DB_SQL_TABLE="db.sql.table",TMP_EXCEPTION_TYPE="exception.type",TMP_EXCEPTION_MESSAGE="exception.message",TMP_EXCEPTION_STACKTRACE="exception.stacktrace",TMP_EXCEPTION_ESCAPED="exception.escaped",TMP_FAAS_TRIGGER="faas.trigger",TMP_FAAS_EXECUTION="faas.execution",TMP_FAAS_DOCUMENT_COLLECTION="faas.document.collection",TMP_FAAS_DOCUMENT_OPERATION="faas.document.operation",TMP_FAAS_DOCUMENT_TIME="faas.document.time",TMP_FAAS_DOCUMENT_NAME="faas.document.name",TMP_FAAS_TIME="faas.time",TMP_FAAS_CRON="faas.cron",TMP_FAAS_COLDSTART="faas.coldstart",TMP_FAAS_INVOKED_NAME="faas.invoked_name",TMP_FAAS_INVOKED_PROVIDER="faas.invoked_provider",TMP_FAAS_INVOKED_REGION="faas.invoked_region",TMP_NET_TRANSPORT="net.transport",TMP_NET_PEER_IP="net.peer.ip",TMP_NET_PEER_PORT="net.peer.port",TMP_NET_PEER_NAME="net.peer.name",TMP_NET_HOST_IP="net.host.ip",TMP_NET_HOST_PORT="net.host.port",TMP_NET_HOST_NAME="net.host.name",TMP_NET_HOST_CONNECTION_TYPE="net.host.connection.type",TMP_NET_HOST_CONNECTION_SUBTYPE="net.host.connection.subtype",TMP_NET_HOST_CARRIER_NAME="net.host.carrier.name",TMP_NET_HOST_CARRIER_MCC="net.host.carrier.mcc",TMP_NET_HOST_CARRIER_MNC="net.host.carrier.mnc",TMP_NET_HOST_CARRIER_ICC="net.host.carrier.icc",TMP_PEER_SERVICE="peer.service",TMP_ENDUSER_ID="enduser.id",TMP_ENDUSER_ROLE="enduser.role",TMP_ENDUSER_SCOPE="enduser.scope",TMP_THREAD_ID="thread.id",TMP_THREAD_NAME="thread.name",TMP_CODE_FUNCTION="code.function",TMP_CODE_NAMESPACE="code.namespace",TMP_CODE_FILEPATH="code.filepath",TMP_CODE_LINENO="code.lineno",TMP_HTTP_METHOD="http.method",TMP_HTTP_URL="http.url",TMP_HTTP_TARGET="http.target",TMP_HTTP_HOST="http.host",TMP_HTTP_SCHEME="http.scheme",TMP_HTTP_STATUS_CODE="http.status_code",TMP_HTTP_FLAVOR="http.flavor",TMP_HTTP_USER_AGENT="http.user_agent",TMP_HTTP_REQUEST_CONTENT_LENGTH="http.request_content_length",TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED="http.request_content_length_uncompressed",TMP_HTTP_RESPONSE_CONTENT_LENGTH="http.response_content_length",TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED="http.response_content_length_uncompressed",TMP_HTTP_SERVER_NAME="http.server_name",TMP_HTTP_ROUTE="http.route",TMP_HTTP_CLIENT_IP="http.client_ip",TMP_AWS_DYNAMODB_TABLE_NAMES="aws.dynamodb.table_names",TMP_AWS_DYNAMODB_CONSUMED_CAPACITY="aws.dynamodb.consumed_capacity",TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS="aws.dynamodb.item_collection_metrics",TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY="aws.dynamodb.provisioned_read_capacity",TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY="aws.dynamodb.provisioned_write_capacity",TMP_AWS_DYNAMODB_CONSISTENT_READ="aws.dynamodb.consistent_read",TMP_AWS_DYNAMODB_PROJECTION="aws.dynamodb.projection",TMP_AWS_DYNAMODB_LIMIT="aws.dynamodb.limit",TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET="aws.dynamodb.attributes_to_get",TMP_AWS_DYNAMODB_INDEX_NAME="aws.dynamodb.index_name",TMP_AWS_DYNAMODB_SELECT="aws.dynamodb.select",TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES="aws.dynamodb.global_secondary_indexes",TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES="aws.dynamodb.local_secondary_indexes",TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE="aws.dynamodb.exclusive_start_table",TMP_AWS_DYNAMODB_TABLE_COUNT="aws.dynamodb.table_count",TMP_AWS_DYNAMODB_SCAN_FORWARD="aws.dynamodb.scan_forward",TMP_AWS_DYNAMODB_SEGMENT="aws.dynamodb.segment",TMP_AWS_DYNAMODB_TOTAL_SEGMENTS="aws.dynamodb.total_segments",TMP_AWS_DYNAMODB_COUNT="aws.dynamodb.count",TMP_AWS_DYNAMODB_SCANNED_COUNT="aws.dynamodb.scanned_count",TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS="aws.dynamodb.attribute_definitions",TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES="aws.dynamodb.global_secondary_index_updates",TMP_MESSAGING_SYSTEM="messaging.system",TMP_MESSAGING_DESTINATION="messaging.destination",TMP_MESSAGING_DESTINATION_KIND="messaging.destination_kind",TMP_MESSAGING_TEMP_DESTINATION="messaging.temp_destination",TMP_MESSAGING_PROTOCOL="messaging.protocol",TMP_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version",TMP_MESSAGING_URL="messaging.url",TMP_MESSAGING_MESSAGE_ID="messaging.message_id",TMP_MESSAGING_CONVERSATION_ID="messaging.conversation_id",TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES="messaging.message_payload_size_bytes",TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES="messaging.message_payload_compressed_size_bytes",TMP_MESSAGING_OPERATION="messaging.operation",TMP_MESSAGING_CONSUMER_ID="messaging.consumer_id",TMP_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key",TMP_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message_key",TMP_MESSAGING_KAFKA_CONSUMER_GROUP="messaging.kafka.consumer_group",TMP_MESSAGING_KAFKA_CLIENT_ID="messaging.kafka.client_id",TMP_MESSAGING_KAFKA_PARTITION="messaging.kafka.partition",TMP_MESSAGING_KAFKA_TOMBSTONE="messaging.kafka.tombstone",TMP_RPC_SYSTEM="rpc.system",TMP_RPC_SERVICE="rpc.service",TMP_RPC_METHOD="rpc.method",TMP_RPC_GRPC_STATUS_CODE="rpc.grpc.status_code",TMP_RPC_JSONRPC_VERSION="rpc.jsonrpc.version",TMP_RPC_JSONRPC_REQUEST_ID="rpc.jsonrpc.request_id",TMP_RPC_JSONRPC_ERROR_CODE="rpc.jsonrpc.error_code",TMP_RPC_JSONRPC_ERROR_MESSAGE="rpc.jsonrpc.error_message",TMP_MESSAGE_TYPE="message.type",TMP_MESSAGE_ID="message.id",TMP_MESSAGE_COMPRESSED_SIZE="message.compressed_size",TMP_MESSAGE_UNCOMPRESSED_SIZE="message.uncompressed_size",SEMATTRS_AWS_LAMBDA_INVOKED_ARN=null,SEMATTRS_DB_SYSTEM=null,SEMATTRS_DB_CONNECTION_STRING=null,SEMATTRS_DB_USER=null,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME=null,SEMATTRS_DB_NAME=null,SEMATTRS_DB_STATEMENT=null,SEMATTRS_DB_OPERATION=null,SEMATTRS_DB_MSSQL_INSTANCE_NAME=null,SEMATTRS_DB_CASSANDRA_KEYSPACE=null,SEMATTRS_DB_CASSANDRA_PAGE_SIZE=null,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL=null,SEMATTRS_DB_CASSANDRA_TABLE=null,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE=null,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT=null,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID=null,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC=null,SEMATTRS_DB_HBASE_NAMESPACE=null,SEMATTRS_DB_REDIS_DATABASE_INDEX=null,SEMATTRS_DB_MONGODB_COLLECTION=null,SEMATTRS_DB_SQL_TABLE=null,SEMATTRS_EXCEPTION_TYPE=TMP_EXCEPTION_TYPE,SEMATTRS_EXCEPTION_MESSAGE=TMP_EXCEPTION_MESSAGE,SEMATTRS_EXCEPTION_STACKTRACE=TMP_EXCEPTION_STACKTRACE,SEMATTRS_EXCEPTION_ESCAPED=null,SEMATTRS_FAAS_TRIGGER=null,SEMATTRS_FAAS_EXECUTION=null,SEMATTRS_FAAS_DOCUMENT_COLLECTION=null,SEMATTRS_FAAS_DOCUMENT_OPERATION=null,SEMATTRS_FAAS_DOCUMENT_TIME=null,SEMATTRS_FAAS_DOCUMENT_NAME=null,SEMATTRS_FAAS_TIME=null,SEMATTRS_FAAS_CRON=null,SEMATTRS_FAAS_COLDSTART=null,SEMATTRS_FAAS_INVOKED_NAME=null,SEMATTRS_FAAS_INVOKED_PROVIDER=null,SEMATTRS_FAAS_INVOKED_REGION=null,SEMATTRS_NET_TRANSPORT=null,SEMATTRS_NET_PEER_IP=null,SEMATTRS_NET_PEER_PORT=null,SEMATTRS_NET_PEER_NAME=null,SEMATTRS_NET_HOST_IP=null,SEMATTRS_NET_HOST_PORT=null,SEMATTRS_NET_HOST_NAME=null,SEMATTRS_NET_HOST_CONNECTION_TYPE=null,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE=null,SEMATTRS_NET_HOST_CARRIER_NAME=null,SEMATTRS_NET_HOST_CARRIER_MCC=null,SEMATTRS_NET_HOST_CARRIER_MNC=null,SEMATTRS_NET_HOST_CARRIER_ICC=null,SEMATTRS_PEER_SERVICE=null,SEMATTRS_ENDUSER_ID=null,SEMATTRS_ENDUSER_ROLE=null,SEMATTRS_ENDUSER_SCOPE=null,SEMATTRS_THREAD_ID=null,SEMATTRS_THREAD_NAME=null,SEMATTRS_CODE_FUNCTION=null,SEMATTRS_CODE_NAMESPACE=null,SEMATTRS_CODE_FILEPATH=null,SEMATTRS_CODE_LINENO=null,SEMATTRS_HTTP_METHOD=null,SEMATTRS_HTTP_URL=null,SEMATTRS_HTTP_TARGET=null,SEMATTRS_HTTP_HOST=null,SEMATTRS_HTTP_SCHEME=null,SEMATTRS_HTTP_STATUS_CODE=null,SEMATTRS_HTTP_FLAVOR=null,SEMATTRS_HTTP_USER_AGENT=null,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH=null,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED=null,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH=TMP_HTTP_RESPONSE_CONTENT_LENGTH,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED=TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,SEMATTRS_HTTP_SERVER_NAME=null,SEMATTRS_HTTP_ROUTE=null,SEMATTRS_HTTP_CLIENT_IP=null,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES=null,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY=null,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS=null,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY=null,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY=null,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ=null,SEMATTRS_AWS_DYNAMODB_PROJECTION=null,SEMATTRS_AWS_DYNAMODB_LIMIT=null,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET=null,SEMATTRS_AWS_DYNAMODB_INDEX_NAME=null,SEMATTRS_AWS_DYNAMODB_SELECT=null,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES=null,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES=null,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE=null,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT=null,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD=null,SEMATTRS_AWS_DYNAMODB_SEGMENT=null,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS=null,SEMATTRS_AWS_DYNAMODB_COUNT=null,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT=null,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS=null,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES=null,SEMATTRS_MESSAGING_SYSTEM=null,SEMATTRS_MESSAGING_DESTINATION=null,SEMATTRS_MESSAGING_DESTINATION_KIND=null,SEMATTRS_MESSAGING_TEMP_DESTINATION=null,SEMATTRS_MESSAGING_PROTOCOL=null,SEMATTRS_MESSAGING_PROTOCOL_VERSION=null,SEMATTRS_MESSAGING_URL=null,SEMATTRS_MESSAGING_MESSAGE_ID=null,SEMATTRS_MESSAGING_CONVERSATION_ID=null,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES=null,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES=null,SEMATTRS_MESSAGING_OPERATION=null,SEMATTRS_MESSAGING_CONSUMER_ID=null,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY=null,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY=null,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP=null,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID=null,SEMATTRS_MESSAGING_KAFKA_PARTITION=null,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE=null,SEMATTRS_RPC_SYSTEM=null,SEMATTRS_RPC_SERVICE=null,SEMATTRS_RPC_METHOD=null,SEMATTRS_RPC_GRPC_STATUS_CODE=null,SEMATTRS_RPC_JSONRPC_VERSION=null,SEMATTRS_RPC_JSONRPC_REQUEST_ID=null,SEMATTRS_RPC_JSONRPC_ERROR_CODE=null,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE=null,SEMATTRS_MESSAGE_TYPE=null,SEMATTRS_MESSAGE_ID=null,SEMATTRS_MESSAGE_COMPRESSED_SIZE=null,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE=null,SemanticAttributes=createConstMap([TMP_AWS_LAMBDA_INVOKED_ARN,TMP_DB_SYSTEM,TMP_DB_CONNECTION_STRING,TMP_DB_USER,TMP_DB_JDBC_DRIVER_CLASSNAME,TMP_DB_NAME,TMP_DB_STATEMENT,TMP_DB_OPERATION,TMP_DB_MSSQL_INSTANCE_NAME,TMP_DB_CASSANDRA_KEYSPACE,TMP_DB_CASSANDRA_PAGE_SIZE,TMP_DB_CASSANDRA_CONSISTENCY_LEVEL,TMP_DB_CASSANDRA_TABLE,TMP_DB_CASSANDRA_IDEMPOTENCE,TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT,TMP_DB_CASSANDRA_COORDINATOR_ID,TMP_DB_CASSANDRA_COORDINATOR_DC,TMP_DB_HBASE_NAMESPACE,TMP_DB_REDIS_DATABASE_INDEX,TMP_DB_MONGODB_COLLECTION,TMP_DB_SQL_TABLE,TMP_EXCEPTION_TYPE,TMP_EXCEPTION_MESSAGE,TMP_EXCEPTION_STACKTRACE,TMP_EXCEPTION_ESCAPED,TMP_FAAS_TRIGGER,TMP_FAAS_EXECUTION,TMP_FAAS_DOCUMENT_COLLECTION,TMP_FAAS_DOCUMENT_OPERATION,TMP_FAAS_DOCUMENT_TIME,TMP_FAAS_DOCUMENT_NAME,TMP_FAAS_TIME,TMP_FAAS_CRON,TMP_FAAS_COLDSTART,TMP_FAAS_INVOKED_NAME,TMP_FAAS_INVOKED_PROVIDER,TMP_FAAS_INVOKED_REGION,TMP_NET_TRANSPORT,TMP_NET_PEER_IP,TMP_NET_PEER_PORT,TMP_NET_PEER_NAME,TMP_NET_HOST_IP,TMP_NET_HOST_PORT,TMP_NET_HOST_NAME,TMP_NET_HOST_CONNECTION_TYPE,TMP_NET_HOST_CONNECTION_SUBTYPE,TMP_NET_HOST_CARRIER_NAME,TMP_NET_HOST_CARRIER_MCC,TMP_NET_HOST_CARRIER_MNC,TMP_NET_HOST_CARRIER_ICC,TMP_PEER_SERVICE,TMP_ENDUSER_ID,TMP_ENDUSER_ROLE,TMP_ENDUSER_SCOPE,TMP_THREAD_ID,TMP_THREAD_NAME,TMP_CODE_FUNCTION,TMP_CODE_NAMESPACE,TMP_CODE_FILEPATH,TMP_CODE_LINENO,TMP_HTTP_METHOD,TMP_HTTP_URL,TMP_HTTP_TARGET,TMP_HTTP_HOST,TMP_HTTP_SCHEME,TMP_HTTP_STATUS_CODE,TMP_HTTP_FLAVOR,TMP_HTTP_USER_AGENT,TMP_HTTP_REQUEST_CONTENT_LENGTH,TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED,TMP_HTTP_RESPONSE_CONTENT_LENGTH,TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,TMP_HTTP_SERVER_NAME,TMP_HTTP_ROUTE,TMP_HTTP_CLIENT_IP,TMP_AWS_DYNAMODB_TABLE_NAMES,TMP_AWS_DYNAMODB_CONSUMED_CAPACITY,TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS,TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY,TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY,TMP_AWS_DYNAMODB_CONSISTENT_READ,TMP_AWS_DYNAMODB_PROJECTION,TMP_AWS_DYNAMODB_LIMIT,TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET,TMP_AWS_DYNAMODB_INDEX_NAME,TMP_AWS_DYNAMODB_SELECT,TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES,TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES,TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE,TMP_AWS_DYNAMODB_TABLE_COUNT,TMP_AWS_DYNAMODB_SCAN_FORWARD,TMP_AWS_DYNAMODB_SEGMENT,TMP_AWS_DYNAMODB_TOTAL_SEGMENTS,TMP_AWS_DYNAMODB_COUNT,TMP_AWS_DYNAMODB_SCANNED_COUNT,TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS,TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES,TMP_MESSAGING_SYSTEM,TMP_MESSAGING_DESTINATION,TMP_MESSAGING_DESTINATION_KIND,TMP_MESSAGING_TEMP_DESTINATION,TMP_MESSAGING_PROTOCOL,TMP_MESSAGING_PROTOCOL_VERSION,TMP_MESSAGING_URL,TMP_MESSAGING_MESSAGE_ID,TMP_MESSAGING_CONVERSATION_ID,TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES,TMP_MESSAGING_OPERATION,TMP_MESSAGING_CONSUMER_ID,TMP_MESSAGING_RABBITMQ_ROUTING_KEY,TMP_MESSAGING_KAFKA_MESSAGE_KEY,TMP_MESSAGING_KAFKA_CONSUMER_GROUP,TMP_MESSAGING_KAFKA_CLIENT_ID,TMP_MESSAGING_KAFKA_PARTITION,TMP_MESSAGING_KAFKA_TOMBSTONE,TMP_RPC_SYSTEM,TMP_RPC_SERVICE,TMP_RPC_METHOD,TMP_RPC_GRPC_STATUS_CODE,TMP_RPC_JSONRPC_VERSION,TMP_RPC_JSONRPC_REQUEST_ID,TMP_RPC_JSONRPC_ERROR_CODE,TMP_RPC_JSONRPC_ERROR_MESSAGE,TMP_MESSAGE_TYPE,TMP_MESSAGE_ID,TMP_MESSAGE_COMPRESSED_SIZE,TMP_MESSAGE_UNCOMPRESSED_SIZE]),TMP_DBSYSTEMVALUES_OTHER_SQL="other_sql",TMP_DBSYSTEMVALUES_MSSQL="mssql",TMP_DBSYSTEMVALUES_MYSQL="mysql",TMP_DBSYSTEMVALUES_ORACLE="oracle",TMP_DBSYSTEMVALUES_DB2="db2",TMP_DBSYSTEMVALUES_POSTGRESQL="postgresql",TMP_DBSYSTEMVALUES_REDSHIFT="redshift",TMP_DBSYSTEMVALUES_HIVE="hive",TMP_DBSYSTEMVALUES_CLOUDSCAPE="cloudscape",TMP_DBSYSTEMVALUES_HSQLDB="hsqldb",TMP_DBSYSTEMVALUES_PROGRESS="progress",TMP_DBSYSTEMVALUES_MAXDB="maxdb",TMP_DBSYSTEMVALUES_HANADB="hanadb",TMP_DBSYSTEMVALUES_INGRES="ingres",TMP_DBSYSTEMVALUES_FIRSTSQL="firstsql",TMP_DBSYSTEMVALUES_EDB="edb",TMP_DBSYSTEMVALUES_CACHE="cache",TMP_DBSYSTEMVALUES_ADABAS="adabas",TMP_DBSYSTEMVALUES_FIREBIRD="firebird",TMP_DBSYSTEMVALUES_DERBY="derby",TMP_DBSYSTEMVALUES_FILEMAKER="filemaker",TMP_DBSYSTEMVALUES_INFORMIX="informix",TMP_DBSYSTEMVALUES_INSTANTDB="instantdb",TMP_DBSYSTEMVALUES_INTERBASE="interbase",TMP_DBSYSTEMVALUES_MARIADB="mariadb",TMP_DBSYSTEMVALUES_NETEZZA="netezza",TMP_DBSYSTEMVALUES_PERVASIVE="pervasive",TMP_DBSYSTEMVALUES_POINTBASE="pointbase",TMP_DBSYSTEMVALUES_SQLITE="sqlite",TMP_DBSYSTEMVALUES_SYBASE="sybase",TMP_DBSYSTEMVALUES_TERADATA="teradata",TMP_DBSYSTEMVALUES_VERTICA="vertica",TMP_DBSYSTEMVALUES_H2="h2",TMP_DBSYSTEMVALUES_COLDFUSION="coldfusion",TMP_DBSYSTEMVALUES_CASSANDRA="cassandra",TMP_DBSYSTEMVALUES_HBASE="hbase",TMP_DBSYSTEMVALUES_MONGODB="mongodb",TMP_DBSYSTEMVALUES_REDIS="redis",TMP_DBSYSTEMVALUES_COUCHBASE="couchbase",TMP_DBSYSTEMVALUES_COUCHDB="couchdb",TMP_DBSYSTEMVALUES_COSMOSDB="cosmosdb",TMP_DBSYSTEMVALUES_DYNAMODB="dynamodb",TMP_DBSYSTEMVALUES_NEO4J="neo4j",TMP_DBSYSTEMVALUES_GEODE="geode",TMP_DBSYSTEMVALUES_ELASTICSEARCH="elasticsearch",TMP_DBSYSTEMVALUES_MEMCACHED="memcached",TMP_DBSYSTEMVALUES_COCKROACHDB="cockroachdb",DBSYSTEMVALUES_OTHER_SQL=null,DBSYSTEMVALUES_MSSQL=null,DBSYSTEMVALUES_MYSQL=null,DBSYSTEMVALUES_ORACLE=null,DBSYSTEMVALUES_DB2=null,DBSYSTEMVALUES_POSTGRESQL=null,DBSYSTEMVALUES_REDSHIFT=null,DBSYSTEMVALUES_HIVE=null,DBSYSTEMVALUES_CLOUDSCAPE=null,DBSYSTEMVALUES_HSQLDB=null,DBSYSTEMVALUES_PROGRESS=null,DBSYSTEMVALUES_MAXDB=null,DBSYSTEMVALUES_HANADB=null,DBSYSTEMVALUES_INGRES=null,DBSYSTEMVALUES_FIRSTSQL=null,DBSYSTEMVALUES_EDB=null,DBSYSTEMVALUES_CACHE=null,DBSYSTEMVALUES_ADABAS=null,DBSYSTEMVALUES_FIREBIRD=null,DBSYSTEMVALUES_DERBY=null,DBSYSTEMVALUES_FILEMAKER=null,DBSYSTEMVALUES_INFORMIX=null,DBSYSTEMVALUES_INSTANTDB=null,DBSYSTEMVALUES_INTERBASE=null,DBSYSTEMVALUES_MARIADB=null,DBSYSTEMVALUES_NETEZZA=null,DBSYSTEMVALUES_PERVASIVE=null,DBSYSTEMVALUES_POINTBASE=null,DBSYSTEMVALUES_SQLITE=null,DBSYSTEMVALUES_SYBASE=null,DBSYSTEMVALUES_TERADATA=null,DBSYSTEMVALUES_VERTICA=null,DBSYSTEMVALUES_H2=null,DBSYSTEMVALUES_COLDFUSION=null,DBSYSTEMVALUES_CASSANDRA=null,DBSYSTEMVALUES_HBASE=null,DBSYSTEMVALUES_MONGODB=null,DBSYSTEMVALUES_REDIS=null,DBSYSTEMVALUES_COUCHBASE=null,DBSYSTEMVALUES_COUCHDB=null,DBSYSTEMVALUES_COSMOSDB=null,DBSYSTEMVALUES_DYNAMODB=null,DBSYSTEMVALUES_NEO4J=null,DBSYSTEMVALUES_GEODE=null,DBSYSTEMVALUES_ELASTICSEARCH=null,DBSYSTEMVALUES_MEMCACHED=null,DBSYSTEMVALUES_COCKROACHDB=null,DbSystemValues=createConstMap([TMP_DBSYSTEMVALUES_OTHER_SQL,TMP_DBSYSTEMVALUES_MSSQL,TMP_DBSYSTEMVALUES_MYSQL,TMP_DBSYSTEMVALUES_ORACLE,TMP_DBSYSTEMVALUES_DB2,TMP_DBSYSTEMVALUES_POSTGRESQL,TMP_DBSYSTEMVALUES_REDSHIFT,TMP_DBSYSTEMVALUES_HIVE,TMP_DBSYSTEMVALUES_CLOUDSCAPE,TMP_DBSYSTEMVALUES_HSQLDB,TMP_DBSYSTEMVALUES_PROGRESS,TMP_DBSYSTEMVALUES_MAXDB,TMP_DBSYSTEMVALUES_HANADB,TMP_DBSYSTEMVALUES_INGRES,TMP_DBSYSTEMVALUES_FIRSTSQL,TMP_DBSYSTEMVALUES_EDB,TMP_DBSYSTEMVALUES_CACHE,TMP_DBSYSTEMVALUES_ADABAS,TMP_DBSYSTEMVALUES_FIREBIRD,TMP_DBSYSTEMVALUES_DERBY,TMP_DBSYSTEMVALUES_FILEMAKER,TMP_DBSYSTEMVALUES_INFORMIX,TMP_DBSYSTEMVALUES_INSTANTDB,TMP_DBSYSTEMVALUES_INTERBASE,TMP_DBSYSTEMVALUES_MARIADB,TMP_DBSYSTEMVALUES_NETEZZA,TMP_DBSYSTEMVALUES_PERVASIVE,TMP_DBSYSTEMVALUES_POINTBASE,TMP_DBSYSTEMVALUES_SQLITE,TMP_DBSYSTEMVALUES_SYBASE,TMP_DBSYSTEMVALUES_TERADATA,TMP_DBSYSTEMVALUES_VERTICA,TMP_DBSYSTEMVALUES_H2,TMP_DBSYSTEMVALUES_COLDFUSION,TMP_DBSYSTEMVALUES_CASSANDRA,TMP_DBSYSTEMVALUES_HBASE,TMP_DBSYSTEMVALUES_MONGODB,TMP_DBSYSTEMVALUES_REDIS,TMP_DBSYSTEMVALUES_COUCHBASE,TMP_DBSYSTEMVALUES_COUCHDB,TMP_DBSYSTEMVALUES_COSMOSDB,TMP_DBSYSTEMVALUES_DYNAMODB,TMP_DBSYSTEMVALUES_NEO4J,TMP_DBSYSTEMVALUES_GEODE,TMP_DBSYSTEMVALUES_ELASTICSEARCH,TMP_DBSYSTEMVALUES_MEMCACHED,TMP_DBSYSTEMVALUES_COCKROACHDB]),TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL="all",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM="each_quorum",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM="quorum",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM="local_quorum",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE="one",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO="two",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE="three",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE="local_one",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY="any",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL="serial",TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL="local_serial",DBCASSANDRACONSISTENCYLEVELVALUES_ALL=null,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM=null,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM=null,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM=null,DBCASSANDRACONSISTENCYLEVELVALUES_ONE=null,DBCASSANDRACONSISTENCYLEVELVALUES_TWO=null,DBCASSANDRACONSISTENCYLEVELVALUES_THREE=null,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE=null,DBCASSANDRACONSISTENCYLEVELVALUES_ANY=null,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL=null,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL=null,DbCassandraConsistencyLevelValues=createConstMap([TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL,TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL]),TMP_FAASTRIGGERVALUES_DATASOURCE="datasource",TMP_FAASTRIGGERVALUES_HTTP="http",TMP_FAASTRIGGERVALUES_PUBSUB="pubsub",TMP_FAASTRIGGERVALUES_TIMER="timer",TMP_FAASTRIGGERVALUES_OTHER="other",FAASTRIGGERVALUES_DATASOURCE=null,FAASTRIGGERVALUES_HTTP=null,FAASTRIGGERVALUES_PUBSUB=null,FAASTRIGGERVALUES_TIMER=null,FAASTRIGGERVALUES_OTHER=null,FaasTriggerValues=createConstMap([TMP_FAASTRIGGERVALUES_DATASOURCE,TMP_FAASTRIGGERVALUES_HTTP,TMP_FAASTRIGGERVALUES_PUBSUB,TMP_FAASTRIGGERVALUES_TIMER,TMP_FAASTRIGGERVALUES_OTHER]),TMP_FAASDOCUMENTOPERATIONVALUES_INSERT="insert",TMP_FAASDOCUMENTOPERATIONVALUES_EDIT="edit",TMP_FAASDOCUMENTOPERATIONVALUES_DELETE="delete",FAASDOCUMENTOPERATIONVALUES_INSERT=null,FAASDOCUMENTOPERATIONVALUES_EDIT=null,FAASDOCUMENTOPERATIONVALUES_DELETE=null,FaasDocumentOperationValues=createConstMap([TMP_FAASDOCUMENTOPERATIONVALUES_INSERT,TMP_FAASDOCUMENTOPERATIONVALUES_EDIT,TMP_FAASDOCUMENTOPERATIONVALUES_DELETE]),TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD="alibaba_cloud",TMP_FAASINVOKEDPROVIDERVALUES_AWS="aws",TMP_FAASINVOKEDPROVIDERVALUES_AZURE="azure",TMP_FAASINVOKEDPROVIDERVALUES_GCP="gcp",FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD=null,FAASINVOKEDPROVIDERVALUES_AWS=null,FAASINVOKEDPROVIDERVALUES_AZURE=null,FAASINVOKEDPROVIDERVALUES_GCP=null,FaasInvokedProviderValues=createConstMap([TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD,TMP_FAASINVOKEDPROVIDERVALUES_AWS,TMP_FAASINVOKEDPROVIDERVALUES_AZURE,TMP_FAASINVOKEDPROVIDERVALUES_GCP]),TMP_NETTRANSPORTVALUES_IP_TCP="ip_tcp",TMP_NETTRANSPORTVALUES_IP_UDP="ip_udp",TMP_NETTRANSPORTVALUES_IP="ip",TMP_NETTRANSPORTVALUES_UNIX="unix",TMP_NETTRANSPORTVALUES_PIPE="pipe",TMP_NETTRANSPORTVALUES_INPROC="inproc",TMP_NETTRANSPORTVALUES_OTHER="other",NETTRANSPORTVALUES_IP_TCP=null,NETTRANSPORTVALUES_IP_UDP=null,NETTRANSPORTVALUES_IP=null,NETTRANSPORTVALUES_UNIX=null,NETTRANSPORTVALUES_PIPE=null,NETTRANSPORTVALUES_INPROC=null,NETTRANSPORTVALUES_OTHER=null,NetTransportValues=createConstMap([TMP_NETTRANSPORTVALUES_IP_TCP,TMP_NETTRANSPORTVALUES_IP_UDP,TMP_NETTRANSPORTVALUES_IP,TMP_NETTRANSPORTVALUES_UNIX,TMP_NETTRANSPORTVALUES_PIPE,TMP_NETTRANSPORTVALUES_INPROC,TMP_NETTRANSPORTVALUES_OTHER]),TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI="wifi",TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED="wired",TMP_NETHOSTCONNECTIONTYPEVALUES_CELL="cell",TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE="unavailable",TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN="unknown",NETHOSTCONNECTIONTYPEVALUES_WIFI=null,NETHOSTCONNECTIONTYPEVALUES_WIRED=null,NETHOSTCONNECTIONTYPEVALUES_CELL=null,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE=null,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN=null,NetHostConnectionTypeValues=createConstMap([TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI,TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED,TMP_NETHOSTCONNECTIONTYPEVALUES_CELL,TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE,TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN]),TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS="gprs",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE="edge",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS="umts",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA="cdma",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0="evdo_0",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A="evdo_a",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT="cdma2000_1xrtt",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA="hsdpa",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA="hsupa",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA="hspa",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN="iden",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B="evdo_b",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE="lte",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD="ehrpd",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP="hspap",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM="gsm",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA="td_scdma",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN="iwlan",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR="nr",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA="nrnsa",TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA="lte_ca",NETHOSTCONNECTIONSUBTYPEVALUES_GPRS=null,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE=null,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS=null,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA=null,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0=null,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A=null,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT=null,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA=null,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA=null,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA=null,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN=null,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B=null,NETHOSTCONNECTIONSUBTYPEVALUES_LTE=null,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD=null,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP=null,NETHOSTCONNECTIONSUBTYPEVALUES_GSM=null,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA=null,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN=null,NETHOSTCONNECTIONSUBTYPEVALUES_NR=null,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA=null,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA=null,NetHostConnectionSubtypeValues=createConstMap([TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA,TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA]),TMP_HTTPFLAVORVALUES_HTTP_1_0="1.0",TMP_HTTPFLAVORVALUES_HTTP_1_1="1.1",TMP_HTTPFLAVORVALUES_HTTP_2_0="2.0",TMP_HTTPFLAVORVALUES_SPDY="SPDY",TMP_HTTPFLAVORVALUES_QUIC="QUIC",HTTPFLAVORVALUES_HTTP_1_0=null,HTTPFLAVORVALUES_HTTP_1_1=null,HTTPFLAVORVALUES_HTTP_2_0=null,HTTPFLAVORVALUES_SPDY=null,HTTPFLAVORVALUES_QUIC=null,HttpFlavorValues={HTTP_1_0:TMP_HTTPFLAVORVALUES_HTTP_1_0,HTTP_1_1:TMP_HTTPFLAVORVALUES_HTTP_1_1,HTTP_2_0:TMP_HTTPFLAVORVALUES_HTTP_2_0,SPDY:TMP_HTTPFLAVORVALUES_SPDY,QUIC:TMP_HTTPFLAVORVALUES_QUIC},TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE="queue",TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC="topic",MESSAGINGDESTINATIONKINDVALUES_QUEUE=null,MESSAGINGDESTINATIONKINDVALUES_TOPIC=null,MessagingDestinationKindValues=createConstMap([TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE,TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC]),TMP_MESSAGINGOPERATIONVALUES_RECEIVE="receive",TMP_MESSAGINGOPERATIONVALUES_PROCESS="process",MESSAGINGOPERATIONVALUES_RECEIVE=null,MESSAGINGOPERATIONVALUES_PROCESS=null,MessagingOperationValues=createConstMap([TMP_MESSAGINGOPERATIONVALUES_RECEIVE,TMP_MESSAGINGOPERATIONVALUES_PROCESS]),TMP_RPCGRPCSTATUSCODEVALUES_OK=0,TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED=1,TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN=2,TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=3,TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=4,TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND=5,TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=6,TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=7,TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=8,TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=9,TMP_RPCGRPCSTATUSCODEVALUES_ABORTED=10,TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=11,TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=12,TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL=13,TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=14,TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS=15,TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=16,RPCGRPCSTATUSCODEVALUES_OK=null,RPCGRPCSTATUSCODEVALUES_CANCELLED=null,RPCGRPCSTATUSCODEVALUES_UNKNOWN=null,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT=null,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED=null,RPCGRPCSTATUSCODEVALUES_NOT_FOUND=null,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS=null,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED=null,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED=null,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION=null,RPCGRPCSTATUSCODEVALUES_ABORTED=null,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE=null,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED=null,RPCGRPCSTATUSCODEVALUES_INTERNAL=null,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE=null,RPCGRPCSTATUSCODEVALUES_DATA_LOSS=null,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED=null,RpcGrpcStatusCodeValues={OK:TMP_RPCGRPCSTATUSCODEVALUES_OK,CANCELLED:TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED,UNKNOWN:TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN,INVALID_ARGUMENT:TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT,DEADLINE_EXCEEDED:TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED,NOT_FOUND:TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND,ALREADY_EXISTS:TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS,PERMISSION_DENIED:TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED,RESOURCE_EXHAUSTED:TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED,FAILED_PRECONDITION:TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION,ABORTED:TMP_RPCGRPCSTATUSCODEVALUES_ABORTED,OUT_OF_RANGE:TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE,UNIMPLEMENTED:TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED,INTERNAL:TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL,UNAVAILABLE:TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE,DATA_LOSS:TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS,UNAUTHENTICATED:TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED},TMP_MESSAGETYPEVALUES_SENT="SENT",TMP_MESSAGETYPEVALUES_RECEIVED="RECEIVED",MESSAGETYPEVALUES_SENT=null,MESSAGETYPEVALUES_RECEIVED=null,MessageTypeValues=createConstMap([TMP_MESSAGETYPEVALUES_SENT,TMP_MESSAGETYPEVALUES_RECEIVED]),ExceptionEventName="exception",Span_values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},Span_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},Span_spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o=this._spanLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,e)?(this._droppedAttributesCount++,this):(this.attributes[e]=this._truncateToSize(t),this):(diag.warn("Invalid attribute value set for key: "+e),this)},e.prototype.setAttributes=function(e){var t,r;try{for(var n=Span_values(Object.entries(e)),o=n.next();!o.done;o=n.next()){var i=Span_read(o.value,2),a=i[0],s=i[1];this.setAttribute(a,s)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}return this},e.prototype.addEvent=function(e,t,r){if(this._isSpanEnded())return this;if(0===this._spanLimits.eventCountLimit)return diag.warn("No events allowed."),this._droppedEventsCount++,this;this.events.length>=this._spanLimits.eventCountLimit&&(0===this._droppedEventsCount&&diag.debug("Dropping extra events."),this.events.shift(),this._droppedEventsCount++),time_isTimeInput(t)&&(time_isTimeInput(r)||(r=t),t=void 0);var n=sanitizeAttributes(t);return this.events.push({name:e,attributes:n,time:this._getTime(r),droppedAttributesCount:0}),this},e.prototype.addLink=function(e){return this.links.push(e),this},e.prototype.addLinks=function(e){var t;return(t=this.links).push.apply(t,Span_spreadArray([],Span_read(e),!1)),this},e.prototype.setStatus=function(e){return this._isSpanEnded()||(this.status=e),this},e.prototype.updateName=function(e){return this._isSpanEnded()||(this.name=e),this},e.prototype.end=function(e){this._isSpanEnded()?diag.error(this.name+" "+this._spanContext.traceId+"-"+this._spanContext.spanId+" - You can only call end() on a span once."):(this._ended=!0,this.endTime=this._getTime(e),this._duration=time_hrTimeDuration(this.startTime,this.endTime),this._duration[0]<0&&(diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.",this.startTime,this.endTime),this.endTime=this.startTime.slice(),this._duration=[0,0]),this._droppedEventsCount>0&&diag.warn("Dropped "+this._droppedEventsCount+" events because eventCountLimit reached"),this._spanProcessor.onEnd(this))},e.prototype._getTime=function(e){if("number"==typeof e&&e=1?1:e<=0?0:e},e.prototype._accumulate=function(e){for(var t=0,r=0;r>>0}return t},e}(),env=getEnv(),FALLBACK_OTEL_TRACES_SAMPLER=TracesSamplerValues.AlwaysOn,DEFAULT_RATIO=1;function loadDefaultConfig(){var e=getEnv();return{sampler:buildSamplerFromEnv(env),forceFlushTimeoutMillis:3e4,generalLimits:{attributeValueLengthLimit:e.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT,attributeCountLimit:e.OTEL_ATTRIBUTE_COUNT_LIMIT},spanLimits:{attributeValueLengthLimit:e.OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,attributeCountLimit:e.OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,linkCountLimit:e.OTEL_SPAN_LINK_COUNT_LIMIT,eventCountLimit:e.OTEL_SPAN_EVENT_COUNT_LIMIT,attributePerEventCountLimit:e.OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,attributePerLinkCountLimit:e.OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT}}}function buildSamplerFromEnv(e){switch(void 0===e&&(e=getEnv()),e.OTEL_TRACES_SAMPLER){case TracesSamplerValues.AlwaysOn:return new AlwaysOnSampler;case TracesSamplerValues.AlwaysOff:return new AlwaysOffSampler;case TracesSamplerValues.ParentBasedAlwaysOn:return new ParentBasedSampler({root:new AlwaysOnSampler});case TracesSamplerValues.ParentBasedAlwaysOff:return new ParentBasedSampler({root:new AlwaysOffSampler});case TracesSamplerValues.TraceIdRatio:return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(e));case TracesSamplerValues.ParentBasedTraceIdRatio:return new ParentBasedSampler({root:new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(e))});default:return diag.error('OTEL_TRACES_SAMPLER value "'+e.OTEL_TRACES_SAMPLER+" invalid, defaulting to "+FALLBACK_OTEL_TRACES_SAMPLER+'".'),new AlwaysOnSampler}}function getSamplerProbabilityFromEnv(e){if(void 0===e.OTEL_TRACES_SAMPLER_ARG||""===e.OTEL_TRACES_SAMPLER_ARG)return diag.error("OTEL_TRACES_SAMPLER_ARG is blank, defaulting to "+DEFAULT_RATIO+"."),DEFAULT_RATIO;var t=Number(e.OTEL_TRACES_SAMPLER_ARG);return isNaN(t)?(diag.error("OTEL_TRACES_SAMPLER_ARG="+e.OTEL_TRACES_SAMPLER_ARG+" was given, but it is invalid, defaulting to "+DEFAULT_RATIO+"."),DEFAULT_RATIO):t<0||t>1?(diag.error("OTEL_TRACES_SAMPLER_ARG="+e.OTEL_TRACES_SAMPLER_ARG+" was given, but it is out of range ([0..1]), defaulting to "+DEFAULT_RATIO+"."),DEFAULT_RATIO):t}function mergeConfig(e){var t={sampler:buildSamplerFromEnv()},r=loadDefaultConfig(),n=Object.assign({},r,t,e);return n.generalLimits=Object.assign({},r.generalLimits,e.generalLimits||{}),n.spanLimits=Object.assign({},r.spanLimits,e.spanLimits||{}),n}function reconfigureLimits(e){var t,r,n,o,i,a,s,u,c,_,l,S,E=Object.assign({},e.spanLimits),T=getEnvWithoutDefaults();return E.attributeCountLimit=null!==(a=null!==(i=null!==(o=null!==(r=null===(t=e.spanLimits)||void 0===t?void 0:t.attributeCountLimit)&&void 0!==r?r:null===(n=e.generalLimits)||void 0===n?void 0:n.attributeCountLimit)&&void 0!==o?o:T.OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT)&&void 0!==i?i:T.OTEL_ATTRIBUTE_COUNT_LIMIT)&&void 0!==a?a:DEFAULT_ATTRIBUTE_COUNT_LIMIT,E.attributeValueLengthLimit=null!==(S=null!==(l=null!==(_=null!==(u=null===(s=e.spanLimits)||void 0===s?void 0:s.attributeValueLengthLimit)&&void 0!==u?u:null===(c=e.generalLimits)||void 0===c?void 0:c.attributeValueLengthLimit)&&void 0!==_?_:T.OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT)&&void 0!==l?l:T.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT)&&void 0!==S?S:DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{spanLimits:E})}var SPAN_ID_BYTES=8,TRACE_ID_BYTES=16,RandomIdGenerator=function(){this.generateTraceId=getIdGenerator(TRACE_ID_BYTES),this.generateSpanId=getIdGenerator(SPAN_ID_BYTES)},SHARED_CHAR_CODES_ARRAY=Array(32);function getIdGenerator(e){return function(){for(var t=0;t<2*e;t++)SHARED_CHAR_CODES_ARRAY[t]=Math.floor(16*Math.random())+48,SHARED_CHAR_CODES_ARRAY[t]>=58&&(SHARED_CHAR_CODES_ARRAY[t]+=39);return String.fromCharCode.apply(null,SHARED_CHAR_CODES_ARRAY.slice(0,2*e))}}var Tracer=function(){function e(e,t,r){this._tracerProvider=r;var n=mergeConfig(t);this._sampler=n.sampler,this._generalLimits=n.generalLimits,this._spanLimits=n.spanLimits,this._idGenerator=t.idGenerator||new RandomIdGenerator,this.resource=r.resource,this.instrumentationLibrary=e}return e.prototype.startSpan=function(e,t,r){var n,o,i;void 0===t&&(t={}),void 0===r&&(r=context_api_context.active()),t.root&&(r=trace.deleteSpan(r));var a=trace.getSpan(r);if(suppress_tracing_isTracingSuppressed(r))return diag.debug("Instrumentation suppressed, returning Noop Span"),trace.wrapSpanContext(INVALID_SPAN_CONTEXT);var s,u,c,_=null==a?void 0:a.spanContext(),l=this._idGenerator.generateSpanId();_&&trace.isSpanContextValid(_)?(s=_.traceId,u=_.traceState,c=_.spanId):s=this._idGenerator.generateTraceId();var S=null!==(n=t.kind)&&void 0!==n?n:SpanKind.INTERNAL,E=(null!==(o=t.links)&&void 0!==o?o:[]).map((function(e){return{context:e.context,attributes:sanitizeAttributes(e.attributes)}})),T=sanitizeAttributes(t.attributes),A=this._sampler.shouldSample(r,s,e,S,T,E);u=null!==(i=A.traceState)&&void 0!==i?i:u;var p={traceId:s,spanId:l,traceFlags:A.decision===SamplingDecision.RECORD_AND_SAMPLED?TraceFlags.SAMPLED:TraceFlags.NONE,traceState:u};if(A.decision===SamplingDecision.NOT_RECORD)return diag.debug("Recording is off, propagating context in a non-recording span"),trace.wrapSpanContext(p);var m=sanitizeAttributes(Object.assign(T,A.attributes));return new Span(this,r,e,p,S,c,E,t.startTime,void 0,m)},e.prototype.startActiveSpan=function(e,t,r,n){var o,i,a;if(!(arguments.length<2)){2===arguments.length?a=t:3===arguments.length?(o=t,a=r):(o=t,i=r,a=n);var s=null!=i?i:context_api_context.active(),u=this.startSpan(e,o,s),c=trace.setSpan(s,u);return context_api_context.with(c,a,void 0,u)}},e.prototype.getGeneralLimits=function(){return this._generalLimits},e.prototype.getSpanLimits=function(){return this._spanLimits},e.prototype.getActiveSpanProcessor=function(){return this._tracerProvider.getActiveSpanProcessor()},e}(),MultiSpanProcessor_values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},MultiSpanProcessor=function(){function e(e){this._spanProcessors=e}return e.prototype.forceFlush=function(){var e,t,r=[];try{for(var n=MultiSpanProcessor_values(this._spanProcessors),o=n.next();!o.done;o=n.next()){var i=o.value;r.push(i.forceFlush())}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return new Promise((function(e){Promise.all(r).then((function(){e()})).catch((function(t){global_error_handler_globalErrorHandler(t||new Error("MultiSpanProcessor: forceFlush failed")),e()}))}))},e.prototype.onStart=function(e,t){var r,n;try{for(var o=MultiSpanProcessor_values(this._spanProcessors),i=o.next();!i.done;i=o.next())i.value.onStart(e,t)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}},e.prototype.onEnd=function(e){var t,r;try{for(var n=MultiSpanProcessor_values(this._spanProcessors),o=n.next();!o.done;o=n.next())o.value.onEnd(e)}catch(e){t={error:e}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},e.prototype.shutdown=function(){var e,t,r=[];try{for(var n=MultiSpanProcessor_values(this._spanProcessors),o=n.next();!o.done;o=n.next()){var i=o.value;r.push(i.shutdown())}}catch(t){e={error:t}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}return new Promise((function(e,t){Promise.all(r).then((function(){e()}),t)}))},e}(),NoopSpanProcessor=function(){function e(){}return e.prototype.onStart=function(e,t){},e.prototype.onEnd=function(e){},e.prototype.shutdown=function(){return Promise.resolve()},e.prototype.forceFlush=function(){return Promise.resolve()},e}(),promise_Deferred=function(){function e(){var e=this;this._promise=new Promise((function(t,r){e._resolve=t,e._reject=r}))}return Object.defineProperty(e.prototype,"promise",{get:function(){return this._promise},enumerable:!1,configurable:!0}),e.prototype.resolve=function(e){this._resolve(e)},e.prototype.reject=function(e){this._reject(e)},e}(),callback_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},callback_spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;othis._maxQueueSize&&(diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}return e.prototype.forceFlush=function(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()},e.prototype.onStart=function(e,t){},e.prototype.onEnd=function(e){this._shutdownOnce.isCalled||e.spanContext().traceFlags&TraceFlags.SAMPLED&&this._addToBuffer(e)},e.prototype.shutdown=function(){return this._shutdownOnce.call()},e.prototype._shutdown=function(){var e=this;return Promise.resolve().then((function(){return e.onShutdown()})).then((function(){return e._flushAll()})).then((function(){return e._exporter.shutdown()}))},e.prototype._addToBuffer=function(e){if(this._finishedSpans.length>=this._maxQueueSize)return 0===this._droppedSpansCount&&diag.debug("maxQueueSize reached, dropping spans"),void this._droppedSpansCount++;this._droppedSpansCount>0&&(diag.warn("Dropped "+this._droppedSpansCount+" spans because maxQueueSize reached"),this._droppedSpansCount=0),this._finishedSpans.push(e),this._maybeStartTimer()},e.prototype._flushAll=function(){var e=this;return new Promise((function(t,r){for(var n=[],o=0,i=Math.ceil(e._finishedSpans.length/e._maxExportBatchSize);o0&&(e._clearTimer(),e._maybeStartTimer())})).catch((function(t){e._isExporting=!1,global_error_handler_globalErrorHandler(t)}))};if(this._finishedSpans.length>=this._maxExportBatchSize)return t();void 0===this._timer&&(this._timer=setTimeout((function(){return t()}),this._scheduledDelayMillis),unrefTimer(this._timer))}},e.prototype._clearTimer=function(){void 0!==this._timer&&(clearTimeout(this._timer),this._timer=void 0)},e}(),__extends=(extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},extendStatics(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),extendStatics,BatchSpanProcessor=function(e){function t(t,r){var n=e.call(this,t,r)||this;return n.onInit(r),n}return __extends(t,e),t.prototype.onInit=function(e){var t=this;!0!==(null==e?void 0:e.disableAutoFlushOnDocumentHide)&&"undefined"!=typeof document&&(this._visibilityChangeListener=function(){"hidden"===document.visibilityState&&t.forceFlush()},this._pageHideListener=function(){t.forceFlush()},document.addEventListener("visibilitychange",this._visibilityChangeListener),document.addEventListener("pagehide",this._pageHideListener))},t.prototype.onShutdown=function(){"undefined"!=typeof document&&(this._visibilityChangeListener&&document.removeEventListener("visibilitychange",this._visibilityChangeListener),this._pageHideListener&&document.removeEventListener("pagehide",this._pageHideListener))},t}(BatchSpanProcessorBase),ForceFlushState;!function(e){e[e.resolved=0]="resolved",e[e.timeout=1]="timeout",e[e.error=2]="error",e[e.unresolved=3]="unresolved"}(ForceFlushState||(ForceFlushState={}));var BasicTracerProvider=function(){function e(e){var t;void 0===e&&(e={}),this._registeredSpanProcessors=[],this._tracers=new Map;var r=merge({},loadDefaultConfig(),reconfigureLimits(e));this.resource=null!==(t=r.resource)&&void 0!==t?t:Resource.empty(),this.resource=Resource.default().merge(this.resource),this._config=Object.assign({},r,{resource:this.resource});var n=this._buildExporterFromEnv();if(void 0!==n){var o=new BatchSpanProcessor(n);this.activeSpanProcessor=o}else this.activeSpanProcessor=new NoopSpanProcessor}return e.prototype.getTracer=function(e,t,r){var n=e+"@"+(t||"")+":"+((null==r?void 0:r.schemaUrl)||"");return this._tracers.has(n)||this._tracers.set(n,new Tracer({name:e,version:t,schemaUrl:null==r?void 0:r.schemaUrl},this._config,this)),this._tracers.get(n)},e.prototype.addSpanProcessor=function(e){0===this._registeredSpanProcessors.length&&this.activeSpanProcessor.shutdown().catch((function(e){return diag.error("Error while trying to shutdown current span processor",e)})),this._registeredSpanProcessors.push(e),this.activeSpanProcessor=new MultiSpanProcessor(this._registeredSpanProcessors)},e.prototype.getActiveSpanProcessor=function(){return this.activeSpanProcessor},e.prototype.register=function(e){void 0===e&&(e={}),trace.setGlobalTracerProvider(this),void 0===e.propagator&&(e.propagator=this._buildPropagatorFromEnv()),e.contextManager&&context_api_context.setGlobalContextManager(e.contextManager),e.propagator&&propagation.setGlobalPropagator(e.propagator)},e.prototype.forceFlush=function(){var e=this._config.forceFlushTimeoutMillis,t=this._registeredSpanProcessors.map((function(t){return new Promise((function(r){var n,o=setTimeout((function(){r(new Error("Span processor did not completed within timeout period of "+e+" ms")),n=ForceFlushState.timeout}),e);t.forceFlush().then((function(){clearTimeout(o),n!==ForceFlushState.timeout&&(n=ForceFlushState.resolved,r(n))})).catch((function(e){clearTimeout(o),n=ForceFlushState.error,r(e)}))}))}));return new Promise((function(e,r){Promise.all(t).then((function(t){var n=t.filter((function(e){return e!==ForceFlushState.resolved}));n.length>0?r(n):e()})).catch((function(e){return r([e])}))}))},e.prototype.shutdown=function(){return this.activeSpanProcessor.shutdown()},e.prototype._getPropagator=function(e){var t;return null===(t=this.constructor._registeredPropagators.get(e))||void 0===t?void 0:t()},e.prototype._getSpanExporter=function(e){var t;return null===(t=this.constructor._registeredExporters.get(e))||void 0===t?void 0:t()},e.prototype._buildPropagatorFromEnv=function(){var e=this,t=Array.from(new Set(getEnv().OTEL_PROPAGATORS)),r=t.map((function(t){var r=e._getPropagator(t);return r||diag.warn('Propagator "'+t+'" requested through environment variable is unavailable.'),r})).reduce((function(e,t){return t&&e.push(t),e}),[]);return 0===r.length?void 0:1===t.length?r[0]:new CompositePropagator({propagators:r})},e.prototype._buildExporterFromEnv=function(){var e=getEnv().OTEL_TRACES_EXPORTER;if("none"!==e&&""!==e){var t=this._getSpanExporter(e);return t||diag.error('Exporter "'+e+'" requested through environment variable is unavailable.'),t}},e._registeredPropagators=new Map([["tracecontext",function(){return new W3CTraceContextPropagator}],["baggage",function(){return new W3CBaggagePropagator}]]),e._registeredExporters=new Map,e}(),StackContextManager_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},StackContextManager_spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;oTraceState_MAX_TRACE_STATE_LEN||(this._internalState=e.split(TraceState_LIST_MEMBERS_SEPARATOR).reverse().reduce((function(e,t){var r=t.trim(),n=r.indexOf(TraceState_LIST_MEMBER_KEY_VALUE_SPLITTER);if(-1!==n){var o=r.slice(0,n),i=r.slice(n+1,t.length);validators_validateKey(o)&&validators_validateValue(i)&&e.set(o,i)}return e}),new Map),this._internalState.size>TraceState_MAX_TRACE_STATE_ITEMS&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,TraceState_MAX_TRACE_STATE_ITEMS))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}(),W3CTraceContextPropagator_TRACE_PARENT_HEADER="traceparent",W3CTraceContextPropagator_TRACE_STATE_HEADER="tracestate",trace_W3CTraceContextPropagator_VERSION="00",W3CTraceContextPropagator_VERSION_PART="(?!ff)[\\da-f]{2}",W3CTraceContextPropagator_TRACE_ID_PART="(?![0]{32})[\\da-f]{32}",W3CTraceContextPropagator_PARENT_ID_PART="(?![0]{16})[\\da-f]{16}",W3CTraceContextPropagator_FLAGS_PART="[\\da-f]{2}",W3CTraceContextPropagator_TRACE_PARENT_REGEX=new RegExp("^\\s?("+W3CTraceContextPropagator_VERSION_PART+")-("+W3CTraceContextPropagator_TRACE_ID_PART+")-("+W3CTraceContextPropagator_PARENT_ID_PART+")-("+W3CTraceContextPropagator_FLAGS_PART+")(-.*)?\\s?$");function W3CTraceContextPropagator_parseTraceParent(e){var t=W3CTraceContextPropagator_TRACE_PARENT_REGEX.exec(e);return t?"00"===t[1]&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}:null}var W3CTraceContextPropagator_W3CTraceContextPropagator=function(){function e(){}return e.prototype.inject=function(e,t,r){var n=trace.getSpanContext(e);if(n&&!isTracingSuppressed(e)&&isSpanContextValid(n)){var o=trace_W3CTraceContextPropagator_VERSION+"-"+n.traceId+"-"+n.spanId+"-0"+Number(n.traceFlags||TraceFlags.NONE).toString(16);r.set(t,W3CTraceContextPropagator_TRACE_PARENT_HEADER,o),n.traceState&&r.set(t,W3CTraceContextPropagator_TRACE_STATE_HEADER,n.traceState.serialize())}},e.prototype.extract=function(e,t,r){var n=r.get(t,W3CTraceContextPropagator_TRACE_PARENT_HEADER);if(!n)return e;var o=Array.isArray(n)?n[0]:n;if("string"!=typeof o)return e;var i=W3CTraceContextPropagator_parseTraceParent(o);if(!i)return e;i.isRemote=!0;var a=r.get(t,W3CTraceContextPropagator_TRACE_STATE_HEADER);if(a){var s=Array.isArray(a)?a.join(","):a;i.traceState=new TraceState_TraceState("string"==typeof s?s:void 0)}return trace.setSpanContext(e,i)},e.prototype.fields=function(){return[W3CTraceContextPropagator_TRACE_PARENT_HEADER,W3CTraceContextPropagator_TRACE_STATE_HEADER]},e}(),PerformanceTimingNames,urlNormalizingAnchor;function getUrlNormalizingAnchor(){return urlNormalizingAnchor||(urlNormalizingAnchor=document.createElement("a")),urlNormalizingAnchor}function hasKey(e,t){return t in e}function addSpanNetworkEvent(e,t,r,n){var o=void 0,i=void 0;hasKey(r,t)&&"number"==typeof r[t]&&(o=r[t]);var a=n||PerformanceTimingNames.FETCH_START;if(hasKey(r,a)&&"number"==typeof r[a]&&(i=r[a]),void 0!==o&&void 0!==i&&o>=i)return e.addEvent(t,o),e}function addSpanNetworkEvents(e,t){addSpanNetworkEvent(e,PerformanceTimingNames.FETCH_START,t),addSpanNetworkEvent(e,PerformanceTimingNames.DOMAIN_LOOKUP_START,t),addSpanNetworkEvent(e,PerformanceTimingNames.DOMAIN_LOOKUP_END,t),addSpanNetworkEvent(e,PerformanceTimingNames.CONNECT_START,t),hasKey(t,"name")&&t.name.startsWith("https:")&&addSpanNetworkEvent(e,PerformanceTimingNames.SECURE_CONNECTION_START,t),addSpanNetworkEvent(e,PerformanceTimingNames.CONNECT_END,t),addSpanNetworkEvent(e,PerformanceTimingNames.REQUEST_START,t),addSpanNetworkEvent(e,PerformanceTimingNames.RESPONSE_START,t),addSpanNetworkEvent(e,PerformanceTimingNames.RESPONSE_END,t);var r=t[PerformanceTimingNames.ENCODED_BODY_SIZE];void 0!==r&&e.setAttribute(SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH,r);var n=t[PerformanceTimingNames.DECODED_BODY_SIZE];void 0!==n&&r!==n&&e.setAttribute(SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,n)}function sortResources(e){return e.slice().sort((function(e,t){var r=e[PTN.FETCH_START],n=t[PTN.FETCH_START];return r>n?1:r1){var c=u[0],_=findMainRequest(u,c[PTN.RESPONSE_END],r),l=c[PTN.RESPONSE_END];return _[PTN.FETCH_START]=i&&(!n||l=a&&n<=s}));return u.length>0&&(u=u.filter((function(e){return!o.has(e)}))),u}function parseUrl(e){if("function"==typeof URL)return new URL(e,"undefined"!=typeof document?document.baseURI:"undefined"!=typeof location?location.href:void 0);var t=getUrlNormalizingAnchor();return t.href=e,t}function normalizeUrl(e){return parseUrl(e).href}function getElementXPath(e,t){if(e.nodeType===Node.DOCUMENT_NODE)return"/";var r=getNodeValue(e,t);if(t&&r.indexOf("@id")>0)return r;var n="";return e.parentNode&&(n+=getElementXPath(e.parentNode,!1)),n+r}function getNodeIndex(e){if(!e.parentNode)return 0;var t=[e.nodeType];e.nodeType===Node.CDATA_SECTION_NODE&&t.push(Node.TEXT_NODE);var r=Array.from(e.parentNode.childNodes);return(r=r.filter((function(r){var n=r.localName;return t.indexOf(r.nodeType)>=0&&n===e.localName}))).length>=1?r.indexOf(e)+1:0}function getNodeValue(e,t){var r=e.nodeType,n=getNodeIndex(e),o="";if(r===Node.ELEMENT_NODE){var i=e.getAttribute("id");if(t&&i)return'//*[@id="'+i+'"]';o=e.localName}else if(r===Node.TEXT_NODE||r===Node.CDATA_SECTION_NODE)o="text()";else{if(r!==Node.COMMENT_NODE)return"";o="comment()"}return o&&n>1?"/"+o+"["+n+"]":"/"+o}function shouldPropagateTraceHeaders(e,t){var r=t||[];return("string"==typeof r||r instanceof RegExp)&&(r=[r]),parseUrl(e).origin===getOrigin()||r.some((function(t){return urlMatches(e,t)}))}!function(e){e.CONNECT_END="connectEnd",e.CONNECT_START="connectStart",e.DECODED_BODY_SIZE="decodedBodySize",e.DOM_COMPLETE="domComplete",e.DOM_CONTENT_LOADED_EVENT_END="domContentLoadedEventEnd",e.DOM_CONTENT_LOADED_EVENT_START="domContentLoadedEventStart",e.DOM_INTERACTIVE="domInteractive",e.DOMAIN_LOOKUP_END="domainLookupEnd",e.DOMAIN_LOOKUP_START="domainLookupStart",e.ENCODED_BODY_SIZE="encodedBodySize",e.FETCH_START="fetchStart",e.LOAD_EVENT_END="loadEventEnd",e.LOAD_EVENT_START="loadEventStart",e.NAVIGATION_START="navigationStart",e.REDIRECT_END="redirectEnd",e.REDIRECT_START="redirectStart",e.REQUEST_START="requestStart",e.RESPONSE_END="responseEnd",e.RESPONSE_START="responseStart",e.SECURE_CONNECTION_START="secureConnectionStart",e.UNLOAD_EVENT_END="unloadEventEnd",e.UNLOAD_EVENT_START="unloadEventStart"}(PerformanceTimingNames||(PerformanceTimingNames={}));var utils_awaiter=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},utils_generator=function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},sampling_TracesSamplerValues;function utils_serializeKeyPairs(e){return e.reduce((function(e,t){var r=""+e+(""!==e?BAGGAGE_ITEMS_SEPARATOR:"")+t;return r.length>BAGGAGE_MAX_TOTAL_LENGTH?e:r}),"")}function utils_getKeyPairs(e){return e.getAllEntries().map((function(e){var t=baggage_utils_read(e,2),r=t[0],n=t[1],o=encodeURIComponent(r)+"="+encodeURIComponent(n.value);return void 0!==n.metadata&&(o+=BAGGAGE_PROPERTIES_SEPARATOR+n.metadata.toString()),o}))}function utils_parsePairKeyValue(e){var t=e.split(baggage_constants_BAGGAGE_PROPERTIES_SEPARATOR);if(!(t.length<=0)){var r=t.shift();if(r){var n=r.indexOf(constants_BAGGAGE_KEY_PAIR_SEPARATOR);if(!(n<=0)){var o,i=decodeURIComponent(r.substring(0,n).trim()),a=decodeURIComponent(r.substring(n+1).trim());return t.length>0&&(o=baggageEntryMetadataFromString(t.join(baggage_constants_BAGGAGE_PROPERTIES_SEPARATOR))),{key:i,value:a,metadata:o}}}}}function utils_parseKeyPairsIntoRecord(e){return"string"!=typeof e||0===e.length?{}:e.split(baggage_constants_BAGGAGE_ITEMS_SEPARATOR).map((function(e){return utils_parsePairKeyValue(e)})).filter((function(e){return void 0!==e&&e.value.length>0})).reduce((function(e,t){return e[t.key]=t.value,e}),{})}!function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"}(sampling_TracesSamplerValues||(sampling_TracesSamplerValues={}));var environment_DEFAULT_LIST_SEPARATOR=",",environment_ENVIRONMENT_BOOLEAN_KEYS=["OTEL_SDK_DISABLED"];function environment_isEnvVarABoolean(e){return environment_ENVIRONMENT_BOOLEAN_KEYS.indexOf(e)>-1}var environment_ENVIRONMENT_NUMBERS_KEYS=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function environment_isEnvVarANumber(e){return environment_ENVIRONMENT_NUMBERS_KEYS.indexOf(e)>-1}var environment_ENVIRONMENT_LISTS_KEYS=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS"];function environment_isEnvVarAList(e){return environment_ENVIRONMENT_LISTS_KEYS.indexOf(e)>-1}var environment_DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0,environment_DEFAULT_ATTRIBUTE_COUNT_LIMIT=128,environment_DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128,environment_DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128,environment_DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:environment_DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:environment_DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:environment_DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:environment_DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:environment_DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:environment_DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:environment_DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:environment_DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:sampling_TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative"};function environment_parseBoolean(e,t,r){if(void 0!==r[e]){var n=String(r[e]);t[e]="true"===n.toLowerCase()}}function environment_parseNumber(e,t,r,n,o){if(void 0===n&&(n=-1/0),void 0===o&&(o=1/0),void 0!==r[e]){var i=Number(r[e]);isNaN(i)||(t[e]=io?o:i)}}function environment_parseStringList(e,t,r,n){void 0===n&&(n=environment_DEFAULT_LIST_SEPARATOR);var o=r[e];"string"==typeof o&&(t[e]=o.split(n).map((function(e){return e.trim()})))}var environment_logLevelMap={ALL:DiagLogLevel.ALL,VERBOSE:DiagLogLevel.VERBOSE,DEBUG:DiagLogLevel.DEBUG,INFO:DiagLogLevel.INFO,WARN:DiagLogLevel.WARN,ERROR:DiagLogLevel.ERROR,NONE:DiagLogLevel.NONE};function environment_setLogLevelFromEnv(e,t,r){var n=r[e];if("string"==typeof n){var o=environment_logLevelMap[n.toUpperCase()];null!=o&&(t[e]=o)}}function utils_environment_parseEnvironment(e){var t={};for(var r in environment_DEFAULT_ENVIRONMENT){var n=r;if("OTEL_LOG_LEVEL"===n)environment_setLogLevelFromEnv(n,t,e);else if(environment_isEnvVarABoolean(n))environment_parseBoolean(n,t,e);else if(environment_isEnvVarANumber(n))environment_parseNumber(n,t,e);else if(environment_isEnvVarAList(n))environment_parseStringList(n,t,e);else{var o=e[n];null!=o&&(t[n]=String(o))}}return t}var esm_platform_browser_globalThis_globalThis="object"==typeof globalThis?globalThis:"object"==typeof self?self:"object"==typeof window?window:"object"==typeof __webpack_require__.g?__webpack_require__.g:{};function environment_getEnv(){var e=utils_environment_parseEnvironment(esm_platform_browser_globalThis_globalThis);return Object.assign({},environment_DEFAULT_ENVIRONMENT,e)}function environment_getEnvWithoutDefaults(){return parseEnvironment(_globalThis)}var util_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},DEFAULT_TRACE_TIMEOUT=1e4,DEFAULT_EXPORT_MAX_ATTEMPTS=5,DEFAULT_EXPORT_INITIAL_BACKOFF=1e3,DEFAULT_EXPORT_MAX_BACKOFF=5e3,DEFAULT_EXPORT_BACKOFF_MULTIPLIER=1.5;function parseHeaders(e){void 0===e&&(e={});var t={};return Object.entries(e).forEach((function(e){var r=util_read(e,2),n=r[0],o=r[1];void 0!==o?t[n]=String(o):diag.warn('Header "'+n+'" has invalid value ('+o+") and will be ignored")})),t}function appendResourcePathToUrl(e,t){return e.endsWith("/")||(e+="/"),e+t}function appendRootPathToUrlIfNeeded(e){try{var t=new URL(e);return""===t.pathname&&(t.pathname=t.pathname+"/"),t.toString()}catch(t){return diag.warn("Could not parse export URL: '"+e+"'"),e}}function configureExporterTimeout(e){return"number"==typeof e?e<=0?invalidTimeout(e,DEFAULT_TRACE_TIMEOUT):e:getExporterTimeoutFromEnv()}function getExporterTimeoutFromEnv(){var e,t=Number(null!==(e=environment_getEnv().OTEL_EXPORTER_OTLP_TRACES_TIMEOUT)&&void 0!==e?e:environment_getEnv().OTEL_EXPORTER_OTLP_TIMEOUT);return t<=0?invalidTimeout(t,DEFAULT_TRACE_TIMEOUT):t}function invalidTimeout(e,t){return diag.warn("Timeout must be greater than 0",e),t}function isExportRetryable(e){return[429,502,503,504].includes(e)}function parseRetryAfterToMills(e){if(null==e)return-1;var t=Number.parseInt(e,10);if(Number.isInteger(t))return t>0?1e3*t:-1;var r=new Date(e).getTime()-Date.now();return r>=0?r:0}var OTLPExporterBase=function(){function e(e){void 0===e&&(e={}),this._sendingPromises=[],this.url=this.getDefaultUrl(e),"string"==typeof e.hostname&&(this.hostname=e.hostname),this.shutdown=this.shutdown.bind(this),this._shutdownOnce=new BindOnceFuture(this._shutdown,this),this._concurrencyLimit="number"==typeof e.concurrencyLimit?e.concurrencyLimit:30,this.timeoutMillis=configureExporterTimeout(e.timeoutMillis),this.onInit(e)}return e.prototype.export=function(e,t){this._shutdownOnce.isCalled?t({code:ExportResultCode.FAILED,error:new Error("Exporter has been shutdown")}):this._sendingPromises.length>=this._concurrencyLimit?t({code:ExportResultCode.FAILED,error:new Error("Concurrent export limit reached")}):this._export(e).then((function(){t({code:ExportResultCode.SUCCESS})})).catch((function(e){t({code:ExportResultCode.FAILED,error:e})}))},e.prototype._export=function(e){var t=this;return new Promise((function(r,n){try{diag.debug("items to be sent",e),t.send(e,r,n)}catch(e){n(e)}}))},e.prototype.shutdown=function(){return this._shutdownOnce.call()},e.prototype.forceFlush=function(){return Promise.all(this._sendingPromises).then((function(){}))},e.prototype._shutdown=function(){return diag.debug("shutdown started"),this.onShutdown(),this.forceFlush()},e}(),types_extends=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},e(t,r)};return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),OTLPExporterError=function(e){function t(t,r,n){var o=e.call(this,t)||this;return o.name="OTLPExporterError",o.data=n,o.code=r,o}return types_extends(t,e),t}(Error),util_assign=function(){return util_assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a};function sendWithBeacon(e,t,r,n,o){navigator.sendBeacon(t,new Blob([e],r))?(diag.debug("sendBeacon - can send",e),n()):o(new OTLPExporterError("sendBeacon - cannot send "+e))}function sendWithXhr(e,t,r,n,o,i){var a,s,u=!1,c=setTimeout((function(){if(clearTimeout(a),u=!0,s.readyState===XMLHttpRequest.DONE){var e=new OTLPExporterError("Request Timeout");i(e)}else s.abort()}),n),_=function(n,l){void 0===n&&(n=DEFAULT_EXPORT_MAX_ATTEMPTS),void 0===l&&(l=DEFAULT_EXPORT_INITIAL_BACKOFF),(s=new XMLHttpRequest).open("POST",t),Object.entries(util_assign(util_assign({},{Accept:"application/json","Content-Type":"application/json"}),r)).forEach((function(e){var t=browser_util_read(e,2),r=t[0],n=t[1];s.setRequestHeader(r,n)})),s.send(e),s.onreadystatechange=function(){if(s.readyState===XMLHttpRequest.DONE&&!1===u)if(s.status>=200&&s.status<=299)diag.debug("xhr success",e),o(),clearTimeout(c),clearTimeout(a);else if(s.status&&isExportRetryable(s.status)&&n>0){var t;l*=DEFAULT_EXPORT_BACKOFF_MULTIPLIER,t=s.getResponseHeader("Retry-After")?parseRetryAfterToMills(s.getResponseHeader("Retry-After")):Math.round(Math.random()*(DEFAULT_EXPORT_MAX_BACKOFF-l)+l),a=setTimeout((function(){_(n-1,l)}),t)}else{var r=new OTLPExporterError("Failed to export with XHR (status: "+s.status+")",s.status);i(r),clearTimeout(c),clearTimeout(a)}},s.onabort=function(){if(u){var e=new OTLPExporterError("Request Timeout");i(e)}clearTimeout(c),clearTimeout(a)},s.onerror=function(){if(u){var e=new OTLPExporterError("Request Timeout");i(e)}clearTimeout(c),clearTimeout(a)}};_()}var OTLPExporterBrowserBase_extends=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},e(t,r)};return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),OTLPExporterBrowserBase_assign=function(){return OTLPExporterBrowserBase_assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a};function createInstrumentationScope(e){return{name:e.name,version:e.version}}function toAttributes(e){return Object.keys(e).map((function(t){return toKeyValue(t,e[t])}))}function toKeyValue(e,t){return{key:e,value:toAnyValue(t)}}function toAnyValue(e){var t=typeof e;return"string"===t?{stringValue:e}:"number"===t?Number.isInteger(e)?{intValue:e}:{doubleValue:e}:"boolean"===t?{boolValue:e}:e instanceof Uint8Array?{bytesValue:e}:Array.isArray(e)?{arrayValue:{values:e.map(toAnyValue)}}:"object"===t&&null!=e?{kvlistValue:{values:Object.entries(e).map((function(e){var t=internal_read(e,2);return toKeyValue(t[0],t[1])}))}}:{}}function sdkSpanToOtlpSpan(e,t){var r,n=e.spanContext(),o=e.status;return{traceId:t.encodeSpanContext(n.traceId),spanId:t.encodeSpanContext(n.spanId),parentSpanId:t.encodeOptionalSpanContext(e.parentSpanId),traceState:null===(r=n.traceState)||void 0===r?void 0:r.serialize(),name:e.name,kind:null==e.kind?0:e.kind+1,startTimeUnixNano:t.encodeHrTime(e.startTime),endTimeUnixNano:t.encodeHrTime(e.endTime),attributes:toAttributes(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map((function(e){return toOtlpSpanEvent(e,t)})),droppedEventsCount:e.droppedEventsCount,status:{code:o.code,message:o.message},links:e.links.map((function(e){return toOtlpLink(e,t)})),droppedLinksCount:e.droppedLinksCount}}function toOtlpLink(e,t){var r;return{attributes:e.attributes?toAttributes(e.attributes):[],spanId:t.encodeSpanContext(e.context.spanId),traceId:t.encodeSpanContext(e.context.traceId),traceState:null===(r=e.context.traceState)||void 0===r?void 0:r.serialize(),droppedAttributesCount:e.droppedAttributesCount||0}}function toOtlpSpanEvent(e,t){return{attributes:e.attributes?toAttributes(e.attributes):[],name:e.name,timeUnixNano:t.encodeHrTime(e.time),droppedAttributesCount:e.droppedAttributesCount||0}}function intValue(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}function hexToBinary(e){for(var t=new Uint8Array(e.length/2),r=0,n=0;n>BigInt(32)))}}function encodeAsLongBits(e){return toLongBits(hrTimeToNanos(e))}function encodeAsString(e){return hrTimeToNanos(e).toString()}var encodeTimestamp="undefined"!=typeof BigInt?encodeAsString:time_hrTimeToNanoseconds;function identity(e){return e}function optionalHexToBinary(e){if(void 0!==e)return hexToBinary(e)}var DEFAULT_ENCODER={encodeHrTime:encodeAsLongBits,encodeSpanContext:hexToBinary,encodeOptionalSpanContext:optionalHexToBinary};function getOtlpEncoder(e){var t,r;if(void 0===e)return DEFAULT_ENCODER;var n=null===(t=e.useLongBits)||void 0===t||t,o=null!==(r=e.useHex)&&void 0!==r&&r;return{encodeHrTime:n?encodeAsLongBits:encodeTimestamp,encodeSpanContext:o?identity:hexToBinary,encodeOptionalSpanContext:o?identity:optionalHexToBinary}}function createResource(e){return{attributes:toAttributes(e.attributes),droppedAttributesCount:0}}var trace_values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},trace_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},ValueType,DataPointType,AggregationTemporality;function createExportTraceServiceRequest(e,t){return{resourceSpans:spanRecordsToResourceSpans(e,getOtlpEncoder(t))}}function createResourceMap(e){var t,r,n=new Map;try{for(var o=trace_values(e),i=o.next();!i.done;i=o.next()){var a=i.value,s=n.get(a.resource);s||(s=new Map,n.set(a.resource,s));var u=a.instrumentationLibrary.name+"@"+(a.instrumentationLibrary.version||"")+":"+(a.instrumentationLibrary.schemaUrl||""),c=s.get(u);c||(c=[],s.set(u,c)),c.push(a)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return n}function spanRecordsToResourceSpans(e,t){for(var r=[],n=createResourceMap(e).entries(),o=n.next();!o.done;){for(var i=trace_read(o.value,2),a=i[0],s=[],u=i[1].values(),c=u.next();!c.done;){var _=c.value;if(_.length>0){var l=_.map((function(e){return sdkSpanToOtlpSpan(e,t)}));s.push({scope:createInstrumentationScope(_[0].instrumentationLibrary),spans:l,schemaUrl:_[0].instrumentationLibrary.schemaUrl})}c=u.next()}var S={resource:createResource(a),scopeSpans:s,schemaUrl:void 0};r.push(S),o=n.next()}return r}function toResourceMetrics(e,t){var r=getOtlpEncoder(t);return{resource:createResource(e.resource),schemaUrl:void 0,scopeMetrics:toScopeMetrics(e.scopeMetrics,r)}}function toScopeMetrics(e,t){return Array.from(e.map((function(e){return{scope:createInstrumentationScope(e.scope),metrics:e.metrics.map((function(e){return toMetric(e,t)})),schemaUrl:e.scope.schemaUrl}})))}function toMetric(e,t){var r={name:e.descriptor.name,description:e.descriptor.description,unit:e.descriptor.unit},n=toAggregationTemporality(e.aggregationTemporality);switch(e.dataPointType){case DataPointType.SUM:r.sum={aggregationTemporality:n,isMonotonic:e.isMonotonic,dataPoints:toSingularDataPoints(e,t)};break;case DataPointType.GAUGE:r.gauge={dataPoints:toSingularDataPoints(e,t)};break;case DataPointType.HISTOGRAM:r.histogram={aggregationTemporality:n,dataPoints:toHistogramDataPoints(e,t)};break;case DataPointType.EXPONENTIAL_HISTOGRAM:r.exponentialHistogram={aggregationTemporality:n,dataPoints:toExponentialHistogramDataPoints(e,t)}}return r}function toSingularDataPoint(e,t,r){var n={attributes:toAttributes(e.attributes),startTimeUnixNano:r.encodeHrTime(e.startTime),timeUnixNano:r.encodeHrTime(e.endTime)};switch(t){case ValueType.INT:n.asInt=e.value;break;case ValueType.DOUBLE:n.asDouble=e.value}return n}function toSingularDataPoints(e,t){return e.dataPoints.map((function(r){return toSingularDataPoint(r,e.descriptor.valueType,t)}))}function toHistogramDataPoints(e,t){return e.dataPoints.map((function(e){var r=e.value;return{attributes:toAttributes(e.attributes),bucketCounts:r.buckets.counts,explicitBounds:r.buckets.boundaries,count:r.count,sum:r.sum,min:r.min,max:r.max,startTimeUnixNano:t.encodeHrTime(e.startTime),timeUnixNano:t.encodeHrTime(e.endTime)}}))}function toExponentialHistogramDataPoints(e,t){return e.dataPoints.map((function(e){var r=e.value;return{attributes:toAttributes(e.attributes),count:r.count,min:r.min,max:r.max,sum:r.sum,positive:{offset:r.positive.offset,bucketCounts:r.positive.bucketCounts},negative:{offset:r.negative.offset,bucketCounts:r.negative.bucketCounts},scale:r.scale,zeroCount:r.zeroCount,startTimeUnixNano:t.encodeHrTime(e.startTime),timeUnixNano:t.encodeHrTime(e.endTime)}}))}function toAggregationTemporality(e){switch(e){case AggregationTemporality.DELTA:return 1;case AggregationTemporality.CUMULATIVE:return 2}}function createExportMetricsServiceRequest(e,t){return{resourceMetrics:e.map((function(e){return toResourceMetrics(e,t)}))}}!function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"}(ValueType||(ValueType={})),function(e){e[e.HISTOGRAM=0]="HISTOGRAM",e[e.EXPONENTIAL_HISTOGRAM=1]="EXPONENTIAL_HISTOGRAM",e[e.GAUGE=2]="GAUGE",e[e.SUM=3]="SUM"}(DataPointType||(DataPointType={})),function(e){e[e.DELTA=0]="DELTA",e[e.CUMULATIVE=1]="CUMULATIVE"}(AggregationTemporality||(AggregationTemporality={}));var logs_values=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},logs_read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a};function createExportLogsServiceRequest(e,t){return{resourceLogs:logRecordsToResourceLogs(e,getOtlpEncoder(t))}}function logs_createResourceMap(e){var t,r,n=new Map;try{for(var o=logs_values(e),i=o.next();!i.done;i=o.next()){var a=i.value,s=a.resource,u=a.instrumentationScope,c=u.name,_=u.version,l=void 0===_?"":_,S=u.schemaUrl,E=void 0===S?"":S,T=n.get(s);T||(T=new Map,n.set(s,T));var A=c+"@"+l+":"+E,p=T.get(A);p||(p=[],T.set(A,p)),p.push(a)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(t)throw t.error}}return n}function logRecordsToResourceLogs(e,t){var r=logs_createResourceMap(e);return Array.from(r,(function(e){var r=logs_read(e,2),n=r[0],o=r[1];return{resource:createResource(n),scopeLogs:Array.from(o,(function(e){var r=logs_read(e,2)[1];return{scope:createInstrumentationScope(r[0].instrumentationScope),logRecords:r.map((function(e){return toLogRecord(e,t)})),schemaUrl:r[0].instrumentationScope.schemaUrl}})),schemaUrl:void 0}}))}function toLogRecord(e,t){var r,n,o;return{timeUnixNano:t.encodeHrTime(e.hrTime),observedTimeUnixNano:t.encodeHrTime(e.hrTimeObserved),severityNumber:toSeverityNumber(e.severityNumber),severityText:e.severityText,body:toAnyValue(e.body),attributes:toLogAttributes(e.attributes),droppedAttributesCount:e.droppedAttributesCount,flags:null===(r=e.spanContext)||void 0===r?void 0:r.traceFlags,traceId:t.encodeOptionalSpanContext(null===(n=e.spanContext)||void 0===n?void 0:n.traceId),spanId:t.encodeOptionalSpanContext(null===(o=e.spanContext)||void 0===o?void 0:o.spanId)}}function toSeverityNumber(e){return e}function toLogAttributes(e){return Object.keys(e).map((function(t){return toKeyValue(t,e[t])}))}var logsResponseType=root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceResponse,logsRequestType=root.opentelemetry.proto.collector.logs.v1.ExportLogsServiceRequest,metricsResponseType=root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceResponse,metricsRequestType=root.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest,traceResponseType=root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,traceRequestType=root.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,ProtobufLogsSerializer={serializeRequest:function(e){var t=createExportLogsServiceRequest(e);return logsRequestType.encode(t).finish()},deserializeResponse:function(e){return logsResponseType.decode(e)}},ProtobufMetricsSerializer={serializeRequest:function(e){var t=createExportMetricsServiceRequest(e);return metricsRequestType.encode(t).finish()},deserializeResponse:function(e){return metricsResponseType.decode(e)}},ProtobufTraceSerializer={serializeRequest:function(e){var t=createExportTraceServiceRequest(e);return traceRequestType.encode(t).finish()},deserializeResponse:function(e){return traceResponseType.decode(e)}},OTLPTraceExporter_extends=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},e(t,r)};return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),DEFAULT_COLLECTOR_RESOURCE_PATH="v1/traces",DEFAULT_COLLECTOR_URL="http://localhost:4318/"+DEFAULT_COLLECTOR_RESOURCE_PATH,OTLPTraceExporter=function(e){function t(t){void 0===t&&(t={});var r=e.call(this,t,ProtobufTraceSerializer,"application/x-protobuf")||this;return r._headers=Object.assign(r._headers,utils_parseKeyPairsIntoRecord(environment_getEnv().OTEL_EXPORTER_OTLP_TRACES_HEADERS)),r}return OTLPTraceExporter_extends(t,e),t.prototype.getDefaultUrl=function(e){return"string"==typeof e.url?e.url:environment_getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT.length>0?appendRootPathToUrlIfNeeded(environment_getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT):environment_getEnv().OTEL_EXPORTER_OTLP_ENDPOINT.length>0?appendResourcePathToUrl(environment_getEnv().OTEL_EXPORTER_OTLP_ENDPOINT,DEFAULT_COLLECTOR_RESOURCE_PATH):DEFAULT_COLLECTOR_URL},t}(OTLPExporterBrowserBase),SemanticResourceAttributes_TMP_CLOUD_PROVIDER="cloud.provider",SemanticResourceAttributes_TMP_CLOUD_ACCOUNT_ID="cloud.account.id",SemanticResourceAttributes_TMP_CLOUD_REGION="cloud.region",SemanticResourceAttributes_TMP_CLOUD_AVAILABILITY_ZONE="cloud.availability_zone",SemanticResourceAttributes_TMP_CLOUD_PLATFORM="cloud.platform",SemanticResourceAttributes_TMP_AWS_ECS_CONTAINER_ARN="aws.ecs.container.arn",SemanticResourceAttributes_TMP_AWS_ECS_CLUSTER_ARN="aws.ecs.cluster.arn",SemanticResourceAttributes_TMP_AWS_ECS_LAUNCHTYPE="aws.ecs.launchtype",SemanticResourceAttributes_TMP_AWS_ECS_TASK_ARN="aws.ecs.task.arn",SemanticResourceAttributes_TMP_AWS_ECS_TASK_FAMILY="aws.ecs.task.family",SemanticResourceAttributes_TMP_AWS_ECS_TASK_REVISION="aws.ecs.task.revision",SemanticResourceAttributes_TMP_AWS_EKS_CLUSTER_ARN="aws.eks.cluster.arn",SemanticResourceAttributes_TMP_AWS_LOG_GROUP_NAMES="aws.log.group.names",SemanticResourceAttributes_TMP_AWS_LOG_GROUP_ARNS="aws.log.group.arns",SemanticResourceAttributes_TMP_AWS_LOG_STREAM_NAMES="aws.log.stream.names",SemanticResourceAttributes_TMP_AWS_LOG_STREAM_ARNS="aws.log.stream.arns",SemanticResourceAttributes_TMP_CONTAINER_NAME="container.name",SemanticResourceAttributes_TMP_CONTAINER_ID="container.id",SemanticResourceAttributes_TMP_CONTAINER_RUNTIME="container.runtime",SemanticResourceAttributes_TMP_CONTAINER_IMAGE_NAME="container.image.name",SemanticResourceAttributes_TMP_CONTAINER_IMAGE_TAG="container.image.tag",SemanticResourceAttributes_TMP_DEPLOYMENT_ENVIRONMENT="deployment.environment",SemanticResourceAttributes_TMP_DEVICE_ID="device.id",SemanticResourceAttributes_TMP_DEVICE_MODEL_IDENTIFIER="device.model.identifier",SemanticResourceAttributes_TMP_DEVICE_MODEL_NAME="device.model.name",SemanticResourceAttributes_TMP_FAAS_NAME="faas.name",SemanticResourceAttributes_TMP_FAAS_ID="faas.id",SemanticResourceAttributes_TMP_FAAS_VERSION="faas.version",SemanticResourceAttributes_TMP_FAAS_INSTANCE="faas.instance",SemanticResourceAttributes_TMP_FAAS_MAX_MEMORY="faas.max_memory",SemanticResourceAttributes_TMP_HOST_ID="host.id",SemanticResourceAttributes_TMP_HOST_NAME="host.name",SemanticResourceAttributes_TMP_HOST_TYPE="host.type",SemanticResourceAttributes_TMP_HOST_ARCH="host.arch",SemanticResourceAttributes_TMP_HOST_IMAGE_NAME="host.image.name",SemanticResourceAttributes_TMP_HOST_IMAGE_ID="host.image.id",SemanticResourceAttributes_TMP_HOST_IMAGE_VERSION="host.image.version",SemanticResourceAttributes_TMP_K8S_CLUSTER_NAME="k8s.cluster.name",SemanticResourceAttributes_TMP_K8S_NODE_NAME="k8s.node.name",SemanticResourceAttributes_TMP_K8S_NODE_UID="k8s.node.uid",SemanticResourceAttributes_TMP_K8S_NAMESPACE_NAME="k8s.namespace.name",SemanticResourceAttributes_TMP_K8S_POD_UID="k8s.pod.uid",SemanticResourceAttributes_TMP_K8S_POD_NAME="k8s.pod.name",SemanticResourceAttributes_TMP_K8S_CONTAINER_NAME="k8s.container.name",SemanticResourceAttributes_TMP_K8S_REPLICASET_UID="k8s.replicaset.uid",SemanticResourceAttributes_TMP_K8S_REPLICASET_NAME="k8s.replicaset.name",SemanticResourceAttributes_TMP_K8S_DEPLOYMENT_UID="k8s.deployment.uid",SemanticResourceAttributes_TMP_K8S_DEPLOYMENT_NAME="k8s.deployment.name",SemanticResourceAttributes_TMP_K8S_STATEFULSET_UID="k8s.statefulset.uid",SemanticResourceAttributes_TMP_K8S_STATEFULSET_NAME="k8s.statefulset.name",SemanticResourceAttributes_TMP_K8S_DAEMONSET_UID="k8s.daemonset.uid",SemanticResourceAttributes_TMP_K8S_DAEMONSET_NAME="k8s.daemonset.name",SemanticResourceAttributes_TMP_K8S_JOB_UID="k8s.job.uid",SemanticResourceAttributes_TMP_K8S_JOB_NAME="k8s.job.name",SemanticResourceAttributes_TMP_K8S_CRONJOB_UID="k8s.cronjob.uid",SemanticResourceAttributes_TMP_K8S_CRONJOB_NAME="k8s.cronjob.name",SemanticResourceAttributes_TMP_OS_TYPE="os.type",SemanticResourceAttributes_TMP_OS_DESCRIPTION="os.description",SemanticResourceAttributes_TMP_OS_NAME="os.name",SemanticResourceAttributes_TMP_OS_VERSION="os.version",SemanticResourceAttributes_TMP_PROCESS_PID="process.pid",SemanticResourceAttributes_TMP_PROCESS_EXECUTABLE_NAME="process.executable.name",SemanticResourceAttributes_TMP_PROCESS_EXECUTABLE_PATH="process.executable.path",SemanticResourceAttributes_TMP_PROCESS_COMMAND="process.command",SemanticResourceAttributes_TMP_PROCESS_COMMAND_LINE="process.command_line",SemanticResourceAttributes_TMP_PROCESS_COMMAND_ARGS="process.command_args",SemanticResourceAttributes_TMP_PROCESS_OWNER="process.owner",SemanticResourceAttributes_TMP_PROCESS_RUNTIME_NAME="process.runtime.name",SemanticResourceAttributes_TMP_PROCESS_RUNTIME_VERSION="process.runtime.version",SemanticResourceAttributes_TMP_PROCESS_RUNTIME_DESCRIPTION="process.runtime.description",SemanticResourceAttributes_TMP_SERVICE_NAME="service.name",SemanticResourceAttributes_TMP_SERVICE_NAMESPACE="service.namespace",SemanticResourceAttributes_TMP_SERVICE_INSTANCE_ID="service.instance.id",SemanticResourceAttributes_TMP_SERVICE_VERSION="service.version",SemanticResourceAttributes_TMP_TELEMETRY_SDK_NAME="telemetry.sdk.name",SemanticResourceAttributes_TMP_TELEMETRY_SDK_LANGUAGE="telemetry.sdk.language",SemanticResourceAttributes_TMP_TELEMETRY_SDK_VERSION="telemetry.sdk.version",SemanticResourceAttributes_TMP_TELEMETRY_AUTO_VERSION="telemetry.auto.version",SemanticResourceAttributes_TMP_WEBENGINE_NAME="webengine.name",SemanticResourceAttributes_TMP_WEBENGINE_VERSION="webengine.version",SemanticResourceAttributes_TMP_WEBENGINE_DESCRIPTION="webengine.description",SemanticResourceAttributes_SEMRESATTRS_CLOUD_PROVIDER=null,SemanticResourceAttributes_SEMRESATTRS_CLOUD_ACCOUNT_ID=null,SemanticResourceAttributes_SEMRESATTRS_CLOUD_REGION=null,SemanticResourceAttributes_SEMRESATTRS_CLOUD_AVAILABILITY_ZONE=null,SemanticResourceAttributes_SEMRESATTRS_CLOUD_PLATFORM=null,SemanticResourceAttributes_SEMRESATTRS_AWS_ECS_CONTAINER_ARN=null,SemanticResourceAttributes_SEMRESATTRS_AWS_ECS_CLUSTER_ARN=null,SemanticResourceAttributes_SEMRESATTRS_AWS_ECS_LAUNCHTYPE=null,SemanticResourceAttributes_SEMRESATTRS_AWS_ECS_TASK_ARN=null,SemanticResourceAttributes_SEMRESATTRS_AWS_ECS_TASK_FAMILY=null,SemanticResourceAttributes_SEMRESATTRS_AWS_ECS_TASK_REVISION=null,SemanticResourceAttributes_SEMRESATTRS_AWS_EKS_CLUSTER_ARN=null,SemanticResourceAttributes_SEMRESATTRS_AWS_LOG_GROUP_NAMES=null,SemanticResourceAttributes_SEMRESATTRS_AWS_LOG_GROUP_ARNS=null,SemanticResourceAttributes_SEMRESATTRS_AWS_LOG_STREAM_NAMES=null,SemanticResourceAttributes_SEMRESATTRS_AWS_LOG_STREAM_ARNS=null,SemanticResourceAttributes_SEMRESATTRS_CONTAINER_NAME=null,SemanticResourceAttributes_SEMRESATTRS_CONTAINER_ID=null,SemanticResourceAttributes_SEMRESATTRS_CONTAINER_RUNTIME=null,SemanticResourceAttributes_SEMRESATTRS_CONTAINER_IMAGE_NAME=null,SemanticResourceAttributes_SEMRESATTRS_CONTAINER_IMAGE_TAG=null,SemanticResourceAttributes_SEMRESATTRS_DEPLOYMENT_ENVIRONMENT=null,SemanticResourceAttributes_SEMRESATTRS_DEVICE_ID=null,SemanticResourceAttributes_SEMRESATTRS_DEVICE_MODEL_IDENTIFIER=null,SemanticResourceAttributes_SEMRESATTRS_DEVICE_MODEL_NAME=null,SemanticResourceAttributes_SEMRESATTRS_FAAS_NAME=null,SemanticResourceAttributes_SEMRESATTRS_FAAS_ID=null,SemanticResourceAttributes_SEMRESATTRS_FAAS_VERSION=null,SemanticResourceAttributes_SEMRESATTRS_FAAS_INSTANCE=null,SemanticResourceAttributes_SEMRESATTRS_FAAS_MAX_MEMORY=null,SemanticResourceAttributes_SEMRESATTRS_HOST_ID=null,SemanticResourceAttributes_SEMRESATTRS_HOST_NAME=null,SemanticResourceAttributes_SEMRESATTRS_HOST_TYPE=null,SemanticResourceAttributes_SEMRESATTRS_HOST_ARCH=null,SemanticResourceAttributes_SEMRESATTRS_HOST_IMAGE_NAME=null,SemanticResourceAttributes_SEMRESATTRS_HOST_IMAGE_ID=null,SemanticResourceAttributes_SEMRESATTRS_HOST_IMAGE_VERSION=null,SemanticResourceAttributes_SEMRESATTRS_K8S_CLUSTER_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_NODE_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_NODE_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_NAMESPACE_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_POD_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_POD_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_CONTAINER_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_REPLICASET_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_REPLICASET_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_DEPLOYMENT_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_DEPLOYMENT_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_STATEFULSET_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_STATEFULSET_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_DAEMONSET_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_DAEMONSET_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_JOB_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_JOB_NAME=null,SemanticResourceAttributes_SEMRESATTRS_K8S_CRONJOB_UID=null,SemanticResourceAttributes_SEMRESATTRS_K8S_CRONJOB_NAME=null,SemanticResourceAttributes_SEMRESATTRS_OS_TYPE=null,SemanticResourceAttributes_SEMRESATTRS_OS_DESCRIPTION=null,SemanticResourceAttributes_SEMRESATTRS_OS_NAME=null,SemanticResourceAttributes_SEMRESATTRS_OS_VERSION=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_PID=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_EXECUTABLE_NAME=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_EXECUTABLE_PATH=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_COMMAND=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_COMMAND_LINE=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_COMMAND_ARGS=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_OWNER=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_RUNTIME_NAME=SemanticResourceAttributes_TMP_PROCESS_RUNTIME_NAME,SemanticResourceAttributes_SEMRESATTRS_PROCESS_RUNTIME_VERSION=null,SemanticResourceAttributes_SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION=null,SemanticResourceAttributes_SEMRESATTRS_SERVICE_NAME=SemanticResourceAttributes_TMP_SERVICE_NAME,SemanticResourceAttributes_SEMRESATTRS_SERVICE_NAMESPACE=null,SemanticResourceAttributes_SEMRESATTRS_SERVICE_INSTANCE_ID=null,SemanticResourceAttributes_SEMRESATTRS_SERVICE_VERSION=null,SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_NAME=SemanticResourceAttributes_TMP_TELEMETRY_SDK_NAME,SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_LANGUAGE=SemanticResourceAttributes_TMP_TELEMETRY_SDK_LANGUAGE,SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_VERSION=SemanticResourceAttributes_TMP_TELEMETRY_SDK_VERSION,SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_AUTO_VERSION=null,SemanticResourceAttributes_SEMRESATTRS_WEBENGINE_NAME=null,SemanticResourceAttributes_SEMRESATTRS_WEBENGINE_VERSION=null,SemanticResourceAttributes_SEMRESATTRS_WEBENGINE_DESCRIPTION=null,SemanticResourceAttributes_SemanticResourceAttributes=utils_createConstMap([SemanticResourceAttributes_TMP_CLOUD_PROVIDER,SemanticResourceAttributes_TMP_CLOUD_ACCOUNT_ID,SemanticResourceAttributes_TMP_CLOUD_REGION,SemanticResourceAttributes_TMP_CLOUD_AVAILABILITY_ZONE,SemanticResourceAttributes_TMP_CLOUD_PLATFORM,SemanticResourceAttributes_TMP_AWS_ECS_CONTAINER_ARN,SemanticResourceAttributes_TMP_AWS_ECS_CLUSTER_ARN,SemanticResourceAttributes_TMP_AWS_ECS_LAUNCHTYPE,SemanticResourceAttributes_TMP_AWS_ECS_TASK_ARN,SemanticResourceAttributes_TMP_AWS_ECS_TASK_FAMILY,SemanticResourceAttributes_TMP_AWS_ECS_TASK_REVISION,SemanticResourceAttributes_TMP_AWS_EKS_CLUSTER_ARN,SemanticResourceAttributes_TMP_AWS_LOG_GROUP_NAMES,SemanticResourceAttributes_TMP_AWS_LOG_GROUP_ARNS,SemanticResourceAttributes_TMP_AWS_LOG_STREAM_NAMES,SemanticResourceAttributes_TMP_AWS_LOG_STREAM_ARNS,SemanticResourceAttributes_TMP_CONTAINER_NAME,SemanticResourceAttributes_TMP_CONTAINER_ID,SemanticResourceAttributes_TMP_CONTAINER_RUNTIME,SemanticResourceAttributes_TMP_CONTAINER_IMAGE_NAME,SemanticResourceAttributes_TMP_CONTAINER_IMAGE_TAG,SemanticResourceAttributes_TMP_DEPLOYMENT_ENVIRONMENT,SemanticResourceAttributes_TMP_DEVICE_ID,SemanticResourceAttributes_TMP_DEVICE_MODEL_IDENTIFIER,SemanticResourceAttributes_TMP_DEVICE_MODEL_NAME,SemanticResourceAttributes_TMP_FAAS_NAME,SemanticResourceAttributes_TMP_FAAS_ID,SemanticResourceAttributes_TMP_FAAS_VERSION,SemanticResourceAttributes_TMP_FAAS_INSTANCE,SemanticResourceAttributes_TMP_FAAS_MAX_MEMORY,SemanticResourceAttributes_TMP_HOST_ID,SemanticResourceAttributes_TMP_HOST_NAME,SemanticResourceAttributes_TMP_HOST_TYPE,SemanticResourceAttributes_TMP_HOST_ARCH,SemanticResourceAttributes_TMP_HOST_IMAGE_NAME,SemanticResourceAttributes_TMP_HOST_IMAGE_ID,SemanticResourceAttributes_TMP_HOST_IMAGE_VERSION,SemanticResourceAttributes_TMP_K8S_CLUSTER_NAME,SemanticResourceAttributes_TMP_K8S_NODE_NAME,SemanticResourceAttributes_TMP_K8S_NODE_UID,SemanticResourceAttributes_TMP_K8S_NAMESPACE_NAME,SemanticResourceAttributes_TMP_K8S_POD_UID,SemanticResourceAttributes_TMP_K8S_POD_NAME,SemanticResourceAttributes_TMP_K8S_CONTAINER_NAME,SemanticResourceAttributes_TMP_K8S_REPLICASET_UID,SemanticResourceAttributes_TMP_K8S_REPLICASET_NAME,SemanticResourceAttributes_TMP_K8S_DEPLOYMENT_UID,SemanticResourceAttributes_TMP_K8S_DEPLOYMENT_NAME,SemanticResourceAttributes_TMP_K8S_STATEFULSET_UID,SemanticResourceAttributes_TMP_K8S_STATEFULSET_NAME,SemanticResourceAttributes_TMP_K8S_DAEMONSET_UID,SemanticResourceAttributes_TMP_K8S_DAEMONSET_NAME,SemanticResourceAttributes_TMP_K8S_JOB_UID,SemanticResourceAttributes_TMP_K8S_JOB_NAME,SemanticResourceAttributes_TMP_K8S_CRONJOB_UID,SemanticResourceAttributes_TMP_K8S_CRONJOB_NAME,SemanticResourceAttributes_TMP_OS_TYPE,SemanticResourceAttributes_TMP_OS_DESCRIPTION,SemanticResourceAttributes_TMP_OS_NAME,SemanticResourceAttributes_TMP_OS_VERSION,SemanticResourceAttributes_TMP_PROCESS_PID,SemanticResourceAttributes_TMP_PROCESS_EXECUTABLE_NAME,SemanticResourceAttributes_TMP_PROCESS_EXECUTABLE_PATH,SemanticResourceAttributes_TMP_PROCESS_COMMAND,SemanticResourceAttributes_TMP_PROCESS_COMMAND_LINE,SemanticResourceAttributes_TMP_PROCESS_COMMAND_ARGS,SemanticResourceAttributes_TMP_PROCESS_OWNER,SemanticResourceAttributes_TMP_PROCESS_RUNTIME_NAME,SemanticResourceAttributes_TMP_PROCESS_RUNTIME_VERSION,SemanticResourceAttributes_TMP_PROCESS_RUNTIME_DESCRIPTION,SemanticResourceAttributes_TMP_SERVICE_NAME,SemanticResourceAttributes_TMP_SERVICE_NAMESPACE,SemanticResourceAttributes_TMP_SERVICE_INSTANCE_ID,SemanticResourceAttributes_TMP_SERVICE_VERSION,SemanticResourceAttributes_TMP_TELEMETRY_SDK_NAME,SemanticResourceAttributes_TMP_TELEMETRY_SDK_LANGUAGE,SemanticResourceAttributes_TMP_TELEMETRY_SDK_VERSION,SemanticResourceAttributes_TMP_TELEMETRY_AUTO_VERSION,SemanticResourceAttributes_TMP_WEBENGINE_NAME,SemanticResourceAttributes_TMP_WEBENGINE_VERSION,SemanticResourceAttributes_TMP_WEBENGINE_DESCRIPTION]),SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD="alibaba_cloud",SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_AWS="aws",SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_AZURE="azure",SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_GCP="gcp",SemanticResourceAttributes_CLOUDPROVIDERVALUES_ALIBABA_CLOUD=null,SemanticResourceAttributes_CLOUDPROVIDERVALUES_AWS=null,SemanticResourceAttributes_CLOUDPROVIDERVALUES_AZURE=null,SemanticResourceAttributes_CLOUDPROVIDERVALUES_GCP=null,SemanticResourceAttributes_CloudProviderValues=utils_createConstMap([SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD,SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_AWS,SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_AZURE,SemanticResourceAttributes_TMP_CLOUDPROVIDERVALUES_GCP]),SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS="alibaba_cloud_ecs",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC="alibaba_cloud_fc",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_EC2="aws_ec2",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_ECS="aws_ecs",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_EKS="aws_eks",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA="aws_lambda",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK="aws_elastic_beanstalk",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_VM="azure_vm",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES="azure_container_instances",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_AKS="azure_aks",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS="azure_functions",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE="azure_app_service",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE="gcp_compute_engine",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN="gcp_cloud_run",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE="gcp_kubernetes_engine",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS="gcp_cloud_functions",SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE="gcp_app_engine",SemanticResourceAttributes_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AWS_EC2=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AWS_ECS=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AWS_EKS=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AWS_LAMBDA=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AZURE_VM=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AZURE_AKS=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS=null,SemanticResourceAttributes_CLOUDPLATFORMVALUES_GCP_APP_ENGINE=null,SemanticResourceAttributes_CloudPlatformValues=utils_createConstMap([SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_EC2,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_ECS,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_EKS,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_VM,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_AKS,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS,SemanticResourceAttributes_TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE]),SemanticResourceAttributes_TMP_AWSECSLAUNCHTYPEVALUES_EC2="ec2",SemanticResourceAttributes_TMP_AWSECSLAUNCHTYPEVALUES_FARGATE="fargate",SemanticResourceAttributes_AWSECSLAUNCHTYPEVALUES_EC2=null,SemanticResourceAttributes_AWSECSLAUNCHTYPEVALUES_FARGATE=null,SemanticResourceAttributes_AwsEcsLaunchtypeValues=utils_createConstMap([SemanticResourceAttributes_TMP_AWSECSLAUNCHTYPEVALUES_EC2,SemanticResourceAttributes_TMP_AWSECSLAUNCHTYPEVALUES_FARGATE]),SemanticResourceAttributes_TMP_HOSTARCHVALUES_AMD64="amd64",SemanticResourceAttributes_TMP_HOSTARCHVALUES_ARM32="arm32",SemanticResourceAttributes_TMP_HOSTARCHVALUES_ARM64="arm64",SemanticResourceAttributes_TMP_HOSTARCHVALUES_IA64="ia64",SemanticResourceAttributes_TMP_HOSTARCHVALUES_PPC32="ppc32",SemanticResourceAttributes_TMP_HOSTARCHVALUES_PPC64="ppc64",SemanticResourceAttributes_TMP_HOSTARCHVALUES_X86="x86",SemanticResourceAttributes_HOSTARCHVALUES_AMD64=null,SemanticResourceAttributes_HOSTARCHVALUES_ARM32=null,SemanticResourceAttributes_HOSTARCHVALUES_ARM64=null,SemanticResourceAttributes_HOSTARCHVALUES_IA64=null,SemanticResourceAttributes_HOSTARCHVALUES_PPC32=null,SemanticResourceAttributes_HOSTARCHVALUES_PPC64=null,SemanticResourceAttributes_HOSTARCHVALUES_X86=null,SemanticResourceAttributes_HostArchValues=utils_createConstMap([SemanticResourceAttributes_TMP_HOSTARCHVALUES_AMD64,SemanticResourceAttributes_TMP_HOSTARCHVALUES_ARM32,SemanticResourceAttributes_TMP_HOSTARCHVALUES_ARM64,SemanticResourceAttributes_TMP_HOSTARCHVALUES_IA64,SemanticResourceAttributes_TMP_HOSTARCHVALUES_PPC32,SemanticResourceAttributes_TMP_HOSTARCHVALUES_PPC64,SemanticResourceAttributes_TMP_HOSTARCHVALUES_X86]),SemanticResourceAttributes_TMP_OSTYPEVALUES_WINDOWS="windows",SemanticResourceAttributes_TMP_OSTYPEVALUES_LINUX="linux",SemanticResourceAttributes_TMP_OSTYPEVALUES_DARWIN="darwin",SemanticResourceAttributes_TMP_OSTYPEVALUES_FREEBSD="freebsd",SemanticResourceAttributes_TMP_OSTYPEVALUES_NETBSD="netbsd",SemanticResourceAttributes_TMP_OSTYPEVALUES_OPENBSD="openbsd",SemanticResourceAttributes_TMP_OSTYPEVALUES_DRAGONFLYBSD="dragonflybsd",SemanticResourceAttributes_TMP_OSTYPEVALUES_HPUX="hpux",SemanticResourceAttributes_TMP_OSTYPEVALUES_AIX="aix",SemanticResourceAttributes_TMP_OSTYPEVALUES_SOLARIS="solaris",SemanticResourceAttributes_TMP_OSTYPEVALUES_Z_OS="z_os",SemanticResourceAttributes_OSTYPEVALUES_WINDOWS=null,SemanticResourceAttributes_OSTYPEVALUES_LINUX=null,SemanticResourceAttributes_OSTYPEVALUES_DARWIN=null,SemanticResourceAttributes_OSTYPEVALUES_FREEBSD=null,SemanticResourceAttributes_OSTYPEVALUES_NETBSD=null,SemanticResourceAttributes_OSTYPEVALUES_OPENBSD=null,SemanticResourceAttributes_OSTYPEVALUES_DRAGONFLYBSD=null,SemanticResourceAttributes_OSTYPEVALUES_HPUX=null,SemanticResourceAttributes_OSTYPEVALUES_AIX=null,SemanticResourceAttributes_OSTYPEVALUES_SOLARIS=null,SemanticResourceAttributes_OSTYPEVALUES_Z_OS=null,SemanticResourceAttributes_OsTypeValues=utils_createConstMap([SemanticResourceAttributes_TMP_OSTYPEVALUES_WINDOWS,SemanticResourceAttributes_TMP_OSTYPEVALUES_LINUX,SemanticResourceAttributes_TMP_OSTYPEVALUES_DARWIN,SemanticResourceAttributes_TMP_OSTYPEVALUES_FREEBSD,SemanticResourceAttributes_TMP_OSTYPEVALUES_NETBSD,SemanticResourceAttributes_TMP_OSTYPEVALUES_OPENBSD,SemanticResourceAttributes_TMP_OSTYPEVALUES_DRAGONFLYBSD,SemanticResourceAttributes_TMP_OSTYPEVALUES_HPUX,SemanticResourceAttributes_TMP_OSTYPEVALUES_AIX,SemanticResourceAttributes_TMP_OSTYPEVALUES_SOLARIS,SemanticResourceAttributes_TMP_OSTYPEVALUES_Z_OS]),SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_CPP="cpp",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET="dotnet",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG="erlang",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_GO="go",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA="java",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS="nodejs",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_PHP="php",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON="python",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY="ruby",SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS="webjs",SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_CPP=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_DOTNET=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_ERLANG=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_GO=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_JAVA=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_NODEJS=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_PHP=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_PYTHON=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_RUBY=null,SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_WEBJS=SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS,SemanticResourceAttributes_TelemetrySdkLanguageValues=utils_createConstMap([SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_CPP,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_GO,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_PHP,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY,SemanticResourceAttributes_TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS]),esm_version_VERSION="1.25.1",sdk_info_a,sdk_info_SDK_INFO=(sdk_info_a={},sdk_info_a[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_NAME]="opentelemetry",sdk_info_a[SemanticResourceAttributes_SEMRESATTRS_PROCESS_RUNTIME_NAME]="browser",sdk_info_a[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]=SemanticResourceAttributes_TELEMETRYSDKLANGUAGEVALUES_WEBJS,sdk_info_a[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_VERSION]=esm_version_VERSION,sdk_info_a);function default_service_name_defaultServiceName(){return"unknown_service"}var Resource_assign=function(){return Resource_assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},Resource_Resource=function(){function e(e,t){var r,n=this;this._attributes=e,this.asyncAttributesPending=null!=t,this._syncAttributes=null!==(r=this._attributes)&&void 0!==r?r:{},this._asyncAttributesPromise=null==t?void 0:t.then((function(e){return n._attributes=Object.assign({},n._attributes,e),n.asyncAttributesPending=!1,e}),(function(e){return diag.debug("a resource's async attributes promise rejected: %s",e),n.asyncAttributesPending=!1,{}}))}return e.empty=function(){return e.EMPTY},e.default=function(){var t;return new e(((t={})[SemanticResourceAttributes_SEMRESATTRS_SERVICE_NAME]=default_service_name_defaultServiceName(),t[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]=sdk_info_SDK_INFO[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_LANGUAGE],t[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_NAME]=sdk_info_SDK_INFO[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_NAME],t[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_VERSION]=sdk_info_SDK_INFO[SemanticResourceAttributes_SEMRESATTRS_TELEMETRY_SDK_VERSION],t))},Object.defineProperty(e.prototype,"attributes",{get:function(){var e;return this.asyncAttributesPending&&diag.error("Accessing resource attributes before async attributes settled"),null!==(e=this._attributes)&&void 0!==e?e:{}},enumerable:!1,configurable:!0}),e.prototype.waitForAsyncAttributes=function(){return esm_Resource_awaiter(this,void 0,void 0,(function(){return esm_Resource_generator(this,(function(e){switch(e.label){case 0:return this.asyncAttributesPending?[4,this._asyncAttributesPromise]:[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},e.prototype.merge=function(t){var r,n=this;if(!t)return this;var o=Resource_assign(Resource_assign({},this._syncAttributes),null!==(r=t._syncAttributes)&&void 0!==r?r:t.attributes);if(!this._asyncAttributesPromise&&!t._asyncAttributesPromise)return new e(o);var i=Promise.all([this._asyncAttributesPromise,t._asyncAttributesPromise]).then((function(e){var r,o=esm_Resource_read(e,2),i=o[0],a=o[1];return Resource_assign(Resource_assign(Resource_assign(Resource_assign({},n._syncAttributes),i),null!==(r=t._syncAttributes)&&void 0!==r?r:t.attributes),a)}));return new e(o,i)},e.EMPTY=new e({}),e}();function initializeTelemetry(e,t,r){const n={url:`${e}/v1/traces`,headers:parseDelimitedValues(t)},o=parseDelimitedValues(r);o[SemanticResourceAttributes_SemanticResourceAttributes.SERVICE_NAME]="browser";const i=new WebTracerProvider({resource:new Resource_Resource(o)});i.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter)),i.addSpanProcessor(new SimpleSpanProcessor(new OTLPTraceExporter(n))),i.register({contextManager:new ZoneContextManager}),registerInstrumentations({instrumentations:[new DocumentLoadInstrumentation]})}function parseDelimitedValues(e){const t=e.split(","),r={};return t.forEach((e=>{const[t,n]=e.split("=");r[t.trim()]=n.trim()})),r}BrowserTelemetry=__webpack_exports__})();
\ No newline at end of file
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/scripts/bundle.js.LICENSE.txt b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/scripts/bundle.js.LICENSE.txt
new file mode 100644
index 0000000000..e2f3eab2a5
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.Web/wwwroot/scripts/bundle.js.LICENSE.txt
@@ -0,0 +1,5 @@
+/**
+ * @license Angular v
+ * (c) 2010-2024 Google LLC. https://angular.io/
+ * License: MIT
+ */
diff --git a/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.sln b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.sln
new file mode 100644
index 0000000000..37e5a28b42
--- /dev/null
+++ b/docs/fundamentals/dashboard/snippets/BrowserTelemetry/BrowserTelemetry.sln
@@ -0,0 +1,36 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.12.35309.182
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BrowserTelemetry.AppHost", "BrowserTelemetry.AppHost\BrowserTelemetry.AppHost.csproj", "{951E74FF-53D4-4229-8CE9-10765CB26F20}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BrowserTelemetry.Web", "BrowserTelemetry.Web\BrowserTelemetry.Web.csproj", "{964B5153-259F-4354-B7C8-AAA3296C31ED}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BrowserTelemetry.ServiceDefaults", "BrowserTelemetry.ServiceDefaults\BrowserTelemetry.ServiceDefaults.csproj", "{F8FAC172-19CF-4A9C-B815-3FDB087F775A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {951E74FF-53D4-4229-8CE9-10765CB26F20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {951E74FF-53D4-4229-8CE9-10765CB26F20}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {951E74FF-53D4-4229-8CE9-10765CB26F20}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {951E74FF-53D4-4229-8CE9-10765CB26F20}.Release|Any CPU.Build.0 = Release|Any CPU
+ {964B5153-259F-4354-B7C8-AAA3296C31ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {964B5153-259F-4354-B7C8-AAA3296C31ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {964B5153-259F-4354-B7C8-AAA3296C31ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {964B5153-259F-4354-B7C8-AAA3296C31ED}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8FAC172-19CF-4A9C-B815-3FDB087F775A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F8FAC172-19CF-4A9C-B815-3FDB087F775A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8FAC172-19CF-4A9C-B815-3FDB087F775A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F8FAC172-19CF-4A9C-B815-3FDB087F775A}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {82318A1B-10CB-4CB5-96FE-D6C193E22839}
+ EndGlobalSection
+EndGlobal
diff --git a/docs/fundamentals/integrations-overview.md b/docs/fundamentals/integrations-overview.md
index 6073efa131..8c01225b14 100644
--- a/docs/fundamentals/integrations-overview.md
+++ b/docs/fundamentals/integrations-overview.md
@@ -56,7 +56,7 @@ When you add a client integration to a project within your .NET Aspire solution,
## Official integrations
-.NET Aspire provides many integrations to help you build cloud-native applications. These integrations are designed to work seamlessly with the .NET Aspire app host and client libraries. The following sections detail cloud-agnostic, Azure-specific, and Amazon Web Services (AWS) integrations.
+.NET Aspire provides many integrations to help you build cloud-native applications. These integrations are designed to work seamlessly with the .NET Aspire app host and client libraries. The following sections detail cloud-agnostic, Azure-specific, Amazon Web Services (AWS), and Community Toolkit integrations.
### Cloud-agnostic integrations
@@ -79,7 +79,7 @@ The following section details cloud-agnostic .NET Aspire integrations with links
| - **Learn more**: [📄 PostgreSQL - EF Core](../database/postgresql-entity-framework-integration.md) - **Hosting**: [📦 Aspire.Hosting.PostgreSQL](https://www.nuget.org/packages/Aspire.Hosting.PostgreSQL) - **Client**: [📦 Aspire.Npgsql.EntityFrameworkCore.PostgreSQL](https://www.nuget.org/packages/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL) | A library for accessing PostgreSQL databases using [Entity Framework Core](https://www.npgsql.org/efcore/index.html). |
| - **Learn more**: [📄 PostgreSQL](../database/postgresql-integration.md) - **Hosting**: [📦 Aspire.Hosting.PostgreSQL](https://www.nuget.org/packages/Aspire.Hosting.PostgreSQL) - **Client**: [📦 Aspire.Npgsql](https://www.nuget.org/packages/Aspire.Npgsql) | A library for accessing [PostgreSQL](https://www.npgsql.org/doc/index.html) databases. |
| - **Learn more**: [📄 Qdrant](../database/qdrant-integration.md) - **Hosting**: [📦 Aspire.Hosting.Qdrant](https://www.nuget.org/packages/Aspire.Hosting.Qdrant) - **Client**: [📦 Aspire.Qdrant.Client](https://www.nuget.org/packages/Aspire.Qdrant.Client) | A library for accessing [Qdrant](https://qdrant.tech/) databases. |
-| - **Learn more**: [📄 RabbitMQ](../messaging/rabbitmq-client-integration.md) - **Hosting**: [📦 Aspire.Hosting.RabbitMQ](https://www.nuget.org/packages/Aspire.Hosting.RabbitMQ) - **Client**: [📦 Aspire.RabbitMQ.Client](https://www.nuget.org/packages/Aspire.RabbitMQ.Client) | A library for accessing [RabbitMQ](https://www.rabbitmq.com/dotnet.html). |
+| - **Learn more**: [📄 RabbitMQ](../messaging/rabbitmq-integration.md) - **Hosting**: [📦 Aspire.Hosting.RabbitMQ](https://www.nuget.org/packages/Aspire.Hosting.RabbitMQ) - **Client**: [📦 Aspire.RabbitMQ.Client](https://www.nuget.org/packages/Aspire.RabbitMQ.Client) | A library for accessing [RabbitMQ](https://www.rabbitmq.com/dotnet.html). |
| - **Learn more**: [📄 Redis Distributed Caching](../caching/stackexchange-redis-distributed-caching-integration.md) - **Hosting**: [📦 Aspire.Hosting.Redis](https://www.nuget.org/packages/Aspire.Hosting.Redis), [📦 Aspire.Hosting.Garnet](https://www.nuget.org/packages/Aspire.Hosting.Garnet), or [📦 Aspire.Hosting.Valkey](https://www.nuget.org/packages/Aspire.Hosting.Valkey) - **Client**: [📦 Aspire.StackExchange.Redis.DistributedCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.DistributedCaching) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches for [distributed caching](/aspnet/core/performance/caching/distributed). |
| - **Learn more**: [📄 Redis Output Caching](../caching/stackexchange-redis-output-caching-integration.md) - **Hosting**: [📦 Aspire.Hosting.Redis](https://www.nuget.org/packages/Aspire.Hosting.Redis), [📦 Aspire.Hosting.Garnet](https://www.nuget.org/packages/Aspire.Hosting.Garnet), or [📦 Aspire.Hosting.Valkey](https://www.nuget.org/packages/Aspire.Hosting.Valkey) - **Client**: [📦 Aspire.StackExchange.Redis.OutputCaching](https://www.nuget.org/packages/Aspire.StackExchange.Redis.OutputCaching) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches for [output caching](/aspnet/core/performance/caching/output). |
| - **Learn more**: [📄 Redis](../caching/stackexchange-redis-integration.md) - **Hosting**: [📦 Aspire.Hosting.Redis](https://www.nuget.org/packages/Aspire.Hosting.Redis), [📦 Aspire.Hosting.Garnet](https://www.nuget.org/packages/Aspire.Hosting.Garnet), or [📦 Aspire.Hosting.Valkey](https://www.nuget.org/packages/Aspire.Hosting.Valkey) - **Client**: [📦 Aspire.StackExchange.Redis](https://www.nuget.org/packages/Aspire.StackExchange.Redis) | A library for accessing [Redis](https://stackexchange.github.io/StackExchange.Redis/) caches. |
@@ -124,3 +124,20 @@ Azure integrations configure applications to use Azure resources. These hosting
For more information, see [GitHub: Aspire.Hosting.AWS library](https://github.com/dotnet/aspire/tree/main/src/Aspire.Hosting.AWS).
+
+### Community Toolkit integrations
+
+> [!NOTE]
+> The Community Toolkit integrations are community-driven and maintained by the .NET Aspire community. These integrations are not officially supported by the .NET Aspire team.
+
+
+| Integration docs and NuGet packages | Description |
+|--|--|
+| - **Learn More**: [📄 Azure Static Web Apps emulator](../community-toolkit/hosting-azure-static-web-apps.md) - **Hosting**: [📦 Aspire.CommunityToolkit.Hosting.Azure.StaticWebApps](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Azure.StaticWebApps) - **Client**: N/A | A hosting integration for the [Azure Static Web Apps emulator](/azure/static-web-apps/static-web-apps-cli-overview) (Note: this does not support deployment of a project to Azure Static Web Apps). |
+| - **Learn More**: [📄 Go hosting](../community-toolkit/hosting-golang.md) - **Hosting**: [📦 Aspire.CommunityToolkit.Hosting.Golang](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Golang) - **Client**: N/A | A hosting integration for Go apps. |
+| **Learn More**: [📄 Java/Spring hosting](../community-toolkit/hosting-java.md) - **Hosting**: [📦 Aspire.CommunityToolkit.Hosting.Java](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Java) - **Client**: N/A | A integration for running Java code in .NET Aspire either using the local JDK or using a container. |
+| - **Learn More**: [📄 Node.js hosting extensions](../community-toolkit/hosting-nodejs-extensions.md) - **Hosting**: [📦 Aspire.CommunityToolkit.Hosting.NodeJs.Extensions](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.NodeJS.Extensions) - **Client**: N/A | An integration that contains some additional extensions for running Node.js applications |
+| - **Learn More**: [📄 Ollama](../community-toolkit/ollama.md) - **Hosting**: [📦 Aspire.CommunityToolkit.Hosting.Ollama](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.Hosting.Ollama) - **Client**: [📦 Aspire.CommunitToolkit.OllamaSharp](https://github.com/orgs/CommunityToolkit/packages/nuget/package/Aspire.CommunityToolkit.OllamaSharp) | An Aspire component leveraging the [Ollama](https://ollama.com) container with support for downloading a model on startup. |
+
+
+For more information, see [GitHub: Aspire.CommunityToolkit library](https://github.com/CommunityToolkit/Aspire).
diff --git a/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj b/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/healthz/Healthz.ServiceDefaults/Healthz.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
index b36e0e0ef5..c367ffaca8 100644
--- a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj
index 440a75ffb5..7876db278b 100644
--- a/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj
+++ b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj b/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj
index 1df4c9b3eb..0b156b96fa 100644
--- a/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj
index 1bf3df3563..fe74c0b85c 100644
--- a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj
index b0611af713..a0d23b9301 100644
--- a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj b/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj b/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj
index fcbb9469bd..cb28de8306 100644
--- a/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj
+++ b/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj b/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj
index 254be99204..b494b969a4 100644
--- a/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj
+++ b/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj b/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj
index 02fb76c766..9a1b9a36d2 100644
--- a/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj b/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/template/YourAppName/YourAppName.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj
index 9380625cf7..41c519e6b7 100644
--- a/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj b/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj
index 044610699c..427a5db149 100644
--- a/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj
+++ b/docs/fundamentals/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj
index 417c97181b..1530e8ebed 100644
--- a/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/snippets/testing/nunit/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/testing/nunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj b/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj
index d3aa6fa50c..dcb1ae7c08 100644
--- a/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj
+++ b/docs/fundamentals/snippets/testing/nunit/AspireApp.Tests/AspireApp.Tests.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj
index 57dbcfe3ad..6f04deae4b 100644
--- a/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj b/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj
index 5a46fcc930..49d5cc84c1 100644
--- a/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj
+++ b/docs/fundamentals/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj
@@ -10,10 +10,10 @@
-
+
-
+
diff --git a/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj b/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj
index f05dae3f39..ae4415780c 100644
--- a/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj
+++ b/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj
@@ -15,11 +15,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj b/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj b/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj
index 37a90f7b56..b47d6948f1 100644
--- a/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj
+++ b/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj b/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj
+++ b/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj
index ecf2ffd5a8..e13582862f 100644
--- a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj
+++ b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj
index 1dacfbff4f..eb79c9d89b 100644
--- a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj
+++ b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj
index bc1597fe97..90c43be910 100644
--- a/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj
+++ b/docs/get-started/snippets/quickstart/AspireSample/AspireSample.Web/AspireSample.Web.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/includes/data-bind-mount-vs-volumes.md b/docs/includes/data-bind-mount-vs-volumes.md
new file mode 100644
index 0000000000..b705d79cda
--- /dev/null
+++ b/docs/includes/data-bind-mount-vs-volumes.md
@@ -0,0 +1,6 @@
+---
+ms.topic: include
+---
+
+> [!TIP]
+> Data [bind mounts](https://docs.docker.com/engine/storage/bind-mounts/) have limited functionality compared to [volumes](https://docs.docker.com/engine/storage/volumes/), which offer better performance, portability, and security, making them more suitable for production environments. However, bind mounts allow direct access and modification of files on the host system, ideal for development and testing where real-time changes are needed.
diff --git a/docs/includes/includes-client.md b/docs/includes/includes-client.md
new file mode 100644
index 0000000000..190008f043
--- /dev/null
+++ b/docs/includes/includes-client.md
@@ -0,0 +1,5 @@
+---
+ms.topic: include
+---
+
+**Includes:** :::image type="icon" source="../media/yes-icon.svg" border="false"::: [Client integration](../fundamentals/integrations-overview.md#client-integrations) not :::image type="icon" source="../media/no-icon.svg" border="false"::: [Hosting integration](../fundamentals/integrations-overview.md#hosting-integrations)
diff --git a/docs/includes/includes-hosting-and-client.md b/docs/includes/includes-hosting-and-client.md
new file mode 100644
index 0000000000..184e2cabb4
--- /dev/null
+++ b/docs/includes/includes-hosting-and-client.md
@@ -0,0 +1,5 @@
+---
+ms.topic: include
+---
+
+**Includes:** :::image type="icon" source="../media/yes-icon.svg" border="false"::: [Hosting integration](../fundamentals/integrations-overview.md#hosting-integrations) and :::image type="icon" source="../media/yes-icon.svg" border="false"::: [Client integration](../fundamentals/integrations-overview.md#client-integrations)
diff --git a/docs/includes/includes-hosting.md b/docs/includes/includes-hosting.md
new file mode 100644
index 0000000000..0b3b062c30
--- /dev/null
+++ b/docs/includes/includes-hosting.md
@@ -0,0 +1,5 @@
+---
+ms.topic: include
+---
+
+**Includes:** :::image type="icon" source="../media/yes-icon.svg" border="false"::: [Hosting integration](../fundamentals/integrations-overview.md#hosting-integrations) not :::image type="icon" source="../media/no-icon.svg" border="false"::: [Client integration](../fundamentals/integrations-overview.md#client-integrations)
diff --git a/docs/index.yml b/docs/index.yml
index 62ccce35ab..72a3e1b40c 100644
--- a/docs/index.yml
+++ b/docs/index.yml
@@ -140,8 +140,8 @@ conceptualContent:
text: Azure Web PubSub
url: messaging/azure-web-pubsub-integration.md
- itemType: how-to-guide
- text: RabbitMQ client
- url: messaging/rabbitmq-client-integration.md
+ text: RabbitMQ
+ url: messaging/rabbitmq-integration.md
- itemType: how-to-guide
text: Apache Kafka
url: messaging/kafka-integration.md
diff --git a/docs/logging/seq-integration.md b/docs/logging/seq-integration.md
index f18e20a7d5..25e3e9a11e 100644
--- a/docs/logging/seq-integration.md
+++ b/docs/logging/seq-integration.md
@@ -23,7 +23,7 @@ dotnet add package Aspire.Seq
```xml
+ Version="*" />
```
---
@@ -54,7 +54,7 @@ dotnet add package Aspire.Hosting.Seq
```xml
+ Version="*" />
```
---
diff --git a/docs/media/client-icon.svg b/docs/media/client-icon.svg
new file mode 100644
index 0000000000..9e5df982a0
--- /dev/null
+++ b/docs/media/client-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/media/hosting-icon.svg b/docs/media/hosting-icon.svg
new file mode 100644
index 0000000000..71c4a322ca
--- /dev/null
+++ b/docs/media/hosting-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/media/no-client-icon.svg b/docs/media/no-client-icon.svg
new file mode 100644
index 0000000000..5ee033d87e
--- /dev/null
+++ b/docs/media/no-client-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/media/no-hosting.svg b/docs/media/no-hosting.svg
new file mode 100644
index 0000000000..9bbdfd084f
--- /dev/null
+++ b/docs/media/no-hosting.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/media/no-icon.svg b/docs/media/no-icon.svg
new file mode 100644
index 0000000000..f9a79d7d33
--- /dev/null
+++ b/docs/media/no-icon.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/docs/media/yes-icon.svg b/docs/media/yes-icon.svg
new file mode 100644
index 0000000000..7fc0f0a4f4
--- /dev/null
+++ b/docs/media/yes-icon.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/docs/messaging/azure-event-hubs-integration.md b/docs/messaging/azure-event-hubs-integration.md
index 0a451eb3be..042eab4389 100644
--- a/docs/messaging/azure-event-hubs-integration.md
+++ b/docs/messaging/azure-event-hubs-integration.md
@@ -36,7 +36,7 @@ dotnet add package Aspire.Azure.Messaging.EventHubs
```xml
+ Version="*" />
```
---
@@ -92,7 +92,7 @@ dotnet add package Aspire.Hosting.Azure.EventHubs
```xml
+ Version="*" />
```
---
diff --git a/docs/messaging/azure-service-bus-integration.md b/docs/messaging/azure-service-bus-integration.md
index d22adba075..ba4d7f9a51 100644
--- a/docs/messaging/azure-service-bus-integration.md
+++ b/docs/messaging/azure-service-bus-integration.md
@@ -31,7 +31,7 @@ dotnet add package Aspire.Azure.Messaging.ServiceBus
```xml
+ Version="*" />
```
---
@@ -69,7 +69,7 @@ dotnet add package Aspire.Hosting.Azure.ServiceBus
```xml
+ Version="*" />
```
---
@@ -113,14 +113,14 @@ The Service Bus integration supports ` delegate to set up some or all the options inline, for example to set the `FullyQualifiedNamespace`:
```csharp
-builder.AddAzureServiceBus(
+builder.AddAzureServiceBusClient(
"messaging",
static settings => settings.FullyQualifiedNamespace = "YOUR_SERVICE_BUS_NAMESPACE");
```
@@ -128,40 +128,13 @@ builder.AddAzureServiceBus(
You can also set up the [ServiceBusClientOptions](/dotnet/api/azure.messaging.servicebus.servicebusclientoptions) using `Action>` delegate, the second parameter of the `AddAzureServiceBus` method. For example to set the `ServiceBusClient` ID to identify the client:
```csharp
-builder.AddAzureServiceBus(
+builder.AddAzureServiceBusClient(
"messaging",
static clientBuilder =>
clientBuilder.ConfigureOptions(
static options => options.Identifier = "CLIENT_ID"));
```
-### Named instances
-
-If you want to add more than one [ServiceBusClient](/dotnet/api/azure.messaging.servicebus.servicebusclient) you can use named instances. Load the named configuration section from the JSON config by calling the `AddAzureServiceBus` method and passing in the `INSTANCE_NAME`.
-
-```csharp
-builder.AddAzureServiceBus("INSTANCE_NAME");
-```
-
-The corresponding configuration JSON is defined as follows:
-
-```json
-{
- "Aspire": {
- "Azure": {
- "Messaging": {
- "INSTANCE_NAME": {
- "FullyQualifiedNamespace": "YOUR_SERVICE_BUS_NAMESPACE",
- "ClientOptions": {
- "Identifier": "CLIENT_ID"
- }
- }
- }
- }
- }
-}
-```
-
### Configuration options
The following configurable options are exposed through the class:
diff --git a/docs/messaging/azure-web-pubsub-integration.md b/docs/messaging/azure-web-pubsub-integration.md
index 30a5b4697b..ff6943c075 100644
--- a/docs/messaging/azure-web-pubsub-integration.md
+++ b/docs/messaging/azure-web-pubsub-integration.md
@@ -28,7 +28,7 @@ dotnet add package Aspire.Azure.Messaging.WebPubSub
```xml
+ Version="*" />
```
---
@@ -68,7 +68,7 @@ dotnet add package Aspire.Hosting.Azure.WebPubSub
```xml
+ Version="*" />
```
---
diff --git a/docs/messaging/kafka-integration.md b/docs/messaging/kafka-integration.md
index 2eedd035d5..fc16baa21f 100644
--- a/docs/messaging/kafka-integration.md
+++ b/docs/messaging/kafka-integration.md
@@ -1,122 +1,233 @@
---
title: .NET Aspire Apache Kafka integration
description: Learn how to use the .NET Aspire Apache Kafka client message-broker integration.
-ms.topic: how-to
-ms.date: 08/12/2024
+ms.date: 10/11/2024
+uid: messaging/kafka-integration
---
# .NET Aspire Apache Kafka integration
-In this article, you learn how to use the .NET Aspire Apache Kafka client message-broker. The `Aspire.Confluent.Kafka` library registers an [`IProducer`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.IProducer-2.html) and an [`IConsumer`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.IConsumer-2.html) in the dependency injection (DI) container for connecting to a Apache Kafka server. It enables corresponding health check, logging and telemetry.
+[!INCLUDE [includes-hosting-and-client](../includes/includes-hosting-and-client.md)]
-## Get started
+[Apache Kafka](https://kafka.apache.org/) is an open-source distributed event streaming platform. It's useful for building real-time data pipelines and streaming applications. The .NET Aspire Apache Kafka integration enables you to connect to existing Kafka instances, or create new instances from .NET with the [`docker.io/confluentinc/confluent-local` container image](https://hub.docker.com/r/confluentinc/cp-kafka).
-To get started with the .NET Aspire Apache Kafka integration, install the [Aspire.Confluent.Kafka](https://www.nuget.org/packages/Aspire.Confluent.Kafka) NuGet package in the client-consuming project, i.e., the project for the application that uses the Apache Kafka client.
+## Hosting integration
+
+The Apache Kafka hosting integration models a Kafka server as the type. To access this type, install the [📦 Aspire.Hosting.Kafka](https://www.nuget.org/packages/Aspire.Hosting.Kafka) NuGet package in the [app host](xref:aspire/app-host) project, then add it with the builder.
### [.NET CLI](#tab/dotnet-cli)
```dotnetcli
-dotnet add package Aspire.Confluent.Kafka
+dotnet add package Aspire.Hosting.Kafka
```
### [PackageReference](#tab/package-reference)
```xml
-
+
```
---
For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
-## Example usage
+### Add Kafka server resource
-In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method to register an `IProducer` for use via the dependency injection container. The method takes two generic parameters corresponding to the type of the key and the type of the message to send to the broker. These generic parameters will be used to new an instance of `ProducerBuilder`. This method also take connection name parameter.
+In your app host project, call on the `builder` instance to add a Kafka server resource:
```csharp
-builder.AddKafkaProducer("messaging");
+var builder = DistributedApplication.CreateBuilder(args);
+
+var kafka = builder.AddKafka("kafka");
+
+builder.AddProject()
+ .WithReference(kafka);
+
+// After adding all resources, run the app...
```
-You can then retrieve the `IProducer` instance using dependency injection. For example, to retrieve the producer from an `IHostedService`:
+When .NET Aspire adds a container image to the app host, as shown in the preceding example with the `docker.io/confluentinc/confluent-local` image, it creates a new Kafka server instance on your local machine. A reference to your Kafka server (the `kafka` variable) is added to the `ExampleProject`. The Kafka server resource includes default ports
+
+The method configures a connection in the `ExampleProject` named `"kafka"`. For more information, see [Container resource lifecycle](../fundamentals/app-host-overview.md#container-resource-lifecycle).
+
+> [!TIP]
+> If you'd rather connect to an existing Kafka server, call instead. For more information, see [Reference existing resources](../fundamentals/app-host-overview.md#reference-existing-resources).
+
+### Add Kafka UI
+
+To add the [Kafka UI](https://hub.docker.com/r/provectuslabs/kafka-ui) to the Kafka server resource, call the method:
```csharp
-internal sealed class MyWorker(IProducer producer) : BackgroundService
-{
- // Use producer...
-}
+var builder = DistributedApplication.CreateBuilder(args);
+
+var kafka = builder.AddKafka("kafka")
+ .WithKafkaUI();
+
+builder.AddProject()
+ .WithReference(kafka);
+
+// After adding all resources, run the app...
```
-## App host usage
+The Kafka UI is a free, open-source web UI to monitor and manage Apache Kafka clusters. .NET Aspire adds another container image [`docker.io/provectuslabs/kafka-ui`](https://hub.docker.com/r/provectuslabs/kafka-ui) to the app host that runs the Kafka UI.
+
+### Change the Kafka UI host port
+
+To change the Kafka UI host port, chain a call to the method:
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+var kafka = builder.AddKafka("kafka")
+ .WithKafkaUI()
+ .WithHostPort(9100);
+
+builder.AddProject()
+ .WithReference(kafka);
+
+// After adding all resources, run the app...
+```
+
+The Kafka UI is accessible at `http://localhost:9100` in the preceding example.
+
+### Add Kafka server resource with data volume
+
+To add a data volume to the Kafka server resource, call the method on the Kafka server resource:
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+var kafka = builder.AddKafka("kafka")
+ .WithDataVolume(isReadOnly: false);
+
+builder.AddProject()
+ .WithReference(kafka);
+
+// After adding all resources, run the app...
+```
+
+The data volume is used to persist the Kafka server data outside the lifecycle of its container. The data volume is mounted at the `/var/lib/kafka/data` path in the Kafka server container and when a `name` parameter isn't provided, the name is generated at random. For more information on data volumes and details on why they're preferred over [bind mounts](#add-kafka-server-resource-with-data-bind-mount), see [Docker docs: Volumes](https://docs.docker.com/engine/storage/volumes).
+
+### Add Kafka server resource with data bind mount
-To model the Kafka resource in the app host, install the [Aspire.Hosting.Kafka](https://www.nuget.org/packages/Aspire.Hosting.Kafka) NuGet package in the [app host](xref:aspire/app-host) project.
+To add a data bind mount to the Kafka server resource, call the method:
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+var kafka = builder.AddKafka("kafka")
+ .WithDataBindMount(
+ source: @"C:\Kafka\Data",
+ isReadOnly: false);
+
+builder.AddProject()
+ .WithReference(kafka);
+
+// After adding all resources, run the app...
+```
+
+[!INCLUDE [data-bind-mount-vs-volumes](../includes/data-bind-mount-vs-volumes.md)]
+
+Data bind mounts rely on the host machine's filesystem to persist the Kafka server data across container restarts. The data bind mount is mounted at the `C:\Kafka\Data` on Windows (or `/Kafka/Data` on Unix) path on the host machine in the Kafka server container. For more information on data bind mounts, see [Docker docs: Bind mounts](https://docs.docker.com/engine/storage/bind-mounts).
+
+### Hosting integration health checks
+
+The Kafka hosting integration automatically adds a health check for the Kafka server resource. The health check verifies that a Kafka producer with the specified connection name is able to connect and persist a topic to the Kafka server.
+
+The hosting integration relies on the [📦 AspNetCore.HealthChecks.Kafka](https://www.nuget.org/packages/AspNetCore.HealthChecks.Kafka) NuGet package.
+
+## Client integration
+
+To get started with the .NET Aspire Apache Kafka integration, install the [📦 Aspire.Confluent.Kafka](https://www.nuget.org/packages/Aspire.Confluent.Kafka) NuGet package in the client-consuming project, that is, the project for the application that uses the Apache Kafka client.
### [.NET CLI](#tab/dotnet-cli)
```dotnetcli
-dotnet add package Aspire.Hosting.Kafka
+dotnet add package Aspire.Confluent.Kafka
```
### [PackageReference](#tab/package-reference)
```xml
-
+
```
---
-In your app host project, register a Kafka container and consume the connection using the following methods:
+### Add Kafka producer
+
+In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method to register an `IProducer` for use via the dependency injection container. The method takes two generic parameters corresponding to the type of the key and the type of the message to send to the broker. These generic parameters are used by `AddKafkaProducer` to create an instance of `ProducerBuilder`. This method also takes connection name parameter.
```csharp
-var builder = DistributedApplication.CreateBuilder(args);
+builder.AddKafkaProducer("messaging");
+```
-var messaging = builder.AddKafka("messaging")
- .WithKafkaUI();
+You can then retrieve the `IProducer` instance using dependency injection. For example, to retrieve the producer from an `IHostedService`:
-var myService = builder.AddProject()
- .WithReference(messaging);
+```csharp
+internal sealed class Worker(IProducer producer) : BackgroundService
+{
+ // Use producer...
+}
```
-The `WithKafkaUI()` extension method which provides a web-based interface to view the state of the Kafka container instance. The `WithReference` method configures a connection in the `MyService` project named `messaging`. In the _:::no-loc text="Program.cs":::_ file of `MyService`, the Apache Kafka broker connection can be consumed using:
+For more information on workers, see [Worker services in .NET](/dotnet/core/extensions/workers).
+
+### Add Kafka consumer
+
+To register an `IConsumer` for use via the dependency injection container, call the extension method in the _:::no-loc text="Program.cs":::_ file of your client-consuming project. The method takes two generic parameters corresponding to the type of the key and the type of the message to receive from the broker. These generic parameters are used by `AddKafkaConsumer` to create an instance of `ConsumerBuilder`. This method also takes connection name parameter.
```csharp
-builder.AddKafkaProducer("messaging");
+builder.AddKafkaConsumer("messaging");
```
-or
+You can then retrieve the `IConsumer` instance using dependency injection. For example, to retrieve the consumer from an `IHostedService`:
```csharp
-builder.AddKafkaConsumer("messaging");
+internal sealed class Worker(IConsumer consumer) : BackgroundService
+{
+ // Use consumer...
+}
```
-## Configuration
+### Add keyed Kafka producers or consumers
+
+There might be situations where you want to register multiple producer or consumer instances with different connection names. To register keyed Kafka producers or consumers, call the appropriate API:
+
+- : Registers a keyed Kafka producer.
+- : Registers a keyed Kafka consumer.
+
+For more information on keyed services, see [.NET dependency injection: Keyed services](/dotnet/core/extensions/dependency-injection#keyed-services).
+
+### Configuration
The .NET Aspire Apache Kafka integration provides multiple options to configure the connection based on the requirements and conventions of your project.
-### Use a connection string
+#### Use a connection string
When using a connection string from the `ConnectionStrings` configuration section, you can provide the name of the connection string when calling `builder.AddKafkaProducer()` or `builder.AddKafkaProducer()`:
```csharp
-builder.AddKafkaProducer("myConnection");
+builder.AddKafkaProducer("kafka-producer");
```
-And then the connection string will be retrieved from the `ConnectionStrings` configuration section:
+Then the connection string is retrieved from the `ConnectionStrings` configuration section:
```json
{
"ConnectionStrings": {
- "myConnection": "broker:9092"
+ "kafka-producer": "broker:9092"
}
}
```
-The value provided as connection string will be set to the `BootstrapServers` property of the produced `IProducer` or `IConsumer` instance. Refer to [BootstrapServers](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ClientConfig.html#Confluent_Kafka_ClientConfig_BootstrapServers) for more information.
+The connection string value is set to the `BootstrapServers` property of the produced `IProducer` or `IConsumer` instance. For more information, see [BootstrapServers](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ClientConfig.html#Confluent_Kafka_ClientConfig_BootstrapServers).
-### Use configuration providers
+#### Use configuration providers
-The .NET Aspire Apache Kafka integration supports . It loads the `KafkaProducerSettings` or `KafkaConsumerSettings` from configuration by respectively using the `Aspire:Confluent:Kafka:Producer` and `Aspire.Confluent:Kafka:Consumer` keys. This example _:::no-loc text="appsettings.json":::_ configures some of the options:
+The .NET Aspire Apache Kafka integration supports . It loads the or from configuration by respectively using the `Aspire:Confluent:Kafka:Producer` and `Aspire.Confluent:Kafka:Consumer` keys. The following snippet is an example of a _:::no-loc text="appsettings.json":::_ file that configures some of the options:
```json
{
@@ -139,59 +250,75 @@ The `Config` properties of both `Aspire:Confluent:Kafka:Producer` and `Aspire.C
`Confluent.Kafka.Consumer` requires the `ClientId` property to be set to let the broker track consumed message offsets.
-### Use inline delegates
+For the complete Kafka client integration JSON schema, see [Aspire.Confluent.Kafka/ConfigurationSchema.json](https://github.com/dotnet/aspire/blob/v8.2.1/src/Components/Aspire.Confluent.Kafka/ConfigurationSchema.json).
+
+#### Use inline delegates
+
+There are several inline delegates available to configure various options.
-#### Configuring `KafkaProducerSettings` and `KafkaConsumerSettings`
+##### Configure`KafkaProducerSettings` and `KafkaConsumerSettings`
You can pass the `Action configureSettings` delegate to set up some or all the options inline, for example to disable health checks from code:
```csharp
-builder.AddKafkaProducer("messaging", settings => settings.DisableHealthChecks = true);
+builder.AddKafkaProducer(
+ "messaging",
+ static settings => settings.DisableHealthChecks = true);
```
You can configure inline a consumer from code:
```csharp
-builder.AddKafkaConsumer("messaging", settings => settings.DisableHealthChecks = true);
+builder.AddKafkaConsumer(
+ "messaging",
+ static settings => settings.DisableHealthChecks = true);
```
-#### Configuring `ProducerBuilder` and `ConsumerBuilder`
+##### Configure `ProducerBuilder` and `ConsumerBuilder`
To configure `Confluent.Kafka` builders, pass an `Action>` (or `Action>`):
```csharp
-builder.AddKafkaProducer("messaging", producerBuilder => {
- producerBuilder.SetValueSerializer(new MyMessageSerializer());
-})
+builder.AddKafkaProducer(
+ "messaging",
+ static producerBuilder =>
+ {
+ var messageSerializer = new MyMessageSerializer();
+ producerBuilder.SetValueSerializer(messageSerializer);
+ })
```
-Refer to [`ProducerBuilder`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ProducerBuilder-2.html) and [`ConsumerBuilder`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ConsumerBuilder-2.html) API documentation for more information.
+For more information, see [`ProducerBuilder`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ProducerBuilder-2.html) and [`ConsumerBuilder`](https://docs.confluent.io/platform/current/clients/confluent-kafka-dotnet/_site/api/Confluent.Kafka.ConsumerBuilder-2.html) API documentation.
-[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)]
+### Client integration health checks
-The .NET Aspire Apache Kafka integration handles the following:
+By default, .NET Aspire integrations enable [health checks](../fundamentals/health-checks.md) for all services. For more information, see [.NET Aspire integrations overview](../fundamentals/integrations-overview.md).
+
+The .NET Aspire Apache Kafka integration handles the following health check scenarios:
- Adds the `Aspire.Confluent.Kafka.Producer` health check when is `false`.
- Adds the `Aspire.Confluent.Kafka.Consumer` health check when is `false`.
- Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic.
-[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)]
+### Observability and telemetry
+
+.NET Aspire integrations automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as *the pillars of observability*. For more information about integration observability and telemetry, see [.NET Aspire integrations overview](../fundamentals/integrations-overview.md). Depending on the backing service, some integrations may only support some of these features. For example, some integrations support logging and tracing, but not metrics. Telemetry features can also be disabled using the techniques presented in the [Configuration](#configuration) section.
-### Logging
+#### Logging
The .NET Aspire Apache Kafka integration uses the following log categories:
- `Aspire.Confluent.Kafka`
-### Tracing
+#### Tracing
-The .NET Aspire Apache Kafka integration will emit the following tracing activities using OpenTelemetry:
+The .NET Aspire Apache Kafka integration emits the following tracing activities using OpenTelemetry:
- `Aspire.Confluent.Kafka`
-### Metrics
+#### Metrics
-The .NET Aspire Apache Kafka integration will emit the following metrics using OpenTelemetry:
+The .NET Aspire Apache Kafka integration emits the following metrics using OpenTelemetry:
- `messaging.kafka.network.tx`
- `messaging.kafka.network.transmitted`
diff --git a/docs/messaging/nats-integration.md b/docs/messaging/nats-integration.md
index 34c9f93c1e..536a16b81e 100644
--- a/docs/messaging/nats-integration.md
+++ b/docs/messaging/nats-integration.md
@@ -1,103 +1,196 @@
---
title: .NET Aspire NATS integration
description: Learn how to use the .NET Aspire NATS integration to send logs and traces to a NATS Server.
-ms.topic: how-to
-ms.date: 08/12/2024
+ms.date: 10/11/2024
+uid: messaging/nats-integration
---
# .NET Aspire NATS integration
-In this article, you learn how to use the .NET Aspire NATS integration to send logs and traces to a NATS Server. The integration supports persistent logs and traces across application restarts via configuration.
+[!INCLUDE [includes-hosting-and-client](../includes/includes-hosting-and-client.md)]
-## Prerequisites
+[NATS](https://nats.io) is a high-performance, secure, distributed messaging system. The .NET Aspire NATS integration enables you to connect to existing NATS instances, or create new instances from .NET with the [`docker.io/library/nats` container image](https://hub.docker.com/_/nats).
-- [Install the NATS server](https://docs.nats.io/running-a-nats-service/introduction/installation)
-- The URL to access the server.
+## Hosting integration
-## Get started
-
-To get started with the .NET Aspire NATS integration, install the [Aspire.NATS.Net](https://www.nuget.org/packages/Aspire.NATS.Net) NuGet package in the client-consuming project, i.e., the project for the application that uses the NATS client.
+NATS hosting integration for .NET Aspire models a NATS server as the type. To access this type, install the [📦 Aspire.Hosting.Nats](https://www.nuget.org/packages/Aspire.Hosting.Nats) NuGet package in the [app host](xref:aspire/app-host) project, then add it with the builder.
### [.NET CLI](#tab/dotnet-cli)
```dotnetcli
-dotnet add package Aspire.NATS.Net
+dotnet add package Aspire.Hosting.Nats
```
### [PackageReference](#tab/package-reference)
```xml
-
+
```
---
For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
-## Example usage
+### Add NATS server resource
-In the _:::no-loc text="Program.cs":::_ file of your projects, call the `AddNatsClient` extension method to register an `INatsConnection` to send logs and traces to NATS and the .NET Aspire Dashboard. The method takes a connection name parameter.
+In your app host project, call on the `builder` instance to add a NATS server resource:
```csharp
-builder.AddNatsClient("nats");
+var builder = DistributedApplication.CreateBuilder(args);
+
+var nats = builder.AddNats("nats");
+
+builder.AddProject()
+ .WithReference(nats);
+
+// After adding all resources, run the app...
```
-You can then retrieve the `INatsConnection` instance using dependency injection. For example, to retrieve the client from a service:
+When .NET Aspire adds a container image to the app host, as shown in the preceding example with the `docker.io/library/nats` image, it creates a new NATS server instance on your local machine. A reference to your NATS server (the `nats` variable) is added to the `ExampleProject`.
+
+The method configures a connection in the `ExampleProject` named `"nats"`. For more information, see [Container resource lifecycle](../fundamentals/app-host-overview.md#container-resource-lifecycle).
+
+> [!TIP]
+> If you'd rather connect to an existing NATS server, call instead. For more information, see [Reference existing resources](../fundamentals/app-host-overview.md#reference-existing-resources).
+
+### Add NATS server resource with JetStream
+
+To add the [NATS JetStream](https://docs.nats.io/nats-concepts/jetstream) to the NATS server resource, call the method:
```csharp
-public class ExampleService(INatsConnection client)
-{
- // Use client...
-}
+var builder = DistributedApplication.CreateBuilder(args);
+
+var nats = builder.AddNats("nats");
+ .WithJetStream();
+
+builder.AddProject()
+ .WithReference(nats);
+
+// After adding all resources, run the app...
+```
+
+The NATS JetStream functionality provides a built-in persistence engine called JetStream which enables messages to be stored and replayed at a later time. You can optionally provide a `srcMountPath` parameter to specify the path to the JetStream data directory on the host machine (the provided mount path maps to the container's `-sd` argument).
+
+### Add NATS server resource with data volume
+
+To add a data volume to the NATS server resource, call the method on the NATS server resource:
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+var nats = builder.AddNats("nats");
+ .WithDataVolume(isReadOnly: false);
+
+builder.AddProject()
+ .WithReference(nats);
+
+// After adding all resources, run the app...
+```
+
+The data volume is used to persist the NATS server data outside the lifecycle of its container. The data volume is mounted at the `/var/lib/nats` path in the NATS server container. A name is generated at random unless you provide a set the `name` parameter. For more information on data volumes and details on why they're preferred over [bind mounts](#add-nats-server-resource-with-data-bind-mount), see [Docker docs: Volumes](https://docs.docker.com/engine/storage/volumes).
+
+### Add NATS server resource with data bind mount
+
+To add a data bind mount to the NATS server resource, call the method:
+
+```csharp
+var builder = DistributedApplication.CreateBuilder(args);
+
+var nats = builder.AddNats("nats");
+ .WithDataBindMount(
+ source: @"C:\NATS\Data",
+ isReadOnly: false);
+
+builder.AddProject()
+ .WithReference(nats);
+
+// After adding all resources, run the app...
```
-## App host usage
+[!INCLUDE [data-bind-mount-vs-volumes](../includes/data-bind-mount-vs-volumes.md)]
+
+Data bind mounts rely on the host machine's filesystem to persist the NATS server data across container restarts. The data bind mount is mounted at the `C:\NATS\Data` on Windows (or `/NATS/Data` on Unix) path on the host machine in the NATS server container. For more information on data bind mounts, see [Docker docs: Bind mounts](https://docs.docker.com/engine/storage/bind-mounts).
-To model the Nats resource in the app host, install the [Aspire.Hosting.Nats](https://www.nuget.org/packages/Aspire.Hosting.Nats) NuGet package in the [app host](xref:aspire/app-host) project.
+### Hosting integration health checks
+
+The NATS hosting integration automatically adds a health check for the NATS server resource. The health check verifies that the NATS server is running and that a connection can be established to it.
+
+The hosting integration relies on the [📦 AspNetCore.HealthChecks.Nats](https://www.nuget.org/packages/AspNetCore.HealthChecks.Nats) NuGet package.
+
+## Client integration
+
+To get started with the .NET Aspire NATS client integration, install the [📦 Aspire.NATS.Net](https://www.nuget.org/packages/Aspire.NATS.Net) NuGet package in the client-consuming project, that is, the project for the application that uses the NATS client. The NATS client integration registers an [INatsConnection](https://nats-io.github.io/nats.net/api/NATS.Client.Core.INatsConnection.html) instance that you can use to interact with NATS.
### [.NET CLI](#tab/dotnet-cli)
```dotnetcli
-dotnet add package Aspire.Hosting.Nats
+dotnet add package Aspire.NATS.Net
```
### [PackageReference](#tab/package-reference)
```xml
-
+
```
---
-Then, in the _:::no-loc text="Program.cs":::_ file of `AppHost`, register a NATS server and consume the connection using the following methods:
+### Add NATS client
+
+In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method on any to register an `INatsConnection` for use via the dependency injection container. The method takes a connection name parameter.
```csharp
-var builder = DistributedApplication.CreateBuilder(args);
+builder.AddNatsClient(connectionName: "nats");
+```
-var nats = builder.AddNats("nats");
+> [!TIP]
+> The `connectionName` parameter must match the name used when adding the NATS server resource in the app host project. For more information, see [Add NATS server resource](#add-nats-server-resource).
+
+You can then retrieve the `INatsConnection` instance using dependency injection. For example, to retrieve the client from a service:
+
+```csharp
+public class ExampleService(INatsConnection connection)
+{
+ // Use connection...
+}
+```
+
+For more information on dependency injection, see [.NET dependency injection](/dotnet/core/extensions/dependency-injection).
-var myService = builder.AddProject()
- .WithReference(nats);
+### Add keyed NATS client
+
+There might be situations where you want to register multiple `INatsConnection` instances with different connection names. To register keyed NATS clients, call the method:
+
+```csharp
+builder.AddKeyedNatsClient(name: "chat");
+builder.AddKeyedNatsClient(name: "queue");
```
-The `WithReference` method configures a connection in the `MyService` project named `nats`. In the _:::no-loc text="Program.cs":::_ file of `MyService`, the NATS connection can be consumed using:
+Then you can retrieve the `IConnection` instances using dependency injection. For example, to retrieve the connection from an example service:
```csharp
-builder.AddNatsClient("nats");
+public class ExampleService(
+ [FromKeyedServices("chat")] INatsConnection chatConnection,
+ [FromKeyedServices("queue")] INatsConnection queueConnection)
+{
+ // Use connections...
+}
```
-## Configuration
+For more information on keyed services, see [.NET dependency injection: Keyed services](/dotnet/core/extensions/dependency-injection#keyed-services).
+
+### Configuration
The .NET Aspire NATS integration provides multiple options to configure the NATS connection based on the requirements and conventions of your project.
-### Use a connection string
+#### Use a connection string
-Provide the name of the connection string when you call `builder.AddNatsClient()`:
+Provide the name of the connection string when you call `builder.AddNatsClient`:
```csharp
-builder.AddNatsClient("myConnection");
+builder.AddNatsClient(connectionName: "nats");
```
The connection string is retrieved from the `ConnectionStrings` configuration section:
@@ -105,58 +198,58 @@ The connection string is retrieved from the `ConnectionStrings` configuration se
```json
{
"ConnectionStrings": {
- "myConnection": "nats://nats:4222"
+ "nats": "nats://nats:4222"
}
}
```
See the [ConnectionString documentation](https://docs.nats.io/using-nats/developer/connecting#nats-url) for more information on how to format this connection string.
-### Use configuration providers
+#### Use configuration providers
-The .NET Aspire NATS integration supports [Microsoft.Extensions.Configuration](/dotnet/api/microsoft.extensions.configuration). It loads the `NatsClientSettings` from configuration using the `Aspire:Nats:Client` key. Example _:::no-loc text="appsettings.json":::_ that configures some of the options:
+The .NET Aspire NATS integration supports . It loads the from configuration by using the `Aspire:Nats:Client` key. The following snippet is an example of a _:::no-loc text="appsettings.json":::_ file that configures some of the options:
```json
{
"Aspire": {
"Nats": {
"Client": {
- "DisableHealthChecks": true
+ "ConnectionString": "nats://nats:4222",
+ "DisableHealthChecks": true,
+ "DisableTracing": true
}
}
}
}
```
-### Use inline delegates
-
-Pass the `Action configureSettings` delegate to set up some or all the options inline, for example to disable health checks from code:
-
-```csharp
-builder.AddNatsClient("nats", settings => settings.DisableHealthChecks = true);
-```
+For the complete NATS client integration JSON schema, see [Aspire.NATS.Net/ConfigurationSchema.json](https://github.com/dotnet/aspire/blob/v8.2.1/src/Components/Aspire.NATS.Net/ConfigurationSchema.json).
-### Persistent logs and traces
+#### Use inline delegates
-Register NATS with a data directory in your **.AppHost** project to retain NATS's data and configuration across application restarts.
+Pass the `Action configureSettings` delegate to set up some or all the options inline, for example to disable health checks from code:
```csharp
-var NATS = builder.AddNATS("NATS", NATSDataDirectory: "./NATSdata");
+builder.AddNatsClient(
+ "nats",
+ static settings => settings.DisableHealthChecks = true);
```
-The directory specified must already exist.
-
### NATS in the .NET Aspire manifest
-NATS isn't part of the .NET Aspire deployment manifest. It's recommended you set up a secure production NATS server outside of .NET Aspire.
+NATS isn't part of the .NET Aspire [deployment manifest](../deployment/manifest-format.md). It's recommended you set up a secure production NATS server outside of .NET Aspire.
-[!INCLUDE [integration-health-checks](../includes/integration-health-checks.md)]
+### Client integration health checks
+
+By default, .NET Aspire integrations enable [health checks](../fundamentals/health-checks.md) for all services. For more information, see [.NET Aspire integrations overview](../fundamentals/integrations-overview.md).
The .NET Aspire NATS integration handles the following:
- Integrates with the `/health` HTTP endpoint, which specifies all registered health checks must pass for app to be considered ready to accept traffic.
-[!INCLUDE [integration-observability-and-telemetry](../includes/integration-observability-and-telemetry.md)]
+### Observability and telemetry
+
+.NET Aspire integrations automatically set up Logging, Tracing, and Metrics configurations, which are sometimes known as *the pillars of observability*. For more information about integration observability and telemetry, see [.NET Aspire integrations overview](../fundamentals/integrations-overview.md). Depending on the backing service, some integrations may only support some of these features. For example, some integrations support logging and tracing, but not metrics. Telemetry features can also be disabled using the techniques presented in the [Configuration](#configuration) section.
### Logging
@@ -173,4 +266,5 @@ The .NET Aspire NATS integration emits the following tracing activities:
## See also
- [NATS.Net quickstart](https://nats-io.github.io/nats.net/documentation/intro.html?tabs=core-nats)
-- [NATS integration README](https://github.com/dotnet/aspire/tree/main/src/Components/README.md)
+- [.NET Aspire integrations](../fundamentals/integrations-overview.md)
+- [.NET Aspire GitHub repo](https://github.com/dotnet/aspire)
diff --git a/docs/messaging/rabbitmq-client-integration.md b/docs/messaging/rabbitmq-client-integration.md
deleted file mode 100644
index 5fdf3a7007..0000000000
--- a/docs/messaging/rabbitmq-client-integration.md
+++ /dev/null
@@ -1,185 +0,0 @@
----
-title: .NET Aspire RabbitMQ integration
-description: Learn how to use the .NET Aspire RabbitMQ client message-broker integration.
-ms.topic: how-to
-ms.date: 08/12/2024
----
-
-# .NET Aspire RabbitMQ integration
-
-In this article, you learn how to use the .NET Aspire RabbitMQ client message-broker. The `Aspire.RabbitMQ.Client` library is used to register an [IConnection](https://rabbitmq.github.io/rabbitmq-dotnet-client/api/RabbitMQ.Client.IConnection.html) in the dependency injection (DI) container for connecting to a RabbitMQ server. It enables corresponding health check, logging and telemetry.
-
-## Get started
-
-To get started with the .NET Aspire RabbitMQ integration, install the [Aspire.RabbitMQ.Client](https://www.nuget.org/packages/Aspire.RabbitMQ.Client) NuGet package in the client-consuming project, i.e., the project for the application that uses the RabbitMQ client.
-
-### [.NET CLI](#tab/dotnet-cli)
-
-```dotnetcli
-dotnet add package Aspire.RabbitMQ.Client
-```
-
-### [PackageReference](#tab/package-reference)
-
-```xml
-
-```
-
----
-
-For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package) or [Manage package dependencies in .NET applications](/dotnet/core/tools/dependencies).
-
-## Example usage
-
-In the _:::no-loc text="Program.cs":::_ file of your client-consuming project, call the extension method to register an `IConnection` for use via the dependency injection container. The method takes a connection name parameter.
-
-```csharp
-builder.AddRabbitMQClient("messaging");
-```
-
-You can then retrieve the `IConnection` instance using dependency injection. For example, to retrieve the connection from an example service:
-
-```csharp
-public class ExampleService(IConnection connection)
-{
- // Use connection...
-}
-```
-
-## App host usage
-
-To model the RabbitMQ resource in the app host, install the [Aspire.Hosting.RabbitMQ](https://www.nuget.org/packages/Aspire.Hosting.RabbitMQ) NuGet package in the [app host](xref:aspire/app-host) project.
-
-### [.NET CLI](#tab/dotnet-cli)
-
-```dotnetcli
-dotnet add package Aspire.Hosting.RabbitMQ
-```
-
-### [PackageReference](#tab/package-reference)
-
-```xml
-
-```
-
----
-
-In your app host project, register a RabbitMQ server and consume the connection using the following methods, such as :
-
-```csharp
-var builder = DistributedApplication.CreateBuilder(args);
-
-var messaging = builder.AddRabbitMQ("messaging");
-
-builder.AddProject()
- .WithReference(messaging);
-```
-
-The method configures a connection in the `ExampleProject` project named `messaging`.
-
-When you want to explicitly provide the username and password, you can provide those as parameters. Consider the following alternative example:
-
-```csharp
-var username = builder.AddParameter("username", secret: true);
-var password = builder.AddParameter("password", secret: true);
-
-var messaging = builder.AddRabbitMQ("messaging", username, password);
-
-// Service consumption
-builder.AddProject