Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package terragrunt for openSUSE:Factory 
checked in at 2025-05-14 17:01:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/terragrunt (Old)
 and      /work/SRC/openSUSE:Factory/.terragrunt.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "terragrunt"

Wed May 14 17:01:33 2025 rev:227 rq:1277290 version:0.78.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/terragrunt/terragrunt.changes    2025-05-13 
20:06:16.588866110 +0200
+++ /work/SRC/openSUSE:Factory/.terragrunt.new.30101/terragrunt.changes 
2025-05-14 17:02:03.157360884 +0200
@@ -1,0 +2,21 @@
+Wed May 14 04:49:36 UTC 2025 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- Update to version 0.78.4:
+  * New Features
+    - OpenTelemetry Trace Propogation
+      In anticipation of the introduction of OpenTelemetry support
+      in OpenTofu 1.10, Terragrunt will now propagate the
+      TRACEPARENT environment variable to child processes to
+      support OpenTelemetry traces that maintain context across
+      Terragrunt and OpenTofu.
+      This work is based on @Yantrio 's PoC PR #4254, and is only
+      useful due to his work adding OpenTelemtry in OpenTofu. Thank
+      you!
+  * What's Changed
+    - feat: Add generation of opentelemtry parent traces to invoked
+      executables (#4278)
+    - feat: Adding homepage to Starlight docs (#4250)
+    - chore: Offboarding Levko (#4280)
+    - Add support for Terraform tests in Github Action (#4275)
+
+-------------------------------------------------------------------

Old:
----
  terragrunt-0.78.3.obscpio

New:
----
  terragrunt-0.78.4.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ terragrunt.spec ++++++
--- /var/tmp/diff_new_pack.6TPPnL/_old  2025-05-14 17:02:04.489416551 +0200
+++ /var/tmp/diff_new_pack.6TPPnL/_new  2025-05-14 17:02:04.489416551 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           terragrunt
-Version:        0.78.3
+Version:        0.78.4
 Release:        0
 Summary:        Thin wrapper for Terraform for working with multiple Terraform 
modules
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.6TPPnL/_old  2025-05-14 17:02:04.561419566 +0200
+++ /var/tmp/diff_new_pack.6TPPnL/_new  2025-05-14 17:02:04.569419900 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/gruntwork-io/terragrunt</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.78.3</param>
+    <param name="revision">v0.78.4</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.6TPPnL/_old  2025-05-14 17:02:04.597421073 +0200
+++ /var/tmp/diff_new_pack.6TPPnL/_new  2025-05-14 17:02:04.601421241 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/gruntwork-io/terragrunt</param>
-              <param 
name="changesrevision">b19d23fcb73889cd9dac48040dfbf2b84117d20d</param></service></servicedata>
+              <param 
name="changesrevision">a76bdc97ff614e18ffa0fdd6304da273dbb9feb1</param></service></servicedata>
 (No newline at EOF)
 

++++++ terragrunt-0.78.3.obscpio -> terragrunt-0.78.4.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/.circleci/config.yml 
new/terragrunt-0.78.4/.circleci/config.yml
--- old/terragrunt-0.78.3/.circleci/config.yml  2025-05-12 16:48:19.000000000 
+0200
+++ new/terragrunt-0.78.4/.circleci/config.yml  2025-05-13 20:23:29.000000000 
+0200
@@ -100,12 +100,6 @@
     run-go-tests --packages "-tags=awsgcp -run ^TestAwsGcp ./..." | tee 
logs/test-results.log
   no_output_timeout: 30m
 
-run_tflint_test: &run_tflint_test
-  name: Run TFlint tests
-  command: |
-    run-go-tests --packages "-tags tflint -run TestTflint ./test" | tee 
logs/test-results.log
-  no_output_timeout: 30m
-
 run_race_test: &run_race_test
   name: Run Race tests
   command: |
@@ -124,39 +118,8 @@
     terratest_log_parser --testlog logs/test-results.log --outputdir logs
   when: always
 
-win_install_golang: &win_install_golang
-  name: Install golang
-  shell: powershell.exe
-  command: ./_ci/install-golang.ps1
-
-win_install_tflint: &win_install_tflint
-  name: Install TFLint
-  shell: powershell.exe
-  command: ./_ci/install-tflint.ps1
-
 version: 2.1
 jobs:
-  integration_test_terraform_1_5:
-    resource_class: xlarge
-    <<: *defaults
-    <<: *env
-    steps:
-      - checkout
-      - run:
-          <<: *install_tflint
-      - run:
-          <<: *setup_test_environment
-      - run:
-          <<: *run_integration_test
-          environment:
-            TG_TF_PATH: terraform
-      - run:
-          <<: *run_terratest_log_parser
-      - store_artifacts:
-          path: logs
-      - store_test_results:
-          path: logs
-
   integration_test_terraform_with_provider_cache:
     resource_class: xlarge
     <<: *defaults
@@ -179,29 +142,6 @@
       - store_test_results:
           path: logs
 
-  integration_test_terraform_latest:
-    resource_class: xlarge
-    <<: *defaults
-    <<: *env
-    steps:
-      - checkout
-      - run:
-          <<: *install_terraform_latest
-      - run:
-          <<: *install_tflint
-      - run:
-          <<: *setup_test_environment
-      - run:
-          <<: *run_integration_test
-          environment:
-            TG_TF_PATH: terraform
-      - run:
-          <<: *run_terratest_log_parser
-      - store_artifacts:
-          path: logs
-      - store_test_results:
-          path: logs
-
   integration_test_tofu:
     resource_class: xlarge
     <<: *defaults
@@ -393,29 +333,6 @@
           path: logs
       - store_test_results:
           path: logs
-
-  # Run TFLint tests separately as tflint during execution change working 
directory.
-  integration_test_tflint:
-    resource_class: large
-    <<: *defaults
-    <<: *env
-    steps:
-      - checkout
-      - run:
-          <<: *install_tofu
-      - run:
-          <<: *install_tflint
-      - run:
-          <<: *setup_test_environment
-      - run:
-          <<: *run_tflint_test
-      - run:
-          <<: *run_terratest_log_parser
-      - store_artifacts:
-          path: logs
-      - store_test_results:
-          path: logs
-
   race_test:
     resource_class: medium
     <<: *defaults
@@ -549,26 +466,6 @@
   version: 2
   build-and-test:
     jobs:
-      - integration_test_terraform_1_5:
-          filters:
-            tags:
-              only:
-                - /^v.*/
-                - /^alpha.*/
-          context:
-            - AWS__PHXDEVOPS__circle-ci-test
-            - GCP__automated-tests
-            - GITHUB__PAT__gruntwork-ci
-      - integration_test_terraform_latest:
-          filters:
-            tags:
-              only:
-                - /^v.*/
-                - /^alpha.*/
-          context:
-            - AWS__PHXDEVOPS__circle-ci-test
-            - GCP__automated-tests
-            - GITHUB__PAT__gruntwork-ci
       - integration_test_terraform_with_provider_cache:
           filters:
             tags:
@@ -613,16 +510,6 @@
           filters:
             tags:
               only:
-                - /^v.*/
-                - /^alpha.*/
-          context:
-            - AWS__PHXDEVOPS__circle-ci-test
-            - GCP__automated-tests
-            - GITHUB__PAT__gruntwork-ci
-      - integration_test_tflint:
-          filters:
-            tags:
-              only:
                 - /^v.*/
                 - /^alpha.*/
           context:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/CODEOWNERS 
new/terragrunt-0.78.4/CODEOWNERS
--- old/terragrunt-0.78.3/CODEOWNERS    2025-05-12 16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/CODEOWNERS    2025-05-13 20:23:29.000000000 +0200
@@ -1,2 +1,2 @@
-* @denis256 @levkohimins @yhakbar
+* @denis256 @yhakbar
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/_ci/install-golang.ps1 
new/terragrunt-0.78.4/_ci/install-golang.ps1
--- old/terragrunt-0.78.3/_ci/install-golang.ps1        2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/_ci/install-golang.ps1        1970-01-01 
01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-# Install golang using Chocolatey
-choco install golang --version 1.23.1 -y
-# Verify installation
-Get-Command go
-go version
-
-# configure git compression
-git config --global core.compression 0
-git config --global gc.auto 0
-
-try {
-    # Enable Developer Mode
-    reg add 
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" 
/t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1"
-    # Enable long paths in Git configuration
-    Write-Output "Enabling long paths in Git..."
-    git config --system core.longpaths true
-    git config --global core.longpaths true
-    git config --local core.longpaths true
-
-    # Enable long paths in Windows Registry
-    Write-Output "Enabling long paths in Windows Registry..."
-    $regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem"
-    Set-ItemProperty -Path $regPath -Name "LongPathsEnabled" -Value 1 -Type 
DWord
-
-    $longPathsEnabled = Get-ItemProperty -Path $regPath -Name 
"LongPathsEnabled"
-    $gitConfig = git config --system --get core.longpaths
-
-    if ($longPathsEnabled.LongPathsEnabled -eq 1 -and $gitConfig -eq "true") {
-        Write-Output "Successfully enabled long paths support"
-        exit 0
-    } else {
-        Write-Error "Failed to verify changes"
-        exit 1
-    }
-} catch {
-    Write-Error "An error occurred: $_"
-    exit 1
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/_ci/install-opentofu.ps1 
new/terragrunt-0.78.4/_ci/install-opentofu.ps1
--- old/terragrunt-0.78.3/_ci/install-opentofu.ps1      2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/_ci/install-opentofu.ps1      1970-01-01 
01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-OpenTofuInstallPath = "C:\Program Files\tofu\tofu.exe"
-$OpenTofuTmpPath = "C:\OpenTofutmp"
-$OpenTofuTmpBinaryPath = "C:\OpenTofutmp\tofu.exe"
-$OpenTofuPath = "C:\Program Files\tofu"
-$OpenTofuVersion = $Env:OPENTOFU_VERSION
-# Remove any old OpenTofu installation, if present
-if (Test-Path -Path $OpenTofuInstallPath)
-{
-       Remove-Item $OpenTofuInstallPath -Recurse
-}
-# Download OpenTofu and unpack it
-$OpenTofuURI = 
"https://github.com/opentofu/opentofu/releases/download/v$OpenTofuVersion/tofu_${OpenTofuVersion}_windows_amd64.zip";
-$output = "tofu_${OpenTofuVersion}_windows_amd64.zip"
-$ProgressPreference = "SilentlyContinue"
-Invoke-WebRequest -Uri $OpenTofuURI -OutFile $output
-New-Item -ItemType "directory" -Path $OpenTofuTmpPath
-# Unpack OpenTofu to temp directory
-Expand-Archive -LiteralPath $output -DestinationPath $OpenTofuTmpPath
-# Make new OpenTofu directory to hold binary
-New-Item -ItemType "directory" -Path $OpenTofuPath
-Move-Item $OpenTofuTmpBinaryPath $OpenTofuPath
-# Add new OpenTofu path to system
-$OldPath = [System.Environment]::GetEnvironmentVariable('PATH', "Machine")
-$NewPath = "$OldPath;$OpenTofuPath"
-[Environment]::SetEnvironmentVariable("PATH", "$NewPath", "Machine")
-# Load System and User PATHs into latest $env:Path, which has the effect of 
"refreshing" the latest path
-# in the current PowerShell session
-$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + 
";" + [System.Environment]::GetEnvironmentVariable("Path","User")
-# Verify installation
-tofu version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/_ci/install-terraform.ps1 
new/terragrunt-0.78.4/_ci/install-terraform.ps1
--- old/terragrunt-0.78.3/_ci/install-terraform.ps1     2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/_ci/install-terraform.ps1     1970-01-01 
01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-# Install terraform using Chocolatey
-$TerraformVersion = $Env:TERRAFORM_VERSION
-choco install terraform --version $TerraformVersion -y
-# Verify installation
-Get-Command terraform
-terraform version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/_ci/install-tflint.ps1 
new/terragrunt-0.78.4/_ci/install-tflint.ps1
--- old/terragrunt-0.78.3/_ci/install-tflint.ps1        2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/_ci/install-tflint.ps1        1970-01-01 
01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-# Install tflint using Chocolatey
-choco install tflint --version 0.47.0 -y
-# Verify installation
-Get-Command tflint
-tflint --version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/docs-starlight/astro.config.mjs 
new/terragrunt-0.78.4/docs-starlight/astro.config.mjs
--- old/terragrunt-0.78.3/docs-starlight/astro.config.mjs       2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/docs-starlight/astro.config.mjs       2025-05-13 
20:23:29.000000000 +0200
@@ -3,8 +3,8 @@
 import starlight from "@astrojs/starlight";
 import starlightLinksValidator from "starlight-links-validator";
 import vercel from "@astrojs/vercel";
-
 import d2 from "astro-d2";
+import tailwindcss from "@tailwindcss/vite";
 
 export const sidebar = [
   {
@@ -78,12 +78,16 @@
   integrations: [
     starlight({
       title: "Terragrunt",
+      customCss: ["./src/styles/global.css"],
+      components: {
+        Header: './src/components/Header.astro',
+        SiteTitle: './src/components/SiteTitle.astro',
+      },
       logo: {
-        dark: "/src/assets/logo-light.svg",
-        light: "/src/assets/logo-dark.svg",
+        dark: "/src/assets/horizontal-logo-light.svg",
+        light: "/src/assets/horizontal-logo-dark.svg",
       },
       social: {
-        github: "https://github.com/gruntwork-io/terragrunt";,
         discord: "https://discord.gg/SPu4Degs5f";,
       },
       sidebar: sidebar,
@@ -162,4 +166,7 @@
     "/docs/features/provider-cache/": "/docs/features/provider-cache-server/",
     "/docs/features/provider-caching/": 
"/docs/features/provider-cache-server/",
   },
+  vite: {
+    plugins: [tailwindcss()],
+  },
 });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/docs-starlight/bun.lock 
new/terragrunt-0.78.4/docs-starlight/bun.lock
--- old/terragrunt-0.78.3/docs-starlight/bun.lock       2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/docs-starlight/bun.lock       2025-05-13 
20:23:29.000000000 +0200
@@ -5,13 +5,16 @@
       "name": "docs-starlight",
       "dependencies": {
         "@astrojs/starlight": "^0.31.1",
+        "@astrojs/starlight-tailwind": "^4.0.1",
         "@astrojs/vercel": "^8.1.1",
+        "@tailwindcss/vite": "^4.1.5",
         "@zachleat/table-saw": "^1.0.6",
         "astro": "^5.4.2",
         "astro-d2": "^0.7.0",
         "gray-matter": "^4.0.3",
         "sharp": "^0.32.6",
         "starlight-links-validator": "^0.14.3",
+        "tailwindcss": "^4.1.5",
       },
       "devDependencies": {
         "@types/bun": "^1.2.4",
@@ -39,6 +42,8 @@
 
     "@astrojs/starlight": ["@astrojs/starlight@0.31.1", "", { "dependencies": 
{ "@astrojs/mdx": "^4.0.5", "@astrojs/sitemap": "^3.2.1", 
"@pagefind/default-ui": "^1.3.0", "@types/hast": "^3.0.4", "@types/js-yaml": 
"^4.0.9", "@types/mdast": "^4.0.4", "astro-expressive-code": "^0.40.0", 
"bcp-47": "^2.1.0", "hast-util-from-html": "^2.0.1", "hast-util-select": 
"^6.0.2", "hast-util-to-string": "^3.0.0", "hastscript": "^9.0.0", "i18next": 
"^23.11.5", "js-yaml": "^4.1.0", "mdast-util-directive": "^3.0.0", 
"mdast-util-to-markdown": "^2.1.0", "mdast-util-to-string": "^4.0.0", 
"pagefind": "^1.3.0", "rehype": "^13.0.1", "rehype-format": "^5.0.0", 
"remark-directive": "^3.0.0", "unified": "^11.0.5", "unist-util-visit": 
"^5.0.0", "vfile": "^6.0.2" }, "peerDependencies": { "astro": "^5.1.5" } }, 
"sha512-VIVkHugwgtEqJPiRH8+ouP0UqUfdmpBO9C64R+6QaQ2qmADNkI/BA3/YAJHTBZYlMQQGEEuLJwD9qpaUovi52Q=="],
 
+    "@astrojs/starlight-tailwind": ["@astrojs/starlight-tailwind@4.0.1", "", { 
"peerDependencies": { "@astrojs/starlight": ">=0.34.0", "tailwindcss": "^4.0.0" 
} }, 
"sha512-AOOEWTGqJ7fG66U04xTmZQZ40oZnUYe4Qljpr+No88ozKywtsD1DiXOrGTeHCnZu0hRtMbRtBGB1fZsf0L62iw=="],
+
     "@astrojs/telemetry": ["@astrojs/telemetry@3.2.0", "", { "dependencies": { 
"ci-info": "^4.1.0", "debug": "^4.3.7", "dlv": "^1.1.3", "dset": "^3.1.4", 
"is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, 
"sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ=="],
 
     "@astrojs/vercel": ["@astrojs/vercel@8.1.1", "", { "dependencies": { 
"@astrojs/internal-helpers": "0.6.0", "@vercel/analytics": "^1.5.0", 
"@vercel/edge": "^1.2.1", "@vercel/nft": "^0.29.2", "@vercel/routing-utils": 
"^5.0.4", "esbuild": "^0.25.0", "tinyglobby": "^0.2.12" }, "peerDependencies": 
{ "astro": "^5.0.0" } }, 
"sha512-4tTib9LkAtg7tqac4L+pnWEveUmYyWRXpHivaVV3lHKeQjB28KUZ+YXtR/VUG6/xpMduo+OCOOg0l1zOPq/e4w=="],
@@ -233,6 +238,36 @@
 
     "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, 
"sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
 
+    "@tailwindcss/node": ["@tailwindcss/node@4.1.5", "", { "dependencies": { 
"enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", "lightningcss": "1.29.2", 
"tailwindcss": "4.1.5" } }, 
"sha512-CBhSWo0vLnWhXIvpD0qsPephiaUYfHUX3U9anwDaHZAeuGpTiB3XmsxPAN6qX7bFhipyGBqOa1QYQVVhkOUGxg=="],
+
+    "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.5", "", { 
"optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.5", 
"@tailwindcss/oxide-darwin-arm64": "4.1.5", "@tailwindcss/oxide-darwin-x64": 
"4.1.5", "@tailwindcss/oxide-freebsd-x64": "4.1.5", 
"@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.5", 
"@tailwindcss/oxide-linux-arm64-gnu": "4.1.5", 
"@tailwindcss/oxide-linux-arm64-musl": "4.1.5", 
"@tailwindcss/oxide-linux-x64-gnu": "4.1.5", 
"@tailwindcss/oxide-linux-x64-musl": "4.1.5", "@tailwindcss/oxide-wasm32-wasi": 
"4.1.5", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.5", 
"@tailwindcss/oxide-win32-x64-msvc": "4.1.5" } }, 
"sha512-1n4br1znquEvyW/QuqMKQZlBen+jxAbvyduU87RS8R3tUSvByAkcaMTkJepNIrTlYhD+U25K4iiCIxE6BGdRYA=="],
+
+    "@tailwindcss/oxide-android-arm64": 
["@tailwindcss/oxide-android-arm64@4.1.5", "", { "os": "android", "cpu": 
"arm64" }, 
"sha512-LVvM0GirXHED02j7hSECm8l9GGJ1RfgpWCW+DRn5TvSaxVsv28gRtoL4aWKGnXqwvI3zu1GABeDNDVZeDPOQrw=="],
+
+    "@tailwindcss/oxide-darwin-arm64": 
["@tailwindcss/oxide-darwin-arm64@4.1.5", "", { "os": "darwin", "cpu": "arm64" 
}, 
"sha512-//TfCA3pNrgnw4rRJOqavW7XUk8gsg9ddi8cwcsWXp99tzdBAZW0WXrD8wDyNbqjW316Pk2hiN/NJx/KWHl8oA=="],
+
+    "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.5", 
"", { "os": "darwin", "cpu": "x64" }, 
"sha512-XQorp3Q6/WzRd9OalgHgaqgEbjP3qjHrlSUb5k1EuS1Z9NE9+BbzSORraO+ecW432cbCN7RVGGL/lSnHxcd+7Q=="],
+
+    "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.5", 
"", { "os": "freebsd", "cpu": "x64" }, 
"sha512-bPrLWbxo8gAo97ZmrCbOdtlz/Dkuy8NK97aFbVpkJ2nJ2Jo/rsCbu0TlGx8joCuA3q6vMWTSn01JY46iwG+clg=="],
+
+    "@tailwindcss/oxide-linux-arm-gnueabihf": 
["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.5", "", { "os": "linux", "cpu": 
"arm" }, 
"sha512-1gtQJY9JzMAhgAfvd/ZaVOjh/Ju/nCoAsvOVJenWZfs05wb8zq+GOTnZALWGqKIYEtyNpCzvMk+ocGpxwdvaVg=="],
+
+    "@tailwindcss/oxide-linux-arm64-gnu": 
["@tailwindcss/oxide-linux-arm64-gnu@4.1.5", "", { "os": "linux", "cpu": 
"arm64" }, 
"sha512-dtlaHU2v7MtdxBXoqhxwsWjav7oim7Whc6S9wq/i/uUMTWAzq/gijq1InSgn2yTnh43kR+SFvcSyEF0GCNu1PQ=="],
+
+    "@tailwindcss/oxide-linux-arm64-musl": 
["@tailwindcss/oxide-linux-arm64-musl@4.1.5", "", { "os": "linux", "cpu": 
"arm64" }, 
"sha512-fg0F6nAeYcJ3CriqDT1iVrqALMwD37+sLzXs8Rjy8Z1ZHshJoYceodfyUwGJEsQoTyWbliFNRs2wMQNXtT7MVA=="],
+
+    "@tailwindcss/oxide-linux-x64-gnu": 
["@tailwindcss/oxide-linux-x64-gnu@4.1.5", "", { "os": "linux", "cpu": "x64" }, 
"sha512-SO+F2YEIAHa1AITwc8oPwMOWhgorPzzcbhWEb+4oLi953h45FklDmM8dPSZ7hNHpIk9p/SCZKUYn35t5fjGtHA=="],
+
+    "@tailwindcss/oxide-linux-x64-musl": 
["@tailwindcss/oxide-linux-x64-musl@4.1.5", "", { "os": "linux", "cpu": "x64" 
}, 
"sha512-6UbBBplywkk/R+PqqioskUeXfKcBht3KU7juTi1UszJLx0KPXUo10v2Ok04iBJIaDPkIFkUOVboXms5Yxvaz+g=="],
+
+    "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.5", 
"", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", 
"@emnapi/wasi-threads": "^1.0.2", "@napi-rs/wasm-runtime": "^0.2.9", 
"@tybys/wasm-util": "^0.9.0", "tslib": "^2.8.0" }, "cpu": "none" }, 
"sha512-hwALf2K9FHuiXTPqmo1KeOb83fTRNbe9r/Ixv9ZNQ/R24yw8Ge1HOWDDgTdtzntIaIUJG5dfXCf4g9AD4RiyhQ=="],
+
+    "@tailwindcss/oxide-win32-arm64-msvc": 
["@tailwindcss/oxide-win32-arm64-msvc@4.1.5", "", { "os": "win32", "cpu": 
"arm64" }, 
"sha512-oDKncffWzaovJbkuR7/OTNFRJQVdiw/n8HnzaCItrNQUeQgjy7oUiYpsm9HUBgpmvmDpSSbGaCa2Evzvk3eFmA=="],
+
+    "@tailwindcss/oxide-win32-x64-msvc": 
["@tailwindcss/oxide-win32-x64-msvc@4.1.5", "", { "os": "win32", "cpu": "x64" 
}, 
"sha512-WiR4dtyrFdbb+ov0LK+7XsFOsG+0xs0PKZKkt41KDn9jYpO7baE3bXiudPVkTqUEwNfiglCygQHl2jklvSBi7Q=="],
+
+    "@tailwindcss/vite": ["@tailwindcss/vite@4.1.5", "", { "dependencies": { 
"@tailwindcss/node": "4.1.5", "@tailwindcss/oxide": "4.1.5", "tailwindcss": 
"4.1.5" }, "peerDependencies": { "vite": "^5.2.0 || ^6" } }, 
"sha512-FE1stRoqdHSb7RxesMfCXE8icwI1W6zGE/512ae3ZDrpkQYTTYeSyUJPRCjZd8CwVAhpDUbi1YR8pcZioFJQ/w=="],
+
     "@types/acorn": ["@types/acorn@4.0.6", "", { "dependencies": { 
"@types/estree": "*" } }, 
"sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ=="],
 
     "@types/bun": ["@types/bun@1.2.4", "", { "dependencies": { "bun-types": 
"1.2.4" } }, 
"sha512-QtuV5OMR8/rdKJs213iwXDpfVvnskPXY/S0ZiFbsTjQZycuqPbMW8Gf/XhLfwE5njW8sxI2WjISURXPlHypMFA=="],
@@ -449,6 +484,8 @@
 
     "end-of-stream": ["end-of-stream@1.4.4", "", { "dependencies": { "once": 
"^1.4.0" } }, 
"sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="],
 
+    "enhanced-resolve": ["enhanced-resolve@5.18.1", "", { "dependencies": { 
"graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, 
"sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg=="],
+
     "entities": ["entities@4.5.0", "", {}, 
"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
 
     "es-module-lexer": ["es-module-lexer@1.6.0", "", {}, 
"sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ=="],
@@ -621,6 +658,8 @@
 
     "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": 
"^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, 
"sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
 
+    "jiti": ["jiti@2.4.2", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, 
"sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="],
+
     "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" 
}, "bin": { "js-yaml": "bin/js-yaml.js" } }, 
"sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
 
     "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, 
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
@@ -629,6 +668,28 @@
 
     "kleur": ["kleur@4.1.5", "", {}, 
"sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="],
 
+    "lightningcss": ["lightningcss@1.29.2", "", { "dependencies": { 
"detect-libc": "^2.0.3" }, "optionalDependencies": { 
"lightningcss-darwin-arm64": "1.29.2", "lightningcss-darwin-x64": "1.29.2", 
"lightningcss-freebsd-x64": "1.29.2", "lightningcss-linux-arm-gnueabihf": 
"1.29.2", "lightningcss-linux-arm64-gnu": "1.29.2", 
"lightningcss-linux-arm64-musl": "1.29.2", "lightningcss-linux-x64-gnu": 
"1.29.2", "lightningcss-linux-x64-musl": "1.29.2", 
"lightningcss-win32-arm64-msvc": "1.29.2", "lightningcss-win32-x64-msvc": 
"1.29.2" } }, 
"sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA=="],
+
+    "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.29.2", "", { 
"os": "darwin", "cpu": "arm64" }, 
"sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA=="],
+
+    "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.29.2", "", { "os": 
"darwin", "cpu": "x64" }, 
"sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w=="],
+
+    "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.29.2", "", { 
"os": "freebsd", "cpu": "x64" }, 
"sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg=="],
+
+    "lightningcss-linux-arm-gnueabihf": 
["lightningcss-linux-arm-gnueabihf@1.29.2", "", { "os": "linux", "cpu": "arm" 
}, 
"sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg=="],
+
+    "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.29.2", 
"", { "os": "linux", "cpu": "arm64" }, 
"sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ=="],
+
+    "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.29.2", 
"", { "os": "linux", "cpu": "arm64" }, 
"sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ=="],
+
+    "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.29.2", "", { 
"os": "linux", "cpu": "x64" }, 
"sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg=="],
+
+    "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.29.2", "", 
{ "os": "linux", "cpu": "x64" }, 
"sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w=="],
+
+    "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.29.2", 
"", { "os": "win32", "cpu": "arm64" }, 
"sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw=="],
+
+    "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.29.2", "", 
{ "os": "win32", "cpu": "x64" }, 
"sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA=="],
+
     "load-yaml-file": ["load-yaml-file@0.2.0", "", { "dependencies": { 
"graceful-fs": "^4.1.5", "js-yaml": "^3.13.0", "pify": "^4.0.1", "strip-bom": 
"^3.0.0" } }, 
"sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw=="],
 
     "locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": 
"^4.1.0" } }, 
"sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="],
@@ -995,6 +1056,10 @@
 
     "style-to-object": ["style-to-object@1.0.8", "", { "dependencies": { 
"inline-style-parser": "0.2.4" } }, 
"sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g=="],
 
+    "tailwindcss": ["tailwindcss@4.1.5", "", {}, 
"sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA=="],
+
+    "tapable": ["tapable@2.2.1", "", {}, 
"sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="],
+
     "tar": ["tar@7.4.3", "", { "dependencies": { "@isaacs/fs-minipass": 
"^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.0.1", 
"mkdirp": "^3.0.1", "yallist": "^5.0.0" } }, 
"sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw=="],
 
     "tar-fs": ["tar-fs@3.0.8", "", { "dependencies": { "pump": "^3.0.0", 
"tar-stream": "^3.1.5" }, "optionalDependencies": { "bare-fs": "^4.0.1", 
"bare-path": "^3.0.0" } }, 
"sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg=="],
@@ -1117,6 +1182,18 @@
 
     "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { 
"ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, 
"sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="],
 
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.4.3", "", 
{ "dependencies": { "@emnapi/wasi-threads": "1.0.2", "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": 
["@emnapi/runtime@1.4.3", "", { "dependencies": { "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": 
["@emnapi/wasi-threads@1.0.2", "", { "dependencies": { "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": 
["@napi-rs/wasm-runtime@0.2.9", "", { "dependencies": { "@emnapi/core": 
"^1.4.0", "@emnapi/runtime": "^1.4.0", "@tybys/wasm-util": "^0.9.0" }, 
"bundled": true }, 
"sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": 
["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": 
true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
     "ansi-align/string-width": ["string-width@4.2.3", "", { "dependencies": { 
"emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": 
"^6.0.1" } }, 
"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
 
     "anymatch/picomatch": ["picomatch@2.3.1", "", {}, 
"sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
@@ -1153,6 +1230,22 @@
 
     "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, 
"sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="],
 
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads": 
["@emnapi/wasi-threads@1.0.2", "", { "dependencies": { "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/core/tslib": ["tslib@2.8.1", "", { 
"bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime/tslib": ["tslib@2.8.1", 
"", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads/tslib": 
["tslib@2.8.1", "", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/core": 
["@emnapi/core@1.4.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.0.2", 
"tslib": "^2.4.0" }, "bundled": true }, 
"sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/runtime": 
["@emnapi/runtime@1.4.3", "", { "dependencies": { "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": 
["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util/tslib": ["tslib@2.8.1", 
"", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
     "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, 
"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
 
     "ansi-align/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { 
"dependencies": { "ansi-regex": "^5.0.1" } }, 
"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
@@ -1169,6 +1262,18 @@
 
     "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, 
"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
 
+    "@tailwindcss/oxide-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads/tslib": 
["tslib@2.8.1", "", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+    
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/core/@emnapi/wasi-threads":
 ["@emnapi/wasi-threads@1.0.2", "", { "dependencies": { "tslib": "^2.4.0" }, 
"bundled": true }, 
"sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA=="],
+
+    "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/core/tslib": 
["tslib@2.8.1", "", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+    
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/runtime/tslib": 
["tslib@2.8.1", "", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+    
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util/tslib": 
["tslib@2.8.1", "", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
     "ansi-align/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", 
{}, 
"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
+
+    
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime/@emnapi/core/@emnapi/wasi-threads/tslib":
 ["tslib@2.8.1", "", { "bundled": true }, 
"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/docs-starlight/package.json 
new/terragrunt-0.78.4/docs-starlight/package.json
--- old/terragrunt-0.78.3/docs-starlight/package.json   2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/docs-starlight/package.json   2025-05-13 
20:23:29.000000000 +0200
@@ -11,13 +11,16 @@
   },
   "dependencies": {
     "@astrojs/starlight": "^0.31.1",
+    "@astrojs/starlight-tailwind": "^4.0.1",
     "@astrojs/vercel": "^8.1.1",
+    "@tailwindcss/vite": "^4.1.5",
     "@zachleat/table-saw": "^1.0.6",
     "astro": "^5.4.2",
     "astro-d2": "^0.7.0",
     "gray-matter": "^4.0.3",
     "sharp": "^0.32.6",
-    "starlight-links-validator": "^0.14.3"
+    "starlight-links-validator": "^0.14.3",
+    "tailwindcss": "^4.1.5"
   },
   "patchedDependencies": {
     "@astrojs/starlight@0.31.1": "patches/@astrojs%2Fstarlight@0.31.1.patch"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/assets/gruntwork-logo-mark-black.svg 
new/terragrunt-0.78.4/docs-starlight/src/assets/gruntwork-logo-mark-black.svg
--- 
old/terragrunt-0.78.3/docs-starlight/src/assets/gruntwork-logo-mark-black.svg   
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/terragrunt-0.78.4/docs-starlight/src/assets/gruntwork-logo-mark-black.svg   
    2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,3 @@
+<svg width="512" height="512" viewBox="0 0 512 512" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<path d="M240.511 14.8887C238.537 11.7136 241.561 7.10591 245.151 
8.15108C385.826 49.1115 455.362 105.305 478.864 211.331H345.692C341.107 193.408 
333.188 180.07 321.934 171.317C311.097 162.147 289.631 157.562 257.537 
157.562C227.943 157.562 207.103 162.564 195.015 172.567C182.927 182.154 173.758 
196.117 167.505 214.457C161.253 232.38 158.127 254.054 158.127 279.48C158.127 
304.905 161.462 326.579 168.131 344.502C174.8 362.425 184.595 376.18 197.516 
385.766C210.854 395.353 229.194 400.146 252.535 400.146C275.043 400.146 292.34 
398.271 304.428 394.52C316.516 390.768 325.685 385.141 331.938 377.639C338.19 
369.719 342.775 360.341 345.692 349.504H307.88C283.184 349.504 263.164 329.484 
263.164 304.787V253.846H425.095C444.268 253.846 458.44 259.056 467.61 
269.476C476.779 279.48 483.032 294.902 486.366 315.742L512 
491.428H408.839L400.086 432.684C364.078 488.696 315.224 503.307 249.409 
503.307C196.474 503.307 154.793 494.346 124.365 476.423C62.4517 439.105 13.5468 
357.519 41.3238 251.502C45.5
 964 235.195 22.3875 227.402 6.71548 230.651C4.79551 231.049 1.71572 227.624 
2.83557 226.015C10.1503 215.501 23.9462 198.101 42.5653 185.388C54.5086 177.233 
49.0229 159.223 3.39737 154.866C0.537409 154.593 -1.03324 151.484 0.7659 
149.244C17.1073 128.9 86.7099 54.8033 233.646 54.8033C249.977 54.8033 253.092 
35.1262 240.511 14.8887Z" fill="black"/>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/assets/gruntwork-logo-mark-white.svg 
new/terragrunt-0.78.4/docs-starlight/src/assets/gruntwork-logo-mark-white.svg
--- 
old/terragrunt-0.78.3/docs-starlight/src/assets/gruntwork-logo-mark-white.svg   
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/terragrunt-0.78.4/docs-starlight/src/assets/gruntwork-logo-mark-white.svg   
    2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,3 @@
+<svg width="512" height="512" viewBox="0 0 512 512" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<path d="M240.511 14.8887C238.537 11.7136 241.561 7.10591 245.151 
8.15108C385.826 49.1115 455.362 105.305 478.864 211.331H345.692C341.107 193.408 
333.188 180.07 321.934 171.317C311.097 162.147 289.631 157.562 257.537 
157.562C227.943 157.562 207.103 162.564 195.015 172.567C182.927 182.154 173.758 
196.117 167.505 214.457C161.253 232.38 158.127 254.054 158.127 279.48C158.127 
304.905 161.462 326.579 168.131 344.502C174.8 362.425 184.595 376.18 197.516 
385.766C210.854 395.353 229.194 400.146 252.535 400.146C275.043 400.146 292.34 
398.271 304.428 394.52C316.516 390.768 325.685 385.141 331.938 377.639C338.19 
369.719 342.775 360.341 345.692 349.504H307.88C283.184 349.504 263.164 329.484 
263.164 304.787V253.846H425.095C444.268 253.846 458.44 259.056 467.61 
269.476C476.779 279.48 483.032 294.902 486.366 315.742L512 
491.428H408.839L400.086 432.684C364.078 488.696 315.224 503.307 249.409 
503.307C196.474 503.307 154.793 494.346 124.365 476.423C62.4517 439.105 13.5468 
357.519 41.3238 251.502C45.5
 964 235.195 22.3875 227.402 6.71548 230.651C4.79551 231.049 1.71572 227.624 
2.83557 226.015C10.1503 215.501 23.9462 198.101 42.5653 185.388C54.5086 177.233 
49.0229 159.223 3.39737 154.866C0.537409 154.593 -1.03324 151.484 0.7659 
149.244C17.1073 128.9 86.7099 54.8033 233.646 54.8033C249.977 54.8033 253.092 
35.1262 240.511 14.8887Z" fill="white"/>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/assets/horizontal-logo-dark.svg 
new/terragrunt-0.78.4/docs-starlight/src/assets/horizontal-logo-dark.svg
--- old/terragrunt-0.78.3/docs-starlight/src/assets/horizontal-logo-dark.svg    
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/assets/horizontal-logo-dark.svg    
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,30 @@
+<svg width="1129" height="264" viewBox="0 0 1129 264" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M128.433 0.757812L239.593 
64.7578V192.758L128.433 256.758L17.2734 192.758V64.7578L128.433 
0.757812ZM227.593 71.6668L128.433 14.5757L29.2734 71.6668V185.849L128.433 
242.94L227.593 185.849V71.6668Z" fill="#160C56"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M128.433 
242.938V185.847V128.756L78.8534 100.211L29.2734 71.6653V128.756V185.847L128.433 
242.938Z" fill="white"/>
+<path d="M178.013 214.395L227.593 185.849L178.013 157.304L128.433 
185.849V242.94L178.013 214.395Z" fill="#87E0E1"/>
+<path d="M128.433 128.758V185.849L178.013 157.304L128.433 128.758Z" 
fill="#1B46DD"/>
+<path d="M178.013 100.213L128.433 128.758L178.013 157.304L227.593 
128.758L178.013 100.213Z" fill="#B068E9"/>
+<path d="M178.013 43.1217L128.433 14.5762L78.8534 43.1217L29.2734 
71.6672L78.8534 100.213L128.433 71.6672L178.013 100.213L227.593 71.6672L178.013 
43.1217Z" fill="#F9DB4E"/>
+<path d="M128.433 128.758L178.013 100.213L128.433 71.6672L78.8534 
100.213L128.433 128.758Z" fill="#E94A5D"/>
+<path d="M810.028 215.863V220.704H814.82C815.031 220.704 815.273 220.66 
815.547 220.571C815.82 220.483 816.075 220.345 816.311 220.155C816.56 219.966 
816.771 219.714 816.945 219.399C817.119 219.084 817.206 218.7 817.206 
218.246C817.206 217.868 817.138 217.534 817.001 217.244C816.877 216.941 816.703 
216.689 816.479 216.487C816.268 216.286 816.013 216.134 815.715 216.034C815.429 
215.92 815.124 215.863 814.801 215.863H810.028ZM814.074 206.353C814.074 206.353 
812.726 206.353 810.028 206.353V210.664H814.055C814.267 210.664 814.484 210.62 
814.708 210.532C814.932 210.431 815.131 210.292 815.305 210.116C815.491 209.926 
815.64 209.7 815.752 209.435C815.876 209.17 815.938 208.868 815.938 
208.527C815.938 208.2 815.882 207.903 815.771 207.639C815.659 207.374 815.51 
207.147 815.323 206.958C815.149 206.769 814.95 206.624 814.727 206.523C814.515 
206.41 814.298 206.353 814.074 206.353ZM815.547 
226.376H803V200.662H814.484C815.814 200.662 817.007 200.819 818.064 
201.134C819.12 201.45 820.021 201.916 
 820.767 202.534C821.513 203.151 822.084 203.914 822.482 204.821C822.88 205.729 
823.079 206.782 823.079 207.979C823.079 208.496 822.992 209.006 822.818 
209.511C822.656 210.015 822.439 210.481 822.165 210.91C821.892 211.326 821.575 
211.697 821.214 212.025C820.866 212.34 820.506 212.574 820.133 212.725C820.705 
212.952 821.252 213.261 821.774 213.651C822.296 214.029 822.756 214.471 823.153 
214.975C823.551 215.466 823.868 216.015 824.104 216.62C824.34 217.225 824.458 
217.868 824.458 218.548C824.458 220.011 824.191 221.239 823.657 222.235C823.135 
223.231 822.451 224.038 821.606 224.655C820.761 225.273 819.804 225.714 818.735 
225.979C817.678 226.244 816.616 226.376 815.547 226.376Z" fill="#160C56"/>
+<path d="M840.893 200.662H849.077L839.494 216.676L839.513 
226.376H832.485V216.714L822.958 200.662H831.086L835.971 210.399H836.027L840.893 
200.662Z" fill="#160C56"/>
+<path d="M877.528 217.357L877.547 212.366H890.672C890.784 214.571 890.535 
216.576 889.926 218.378C889.33 220.168 888.447 221.706 887.279 222.992C886.123 
224.265 884.731 225.254 883.103 225.96C881.475 226.653 879.697 227 877.771 
227C875.832 227 874.011 226.647 872.308 225.941C870.618 225.235 869.139 224.271 
867.871 223.048C866.616 221.826 865.622 220.395 864.888 218.756C864.155 217.105 
863.788 215.347 863.788 213.481C863.788 211.603 864.155 209.851 864.888 
208.225C865.622 206.586 866.616 205.155 867.871 203.933C869.139 202.71 870.618 
201.752 872.308 201.059C874.011 200.353 875.832 200 877.771 200C879.722 200 
881.543 200.353 883.233 201.059C884.936 201.765 886.44 202.754 887.745 
204.027L883.177 208.66C882.568 207.828 881.798 207.166 880.866 206.674C879.933 
206.183 878.902 205.937 877.771 205.937C876.801 205.937 875.894 206.132 875.049 
206.523C874.204 206.901 873.464 207.431 872.83 208.111C872.209 208.779 871.712 
209.574 871.339 210.494C870.978 211.414 870.798 212.416 870.798 213.5C870
 .798 214.571 870.978 215.574 871.339 216.506C871.712 217.426 872.209 218.227 
872.83 218.908C873.464 219.576 874.204 220.105 875.049 220.496C875.894 220.874 
876.801 221.063 877.771 221.063C879.523 221.063 880.872 220.735 881.816 
220.08C882.761 219.412 883.389 218.504 883.699 217.357C884.01 216.21 877.528 
217.357 877.528 217.357Z" fill="#160C56"/>
+<path d="M901.401 212.479H905.335C905.708 212.479 906.062 212.41 906.398 
212.271C906.733 212.132 907.025 211.937 907.274 211.685C907.523 211.433 907.715 
211.13 907.852 210.777C908.001 210.412 908.076 210.008 908.076 209.567C908.076 
209.151 908.001 208.761 907.852 208.395C907.715 208.029 907.523 207.714 907.274 
207.45C907.025 207.185 906.733 206.977 906.398 206.826C906.075 206.674 905.727 
206.599 905.354 206.599H901.401V212.479ZM915.738 226.376H907.703L903.75 
218.416H901.401V226.376H894.373V200.662H905.652C907.032 200.662 908.299 200.882 
909.455 201.324C910.611 201.752 911.605 202.357 912.438 203.139C913.283 203.92 
913.936 204.859 914.396 205.956C914.868 207.04 915.104 208.244 915.104 
209.567C915.104 211.37 914.7 212.933 913.892 214.256C913.097 215.567 912.009 
216.582 910.63 217.3L915.738 226.376Z" fill="#160C56"/>
+<path d="M934.074 216.487C934.074 216.487 934.074 211.212 934.074 
200.662H941.103V216.468C941.103 217.981 940.835 219.387 940.301 220.685C939.779 
221.971 939.021 223.08 938.026 224.013C937.045 224.945 935.845 225.676 934.428 
226.206C933.024 226.735 931.445 227 929.693 227C928.077 227 926.573 226.761 
925.181 226.282C923.789 225.79 922.577 225.09 921.546 224.183C920.527 223.275 
919.725 222.172 919.141 220.874C918.557 219.563 918.265 218.095 918.265 
216.468V200.662H925.274V216.506C925.274 217.174 925.368 217.792 925.554 
218.359C925.74 218.926 926.02 219.418 926.393 219.834C926.766 220.237 927.226 
220.553 927.773 220.779C928.332 221.006 928.972 221.12 929.693 221.12C930.401 
221.12 931.029 221.006 931.576 220.779C932.123 220.553 932.576 220.237 932.937 
219.834C933.31 219.418 933.589 218.926 933.776 218.359C933.975 217.792 934.074 
217.168 934.074 216.487Z" fill="#160C56"/>
+<path d="M969.002 200.662V226.376H962.906L952.279 
212.536V226.376H945.251V200.662H951.422L961.993 214.445V200.662H969.002Z" 
fill="#160C56"/>
+<path d="M978.464 
226.376V206.599H971.771V200.662H992.13V206.599H985.455V226.376H978.464Z" 
fill="#160C56"/>
+<path d="M1017.23 200.7L1020.77 216.412H1020.84L1025.32 
200.643H1032.74L1024.25 226.376H1017.52L1013.53 212.8L1009.53 
226.376H1002.8L994.314 200.643H1001.73L1006.23 216.412H1006.32L1009.82 
200.7H1017.23Z" fill="#160C56"/>
+<path d="M1032.36 213.481C1032.36 211.603 1032.72 209.851 1033.46 
208.225C1034.19 206.586 1035.18 205.155 1036.44 203.933C1037.71 202.71 1039.19 
201.752 1040.88 201.059C1042.58 200.353 1044.4 200 1046.34 200C1048.26 200 
1050.07 200.353 1051.76 201.059C1053.47 201.752 1054.95 202.71 1056.22 
203.933C1057.49 205.155 1058.49 206.586 1059.22 208.225C1059.95 209.851 1060.32 
211.603 1060.32 213.481C1060.32 215.347 1059.95 217.105 1059.22 218.756C1058.49 
220.395 1057.49 221.826 1056.22 223.048C1054.95 224.271 1053.47 225.235 1051.76 
225.941C1050.07 226.647 1048.26 227 1046.34 227C1044.4 227 1042.58 226.647 
1040.88 225.941C1039.19 225.235 1037.71 224.271 1036.44 223.048C1035.18 221.826 
1034.19 220.395 1033.46 218.756C1032.72 217.105 1032.36 215.347 1032.36 
213.481ZM1039.37 213.5C1039.37 214.571 1039.55 215.574 1039.91 216.506C1040.28 
217.426 1040.78 218.227 1041.4 218.908C1042.03 219.576 1042.77 220.105 1043.62 
220.496C1044.46 220.874 1045.37 221.063 1046.34 221.063C1047.31 221.063 1048.21 
2
 20.874 1049.06 220.496C1049.92 220.105 1050.66 219.576 1051.28 218.908C1051.91 
218.227 1052.41 217.426 1052.77 216.506C1053.13 215.574 1053.31 214.571 1053.31 
213.5C1053.31 212.416 1053.13 211.414 1052.77 210.494C1052.41 209.574 1051.91 
208.779 1051.28 208.111C1050.66 207.431 1049.92 206.901 1049.06 206.523C1048.21 
206.132 1047.31 205.937 1046.34 205.937C1045.37 205.937 1044.46 206.132 1043.62 
206.523C1042.77 206.901 1042.03 207.431 1041.4 208.111C1040.78 208.779 1040.28 
209.574 1039.91 210.494C1039.55 211.414 1039.37 212.416 1039.37 213.5Z" 
fill="#160C56"/>
+<path d="M1070.98 212.479H1074.91C1075.28 212.479 1075.64 212.41 1075.97 
212.271C1076.31 212.132 1076.6 211.937 1076.85 211.685C1077.1 211.433 1077.29 
211.13 1077.43 210.777C1077.57 210.412 1077.65 210.008 1077.65 209.567C1077.65 
209.151 1077.57 208.761 1077.43 208.395C1077.29 208.029 1077.1 207.714 1076.85 
207.45C1076.6 207.185 1076.31 206.977 1075.97 206.826C1075.65 206.674 1075.3 
206.599 1074.93 206.599H1070.98V212.479ZM1085.31 226.376H1077.28L1073.32 
218.416H1070.98V226.376H1063.95V200.662H1075.23C1076.61 200.662 1077.87 200.882 
1079.03 201.324C1080.18 201.752 1081.18 202.357 1082.01 203.139C1082.86 203.92 
1083.51 204.859 1083.97 205.956C1084.44 207.04 1084.68 208.244 1084.68 
209.567C1084.68 211.37 1084.27 212.933 1083.47 214.256C1082.67 215.567 1081.58 
216.582 1080.2 217.3L1085.31 226.376Z" fill="#160C56"/>
+<path d="M1095.13 200.662V212.158L1103.55 200.662H1111.7L1102.94 212.139L1112 
226.376H1103.72L1098.35 217.244L1095.13 
221.555V226.376H1088.1V200.662H1095.13Z" fill="#160C56"/>
+<path d="M1069.64 
111.476V95.0121H1069.6V71.7441H1094.05V95.0121H1112.27V111.476H1094.05V158.936C1094.05
 163.22 1096.4 165.656 1100.85 165.656H1111.85V182.96H1094.3C1078.93 182.96 
1069.6 174.812 1069.6 159.692V111.476H1069.64Z" fill="#160C56"/>
+<path d="M969.082 182.96V95.012H974.77L992.77 105.344H994.45C997.39 100.724 
1004.45 93.332 1020.74 93.332C1040.73 93.332 1053.33 104.504 1053.33 
125.168V182.96H1028.55V126.596C1028.55 116.516 1022.76 111.56 1013.43 
111.56C1002.85 111.56 993.778 117.44 993.778 132.308V182.96H969.082Z" 
fill="#160C56"/>
+<path d="M951.567 95.012V182.96H945.879L927.879 172.712H926.199C923.259 
177.332 916.119 184.724 900.243 184.724C880.503 184.724 867.903 173.552 867.903 
152.888V95.012H892.599V151.376C892.599 161.456 898.479 166.496 907.551 
166.496C917.799 166.496 926.871 160.532 926.871 145.664V95.012H951.567Z" 
fill="#160C56"/>
+<path d="M803.177 182.96V95.012H806.865L826.865 106.368H828.545C832.073 96.792 
839.717 92.156 857.525 94.088V114.752C840.221 112.316 827.873 116.936 827.873 
138.188V182.96H803.177Z" fill="#160C56"/>
+<path d="M694.529 137.012C694.529 107.276 712.589 93.332 734.681 
93.332C748.961 93.332 756.773 98.96 760.301 
104.168H761.981V95.012H785.669V179.348C785.669 204.968 769.541 218.576 741.065 
218.576C713.009 218.576 698.141 205.22 696.797 188.336V185.816H719.309C719.897 
194.636 726.281 201.356 740.561 201.356C754.505 201.356 760.889 194.552 760.889 
181.616V171.116H759.209C755.261 175.82 747.869 180.692 734.681 180.692C712.589 
180.692 694.529 166.664 694.529 137.012ZM719.477 137.012C719.477 153.728 
727.961 162.38 740.729 162.38C753.581 162.38 761.981 153.728 761.981 
137.012C761.981 120.212 753.581 111.56 740.729 111.56C727.961 111.56 719.477 
120.212 719.477 137.012Z" fill="#160C56"/>
+<path d="M627.14 121.472H604.796V118.952C606.728 103.076 621.512 92.996 
644.192 92.996C666.956 92.996 682.244 103.076 682.244 126.512V161.288C682.244 
169.856 682.748 175.736 684.764 180.44V182.96H677.496L660.236 
173.384H658.556C654.272 179.096 647.384 184.472 632.516 184.472C613.784 184.472 
599.756 174.224 599.756 157.508C599.756 139.952 613.28 132.476 630.248 
130.712L650.24 128.78C656.12 128.192 659.06 126.344 659.06 121.388C659.06 
113.996 653.516 109.964 643.688 109.964C634.112 109.964 627.476 113.912 627.14 
121.472ZM623.948 156.332C623.948 163.388 629.408 167.756 638.564 
167.756C647.804 167.756 658.892 162.548 658.892 146.504V141.296H657.212C654.524 
142.724 651.5 143.48 646.124 144.068L636.632 145.076C629.324 145.832 623.948 
148.94 623.948 156.332Z" fill="#160C56"/>
+<path d="M541.359 182.96V95.012H545.047L565.047 106.368H566.727C570.255 96.792 
577.899 92.156 595.707 94.088V114.752C578.403 112.316 566.055 116.936 566.055 
138.188V182.96H541.359Z" fill="#160C56"/>
+<path d="M475.961 182.96V95.012H479.649L499.649 106.368H501.329C504.857 96.792 
512.501 92.156 530.309 94.088V114.752C513.005 112.316 500.657 116.936 500.657 
138.188V182.96H475.961Z" fill="#160C56"/>
+<path d="M375.68 138.944C375.68 108.284 393.32 92.996 420.284 92.996C447.08 
92.996 462.788 108.704 462.788 135.752V144.992H399.284C399.62 158.18 406.844 
167.588 420.2 167.588C433.304 167.588 438.344 160.448 439.52 
154.736H461.024V157.256C458.504 169.352 447.836 184.976 420.536 184.976C393.32 
184.976 375.68 169.604 375.68 138.944ZM399.536 129.368H439.604C439.436 118.364 
433.472 110.132 420.032 110.132C406.928 110.132 400.544 118.7 399.536 129.368Z" 
fill="#160C56"/>
+<path d="M282 81.152V62H389.352V81.152H348.612V182.96H322.74V81.152H282Z" 
fill="#160C56"/>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/assets/horizontal-logo-light.svg 
new/terragrunt-0.78.4/docs-starlight/src/assets/horizontal-logo-light.svg
--- old/terragrunt-0.78.3/docs-starlight/src/assets/horizontal-logo-light.svg   
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/assets/horizontal-logo-light.svg   
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,30 @@
+<svg width="1129" height="264" viewBox="0 0 1129 264" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M128.433 0.757812L239.593 
64.7578V192.758L128.433 256.758L17.2734 192.758V64.7578L128.433 
0.757812ZM227.593 71.6668L128.433 14.5757L29.2734 71.6668V185.849L128.433 
242.94L227.593 185.849V71.6668Z" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M128.433 
242.938V185.847V128.756L78.8534 100.211L29.2734 71.6653V128.756V185.847L128.433 
242.938Z" fill="white"/>
+<path d="M178.013 214.395L227.593 185.849L178.013 157.304L128.433 
185.849V242.94L178.013 214.395Z" fill="#87E0E1"/>
+<path d="M128.433 128.758V185.849L178.013 157.304L128.433 128.758Z" 
fill="#1B46DD"/>
+<path d="M178.013 100.213L128.433 128.758L178.013 157.304L227.593 
128.758L178.013 100.213Z" fill="#B068E9"/>
+<path d="M178.013 43.1217L128.433 14.5762L78.8534 43.1217L29.2734 
71.6672L78.8534 100.213L128.433 71.6672L178.013 100.213L227.593 71.6672L178.013 
43.1217Z" fill="#F9DB4E"/>
+<path d="M128.433 128.758L178.013 100.213L128.433 71.6672L78.8534 
100.213L128.433 128.758Z" fill="#E94A5D"/>
+<path d="M810.028 215.926V220.766H814.82C815.031 220.766 815.273 220.722 
815.547 220.634C815.82 220.546 816.075 220.407 816.311 220.218C816.56 220.029 
816.771 219.777 816.945 219.462C817.119 219.147 817.206 218.762 817.206 
218.308C817.206 217.93 817.138 217.596 817.001 217.306C816.877 217.004 816.703 
216.752 816.479 216.55C816.268 216.348 816.013 216.197 815.715 216.096C815.429 
215.983 815.124 215.926 814.801 215.926H810.028ZM814.074 206.415C814.074 
206.415 812.726 206.415 810.028 206.415V210.726H814.055C814.267 210.726 814.484 
210.682 814.708 210.594C814.932 210.493 815.131 210.355 815.305 210.178C815.491 
209.989 815.64 209.762 815.752 209.497C815.876 209.233 815.938 208.93 815.938 
208.59C815.938 208.262 815.882 207.966 815.771 207.701C815.659 207.436 815.51 
207.21 815.323 207.02C815.149 206.831 814.95 206.686 814.727 206.586C814.515 
206.472 814.298 206.415 814.074 206.415ZM815.547 
226.439H803V200.724H814.484C815.814 200.724 817.007 200.882 818.064 
201.197C819.12 201.512 820.021 20
 1.978 820.767 202.596C821.513 203.214 822.084 203.976 822.482 204.884C822.88 
205.791 823.079 206.844 823.079 208.041C823.079 208.558 822.992 209.069 822.818 
209.573C822.656 210.077 822.439 210.544 822.165 210.972C821.892 211.388 821.575 
211.76 821.214 212.088C820.866 212.403 820.506 212.636 820.133 212.787C820.705 
213.014 821.252 213.323 821.774 213.714C822.296 214.092 822.756 214.533 823.153 
215.037C823.551 215.529 823.868 216.077 824.104 216.682C824.34 217.287 824.458 
217.93 824.458 218.611C824.458 220.073 824.191 221.302 823.657 222.298C823.135 
223.294 822.451 224.1 821.606 224.718C820.761 225.336 819.804 225.777 818.735 
226.041C817.678 226.306 816.616 226.439 815.547 226.439Z" fill="white"/>
+<path d="M840.893 200.724H849.077L839.494 216.739L839.513 
226.439H832.485V216.777L822.958 200.724H831.086L835.971 210.462H836.027L840.893 
200.724Z" fill="white"/>
+<path d="M877.528 217.42L877.547 212.428H890.672C890.784 214.634 890.535 
216.638 889.926 218.441C889.33 220.231 888.447 221.768 887.279 223.054C886.123 
224.327 884.731 225.317 883.103 226.023C881.475 226.716 879.697 227.062 877.771 
227.062C875.832 227.062 874.011 226.71 872.308 226.004C870.618 225.298 869.139 
224.334 867.871 223.111C866.616 221.888 865.622 220.457 864.888 218.819C864.155 
217.168 863.788 215.409 863.788 213.544C863.788 211.665 864.155 209.913 864.888 
208.287C865.622 206.649 866.616 205.218 867.871 203.995C869.139 202.773 870.618 
201.815 872.308 201.121C874.011 200.415 875.832 200.062 877.771 200.062C879.722 
200.062 881.543 200.415 883.233 201.121C884.936 201.827 886.44 202.817 887.745 
204.09L883.177 208.722C882.568 207.89 881.798 207.228 880.866 206.737C879.933 
206.245 878.902 205.999 877.771 205.999C876.801 205.999 875.894 206.195 875.049 
206.586C874.204 206.964 873.464 207.493 872.83 208.174C872.209 208.842 871.712 
209.636 871.339 210.556C870.978 211.476 870.798 21
 2.478 870.798 213.562C870.798 214.634 870.978 215.636 871.339 216.569C871.712 
217.489 872.209 218.289 872.83 218.97C873.464 219.638 874.204 220.168 875.049 
220.558C875.894 220.936 876.801 221.126 877.771 221.126C879.523 221.126 880.872 
220.798 881.816 220.142C882.761 219.474 883.389 218.567 883.699 217.42C884.01 
216.273 877.528 217.42 877.528 217.42Z" fill="white"/>
+<path d="M901.401 212.541H905.335C905.708 212.541 906.062 212.472 906.398 
212.334C906.733 212.195 907.025 211.999 907.274 211.747C907.523 211.495 907.715 
211.193 907.852 210.84C908.001 210.474 908.076 210.071 908.076 209.63C908.076 
209.214 908.001 208.823 907.852 208.457C907.715 208.092 907.523 207.777 907.274 
207.512C907.025 207.247 906.733 207.039 906.398 206.888C906.075 206.737 905.727 
206.661 905.354 206.661H901.401V212.541ZM915.738 226.439H907.703L903.75 
218.478H901.401V226.439H894.373V200.724H905.652C907.032 200.724 908.299 200.945 
909.455 201.386C910.611 201.815 911.605 202.42 912.438 203.201C913.283 203.983 
913.936 204.922 914.396 206.018C914.868 207.102 915.104 208.306 915.104 
209.63C915.104 211.432 914.7 212.995 913.892 214.319C913.097 215.63 912.009 
216.644 910.63 217.363L915.738 226.439Z" fill="white"/>
+<path d="M934.074 216.55C934.074 216.55 934.074 211.275 934.074 
200.724H941.103V216.531C941.103 218.044 940.835 219.449 940.301 220.747C939.779 
222.033 939.021 223.142 938.026 224.075C937.045 225.008 935.845 225.739 934.428 
226.268C933.024 226.798 931.445 227.062 929.693 227.062C928.077 227.062 926.573 
226.823 925.181 226.344C923.789 225.852 922.577 225.153 921.546 224.245C920.527 
223.338 919.725 222.235 919.141 220.936C918.557 219.626 918.265 218.157 918.265 
216.531V200.724H925.274V216.569C925.274 217.237 925.368 217.855 925.554 
218.422C925.74 218.989 926.02 219.481 926.393 219.897C926.766 220.3 927.226 
220.615 927.773 220.842C928.332 221.069 928.972 221.182 929.693 221.182C930.401 
221.182 931.029 221.069 931.576 220.842C932.123 220.615 932.576 220.3 932.937 
219.897C933.31 219.481 933.589 218.989 933.776 218.422C933.975 217.855 934.074 
217.231 934.074 216.55Z" fill="white"/>
+<path d="M969.002 200.724V226.439H962.906L952.279 
212.598V226.439H945.251V200.724H951.422L961.993 214.508V200.724H969.002Z" 
fill="white"/>
+<path d="M978.464 
226.439V206.661H971.771V200.724H992.13V206.661H985.455V226.439H978.464Z" 
fill="white"/>
+<path d="M1017.23 200.762L1020.77 216.474H1020.84L1025.32 
200.705H1032.74L1024.25 226.439H1017.52L1013.53 212.863L1009.53 
226.439H1002.8L994.314 200.705H1001.73L1006.23 216.474H1006.32L1009.82 
200.762H1017.23Z" fill="white"/>
+<path d="M1032.36 213.544C1032.36 211.665 1032.72 209.913 1033.46 
208.287C1034.19 206.649 1035.18 205.218 1036.44 203.995C1037.71 202.773 1039.19 
201.815 1040.88 201.121C1042.58 200.415 1044.4 200.062 1046.34 200.062C1048.26 
200.062 1050.07 200.415 1051.76 201.121C1053.47 201.815 1054.95 202.773 1056.22 
203.995C1057.49 205.218 1058.49 206.649 1059.22 208.287C1059.95 209.913 1060.32 
211.665 1060.32 213.544C1060.32 215.409 1059.95 217.168 1059.22 218.819C1058.49 
220.457 1057.49 221.888 1056.22 223.111C1054.95 224.334 1053.47 225.298 1051.76 
226.004C1050.07 226.71 1048.26 227.062 1046.34 227.062C1044.4 227.062 1042.58 
226.71 1040.88 226.004C1039.19 225.298 1037.71 224.334 1036.44 223.111C1035.18 
221.888 1034.19 220.457 1033.46 218.819C1032.72 217.168 1032.36 215.409 1032.36 
213.544ZM1039.37 213.562C1039.37 214.634 1039.55 215.636 1039.91 
216.569C1040.28 217.489 1040.78 218.289 1041.4 218.97C1042.03 219.638 1042.77 
220.168 1043.62 220.558C1044.46 220.936 1045.37 221.126 1046.34 221.126C
 1047.31 221.126 1048.21 220.936 1049.06 220.558C1049.92 220.168 1050.66 
219.638 1051.28 218.97C1051.91 218.289 1052.41 217.489 1052.77 216.569C1053.13 
215.636 1053.31 214.634 1053.31 213.562C1053.31 212.478 1053.13 211.476 1052.77 
210.556C1052.41 209.636 1051.91 208.842 1051.28 208.174C1050.66 207.493 1049.92 
206.964 1049.06 206.586C1048.21 206.195 1047.31 205.999 1046.34 205.999C1045.37 
205.999 1044.46 206.195 1043.62 206.586C1042.77 206.964 1042.03 207.493 1041.4 
208.174C1040.78 208.842 1040.28 209.636 1039.91 210.556C1039.55 211.476 1039.37 
212.478 1039.37 213.562Z" fill="white"/>
+<path d="M1070.98 212.541H1074.91C1075.28 212.541 1075.64 212.472 1075.97 
212.334C1076.31 212.195 1076.6 211.999 1076.85 211.747C1077.1 211.495 1077.29 
211.193 1077.43 210.84C1077.57 210.474 1077.65 210.071 1077.65 209.63C1077.65 
209.214 1077.57 208.823 1077.43 208.457C1077.29 208.092 1077.1 207.777 1076.85 
207.512C1076.6 207.247 1076.31 207.039 1075.97 206.888C1075.65 206.737 1075.3 
206.661 1074.93 206.661H1070.98V212.541ZM1085.31 226.439H1077.28L1073.32 
218.478H1070.98V226.439H1063.95V200.724H1075.23C1076.61 200.724 1077.87 200.945 
1079.03 201.386C1080.18 201.815 1081.18 202.42 1082.01 203.201C1082.86 203.983 
1083.51 204.922 1083.97 206.018C1084.44 207.102 1084.68 208.306 1084.68 
209.63C1084.68 211.432 1084.27 212.995 1083.47 214.319C1082.67 215.63 1081.58 
216.644 1080.2 217.363L1085.31 226.439Z" fill="white"/>
+<path d="M1095.13 200.724V212.22L1103.55 200.724H1111.7L1102.94 212.201L1112 
226.439H1103.72L1098.35 217.306L1095.13 
221.617V226.439H1088.1V200.724H1095.13Z" fill="white"/>
+<path d="M1069.64 
111.539V95.0746H1069.6V71.8066H1094.05V95.0746H1112.27V111.539H1094.05V158.999C1094.05
 163.283 1096.4 165.719 1100.85 165.719H1111.85V183.023H1094.3C1078.93 183.023 
1069.6 174.875 1069.6 159.755V111.539H1069.64Z" fill="white"/>
+<path d="M969.082 183.023V95.0745H974.77L992.77 105.407H994.45C997.39 100.787 
1004.45 93.3945 1020.74 93.3945C1040.73 93.3945 1053.33 104.567 1053.33 
125.231V183.023H1028.55V126.659C1028.55 116.579 1022.76 111.623 1013.43 
111.623C1002.85 111.623 993.778 117.503 993.778 132.371V183.023H969.082Z" 
fill="white"/>
+<path d="M951.567 95.0745V183.023H945.879L927.879 172.775H926.199C923.259 
177.395 916.119 184.787 900.243 184.787C880.503 184.787 867.903 173.615 867.903 
152.951V95.0745H892.599V151.439C892.599 161.519 898.479 166.559 907.551 
166.559C917.799 166.559 926.871 160.595 926.871 145.727V95.0745H951.567Z" 
fill="white"/>
+<path d="M803.177 183.023V95.0745H806.865L826.865 106.431H828.545C832.073 
96.8545 839.717 92.2185 857.525 94.1505V114.815C840.221 112.379 827.873 116.999 
827.873 138.251V183.023H803.177Z" fill="white"/>
+<path d="M694.529 137.075C694.529 107.339 712.589 93.3945 734.681 
93.3945C748.961 93.3945 756.773 99.0225 760.301 
104.231H761.981V95.0745H785.669V179.411C785.669 205.031 769.541 218.639 741.065 
218.639C713.009 218.639 698.141 205.283 696.797 188.399V185.879H719.309C719.897 
194.699 726.281 201.419 740.561 201.419C754.505 201.419 760.889 194.615 760.889 
181.679V171.179H759.209C755.261 175.883 747.869 180.755 734.681 180.755C712.589 
180.755 694.529 166.727 694.529 137.075ZM719.477 137.075C719.477 153.791 
727.961 162.443 740.729 162.443C753.581 162.443 761.981 153.791 761.981 
137.075C761.981 120.275 753.581 111.623 740.729 111.623C727.961 111.623 719.477 
120.275 719.477 137.075Z" fill="white"/>
+<path d="M627.14 121.535H604.796V119.015C606.728 103.139 621.512 93.0585 
644.192 93.0585C666.956 93.0585 682.244 103.139 682.244 126.575V161.351C682.244 
169.919 682.748 175.799 684.764 180.503V183.023H677.496L660.236 
173.447H658.556C654.272 179.159 647.384 184.535 632.516 184.535C613.784 184.535 
599.756 174.287 599.756 157.571C599.756 140.015 613.28 132.539 630.248 
130.775L650.24 128.843C656.12 128.255 659.06 126.407 659.06 121.451C659.06 
114.059 653.516 110.027 643.688 110.027C634.112 110.027 627.476 113.975 627.14 
121.535ZM623.948 156.395C623.948 163.451 629.408 167.819 638.564 
167.819C647.804 167.819 658.892 162.611 658.892 146.567V141.359H657.212C654.524 
142.787 651.5 143.543 646.124 144.131L636.632 145.139C629.324 145.895 623.948 
149.003 623.948 156.395Z" fill="white"/>
+<path d="M541.359 183.023V95.0745H545.047L565.047 106.431H566.727C570.255 
96.8545 577.899 92.2185 595.707 94.1505V114.815C578.403 112.379 566.055 116.999 
566.055 138.251V183.023H541.359Z" fill="white"/>
+<path d="M475.961 183.023V95.0745H479.649L499.649 106.431H501.329C504.857 
96.8545 512.501 92.2185 530.309 94.1505V114.815C513.005 112.379 500.657 116.999 
500.657 138.251V183.023H475.961Z" fill="white"/>
+<path d="M375.68 139.007C375.68 108.347 393.32 93.0585 420.284 93.0585C447.08 
93.0585 462.788 108.767 462.788 135.815V145.055H399.284C399.62 158.243 406.844 
167.651 420.2 167.651C433.304 167.651 438.344 160.511 439.52 
154.799H461.024V157.319C458.504 169.415 447.836 185.039 420.536 185.039C393.32 
185.039 375.68 169.667 375.68 139.007ZM399.536 129.431H439.604C439.436 118.427 
433.472 110.195 420.032 110.195C406.928 110.195 400.544 118.763 399.536 
129.431Z" fill="white"/>
+<path d="M282 
81.2145V62.0625H389.352V81.2145H348.612V183.023H322.74V81.2145H282Z" 
fill="white"/>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/assets/pipelines.svg 
new/terragrunt-0.78.4/docs-starlight/src/assets/pipelines.svg
--- old/terragrunt-0.78.3/docs-starlight/src/assets/pipelines.svg       
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/assets/pipelines.svg       
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,11 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<g clip-path="url(#clip0_295_4718)">
+<rect x="0.0834961" y="8.11084" width="16" height="1" fill="#B88CC0"/>
+<path d="M10.8897 10.4864C11.2606 9.93136 11.4585 9.27884 11.4585 
8.61133C11.4585 7.71622 11.1029 6.85778 10.47 6.22484C9.83705 5.59191 8.9786 
5.23633 8.0835 5.23633C7.41598 5.23633 6.76346 5.43427 6.20845 5.80512C5.65343 
6.17597 5.22085 6.70307 4.9654 7.31977C4.70996 7.93647 4.64312 8.61507 4.77335 
9.26976C4.90357 9.92444 5.22501 10.5258 5.69701 10.9978C6.16901 11.4698 6.77038 
11.7913 7.42507 11.9215C8.07975 12.0517 8.75835 11.9849 9.37505 11.7294C9.99175 
11.474 10.5189 11.0414 10.8897 10.4864Z" fill="#B88CC0" stroke="#B88CC0" 
stroke-width="2.25"/>
+</g>
+<defs>
+<clipPath id="clip0_295_4718">
+<rect width="16" height="16" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/components/Header.astro 
new/terragrunt-0.78.4/docs-starlight/src/components/Header.astro
--- old/terragrunt-0.78.3/docs-starlight/src/components/Header.astro    
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/components/Header.astro    
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,237 @@
+---
+import config from 'virtual:starlight/user-config';
+import type { Props } from '@astrojs/starlight/props';
+
+import LanguageSelect from 'virtual:starlight/components/LanguageSelect';
+import Search from 'virtual:starlight/components/Search';
+import SiteTitle from 'virtual:starlight/components/SiteTitle';
+import SocialIcons from 'virtual:starlight/components/SocialIcons';
+import ThemeSelect from 'virtual:starlight/components/ThemeSelect';
+
+import PipelinesLogo from '../assets/pipelines.svg';
+import { Image } from 'astro:assets';
+
+/**
+ * Render the `Search` component if Pagefind is enabled or the default search 
component has been overridden.
+ */
+const shouldRenderSearch =
+       config.pagefind || config.components.Search !== 
'@astrojs/starlight/components/Search.astro';
+
+let starCountDisplay = '8.6k';
+
+try {
+       const response = await 
fetch('https://api.github.com/repos/gruntwork-io/terragrunt');
+       if (response.ok) {
+               const data = await response.json();
+               const stars = data.stargazers_count;
+               if (typeof stars === 'number') {
+                       starCountDisplay = (stars / 1000).toFixed(1) + 'k';
+               }
+       } else {
+               console.error('Failed to fetch GitHub stars:', response.status, 
await response.text());
+       }
+} catch (error) {
+       console.error('Error fetching GitHub stars:', error);
+}
+---
+
+<div class="header sl-flex">
+       <!-- <div class="title-wrapper sl-flex"> -->
+               <SiteTitle {...Astro.props} />
+       <!-- </div> -->
+       <div class="sl-flex print:hidden">
+               {shouldRenderSearch && <Search {...Astro.props} />}
+       </div>
+       <div class="sl-hidden md:sl-flex print:hidden right-group">
+               <div class="sl-flex social-icons">
+                       <a href="https://github.com/gruntwork-io/terragrunt"; 
class="github-stars-btn" target="_blank" rel="noopener noreferrer">
+                               <span class="github-icon">
+                                       <svg xmlns="http://www.w3.org/2000/svg"; 
width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M12 
.297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 
11.385.6.113.82-.258.82-.577 
0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 
17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 
1.07 1.835 2.809 1.305 
3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 
0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 
1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 
3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 
5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 
.315.21.69.825.57C20.565 22.092 24 17.592 24 
12.297c0-6.627-5.373-12-12-12"/></svg>
+                               </span>
+                               <span 
class="github-count">{starCountDisplay}</span>
+                               <span class="github-star"><svg viewBox="0 0 24 
24" fill="currentColor" width="16" height="16"><path d="M12 .587l3.668 7.568 
8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.966-7.417 3.966 
1.481-8.279-6.064-5.828 8.332-1.151z"/></svg></span>
+                       </a>
+                       <SocialIcons {...Astro.props} />
+               </div>
+               <div class="sl-hidden lg:sl-flex pipelines-pill">
+                       <a href="https://www.gruntwork.io/platform/pipelines"; 
class="pipeline-pill">
+                               <span class="pipeline-icon">
+                                       <Image src={PipelinesLogo} width="24" 
height="24" class="product-icon" alt="Pipeline" />
+                               </span>
+                               <span class="pipeline-text">
+                                       <span class="pipeline-title">Automate 
your pipeline</span>
+                                       <span class="pipeline-subtitle">CI/CD 
built for Terragrunt</span>
+                               </span>
+                               <span class="pipeline-arrow">
+                                       <svg width="20" height="20" viewBox="0 
0 20 20" fill="none"><path d="M8 6l4 4-4 4" stroke="#A78BFA" stroke-width="2" 
stroke-linecap="round" stroke-linejoin="round"/></svg>
+                               </span>
+                       </a>
+               </div>
+               <div class="sl-flex social-icons">
+                       <a href="https://www.gruntwork.io/services/terragrunt"; 
class="support-btn">
+                               <svg xmlns="http://www.w3.org/2000/svg"; 
width="20" height="20" viewBox="0 0 24 24" fill="currentColor" 
style="margin-right: 0.5rem;">
+                                       <path d="M12 1a9 9 0 0 0-9 9v7c0 1.66 
1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 
3-1.34 3-3V10a9 9 0 0 0-9-9z"/>
+                               </svg>
+                               Support
+                               <span class="support-arrow">
+                                       <svg width="20" height="20" viewBox="0 
0 20 20" fill="none"><path d="M8 6l4 4-4 4" stroke="#fff" stroke-width="2" 
stroke-linecap="round" stroke-linejoin="round"/></svg>
+                               </span>
+                       </a>
+               </div>
+               <ThemeSelect {...Astro.props} />
+               <LanguageSelect {...Astro.props} />
+       </div>
+</div>
+
+<style>
+       .header {
+               gap: var(--sl-nav-gap);
+               justify-content: space-between;
+               align-items: center;
+               height: 100%;
+       }
+
+       .right-group,
+       .social-icons {
+               gap: 1rem;
+               align-items: center;
+       }
+       .social-icons::after {
+               content: '';
+               height: 2rem;
+               border-inline-end: 1px solid var(--sl-color-gray-5);
+       }
+
+       @media (min-width: 50rem) {
+               :global(:root[data-has-sidebar]) {
+                       --__sidebar-pad: calc(2 * var(--sl-nav-pad-x));
+               }
+               :global(:root:not([data-has-toc])) {
+                       --__toc-width: 0rem;
+               }
+               .header {
+                       --__sidebar-width: max(0rem, 
var(--sl-content-inline-start, 0rem) - var(--sl-nav-pad-x));
+                       --__main-column-fr: calc(
+                               (
+                                               100% + var(--__sidebar-pad, 
0rem) - var(--__toc-width, var(--sl-sidebar-width)) -
+                                                       (2 * var(--__toc-width, 
var(--sl-nav-pad-x))) - var(--sl-content-inline-start, 0rem) -
+                                                       var(--sl-content-width)
+                                       ) / 2
+                       );
+                       display: grid;
+                       grid-template-columns:
+                /* 1 (site title): runs up until the main content column's 
left edge or the width of the title, whichever is the largest  */
+                               minmax(
+                                       calc(var(--__sidebar-width) + max(0rem, 
var(--__main-column-fr) - var(--sl-nav-gap))),
+                                       auto
+                               )
+                               /* 2 (search box): all free space that is 
available. */
+                               1fr
+                               /* 3 (right items): use the space that these 
need. */
+                               auto;
+                       align-content: center;
+               }
+       }
+
+       .pipeline-pill {
+               display: flex;
+               align-items: center;
+               /* background: rgba(167, 139, 250, 0.08); */
+               border-radius: 999px;
+               padding: 0.5rem 1.25rem 0.5rem 0.5rem;
+               gap: 0.75rem;
+               text-decoration: none;
+               transition: background 0.2s;
+       }
+       .pipeline-pill:hover {
+               background: rgba(167, 139, 250, 0.18);
+       }
+       .pipeline-icon {
+               display: flex;
+               align-items: center;
+               justify-content: center;
+       }
+       .pipeline-text {
+               display: flex;
+               flex-direction: column;
+               line-height: 1.1;
+       }
+       .pipeline-title {
+               font-weight: 600;
+               font-size: 1rem;
+               color: var(--sl-color-text);
+       }
+       .pipeline-subtitle {
+               font-size: 0.85rem;
+               color: var(--sl-color-gray-2);
+       }
+       .pipeline-arrow {
+               display: flex;
+               align-items: center;
+               margin-left: 0.5rem;
+       }
+       .support-btn {
+               display: flex;
+               align-items: center;
+               background: #7c3aed;
+               color: #fff;
+               border-radius: 999px;
+               padding: 0.5rem 1.5rem;
+               font-weight: 600;
+               font-size: 1rem;
+               text-decoration: none;
+               transition: background 0.2s;
+               gap: 0.5rem;
+               box-shadow: 0 1px 4px rgba(124, 58, 237, 0.08);
+       }
+       .support-btn:hover {
+               background: #5b21b6;
+       }
+       .support-arrow {
+               display: flex;
+               align-items: center;
+               margin-left: 0.25rem;
+       }
+
+       .github-stars-btn {
+               display: flex;
+               align-items: center;
+               border: 1px solid var(--sl-color-gray-5);
+               color: var(--sl-color-text);
+               border-radius: 999px;
+               padding: 0.35rem 0.75rem;
+               font-weight: 500;
+               font-size: 0.9rem;
+               text-decoration: none;
+               transition: background 0.2s, border-color 0.2s;
+               gap: 0.5rem;
+               white-space: nowrap;
+       }
+       .github-stars-btn:hover {
+               border-color: var(--sl-color-gray-4);
+               background: var(--sl-color-hover);
+       }
+       .github-icon svg {
+               width: 16px;
+               height: 16px;
+               vertical-align: middle;
+               display: flex;
+               align-items: center;
+               color: var(--sl-color-accent-high);
+       }
+       .github-count {
+               font-weight: 600;
+               vertical-align: middle;
+               display: flex;
+               align-items: center;
+               color: var(--sl-color-accent-high);
+       }
+
+       .github-star {
+               display: flex;
+               vertical-align: middle;
+               align-items: center;
+               color: var(--sl-color-accent-high);
+               transform: translateY(-1.5px);
+       }
+</style>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/components/SiteTitle.astro 
new/terragrunt-0.78.4/docs-starlight/src/components/SiteTitle.astro
--- old/terragrunt-0.78.3/docs-starlight/src/components/SiteTitle.astro 
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/components/SiteTitle.astro 
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,62 @@
+---
+import { logos } from 'virtual:starlight/user-images';
+import config from 'virtual:starlight/user-config';
+import type { Props } from '@astrojs/starlight/props';
+const { siteTitleHref } = Astro.props;
+---
+
+<a href={siteTitleHref} class="site-title sl-flex">
+       {
+               config.logo && logos.dark && (
+                       <>
+                               <img
+                                       class:list={{ 'light:sl-hidden 
print:hidden light-logo': !('src' in config.logo) }}
+                                       alt={config.logo.alt}
+                                       src={logos.dark.src}
+                                       width={logos.dark.width}
+                                       height={logos.dark.height}
+                               />
+                               {/* Show light alternate if a user configure 
both light and dark logos. */}
+                               {!('src' in config.logo) && (
+                                       <img
+                                               class="dark:sl-hidden 
print:block dark-logo"
+                                               alt={config.logo.alt}
+                                               src={logos.light?.src}
+                                               width={logos.light?.width}
+                                               height={logos.light?.height}
+                                       />
+                               )}
+                       </>
+               )
+       }
+</a>
+
+<style>
+       .site-title {
+               align-items: center;
+               gap: var(--sl-nav-gap);
+               font-size: var(--sl-text-h4);
+               font-weight: 600;
+               color: var(--sl-color-text-accent);
+               text-decoration: none;
+               white-space: nowrap;
+       }
+       img {
+               height: calc(var(--sl-nav-height) - 2 * var(--sl-nav-pad-y));
+               width: auto;
+               max-width: 100%;
+               min-width: var(--sl-nav-height);
+               object-fit: contain;
+               object-position: 0 50%;
+       }
+
+       @media (max-width: 768px) {
+               img.dark-logo {
+                       content: url('/src/assets/logo-dark.svg');
+               }
+
+               img.light-logo {
+                       content: url('/src/assets/logo-light.svg');
+               }
+       }
+</style>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/content/docs/index.mdx 
new/terragrunt-0.78.4/docs-starlight/src/content/docs/index.mdx
--- old/terragrunt-0.78.3/docs-starlight/src/content/docs/index.mdx     
2025-05-12 16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/docs-starlight/src/content/docs/index.mdx     
1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
----
-title: Terragrunt
-description: The flexible Infrastructure as Code orchestrator that allows 
OpenTofu/Terraform to scale.
-template: splash
-hero:
-  tagline: Flexible orchestrator to scale IaC.
-  image:
-    dark: /src/assets/logo-light.svg
-    light: /src/assets/logo-dark.svg
-  actions:
-    - text: Quick Start
-      link: /docs/getting-started/quick-start
-      icon: rocket
-    - text: Reference
-      link: /docs/reference/hcl
-      icon: open-book
----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/layouts/BaseLayout.astro 
new/terragrunt-0.78.4/docs-starlight/src/layouts/BaseLayout.astro
--- old/terragrunt-0.78.3/docs-starlight/src/layouts/BaseLayout.astro   
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/layouts/BaseLayout.astro   
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,21 @@
+---
+interface Props {
+       title: string;
+}
+
+const { title } = Astro.props;
+---
+<!doctype html>
+<html lang="en">
+       <head>
+               <meta charset="UTF-8" />
+               <meta name="description" content="Terragrunt Homepage" />
+               <meta name="viewport" content="width=device-width" />
+               <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
+               <meta name="generator" content={Astro.generator} />
+               <title>{title}</title>
+       </head>
+       <body class="bg-white text-gray-900 antialiased">
+               <slot />
+       </body>
+</html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/pages/index.astro 
new/terragrunt-0.78.4/docs-starlight/src/pages/index.astro
--- old/terragrunt-0.78.3/docs-starlight/src/pages/index.astro  1970-01-01 
01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/pages/index.astro  2025-05-13 
20:23:29.000000000 +0200
@@ -0,0 +1,48 @@
+---
+import { Image } from 'astro:assets';
+import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
+import DarkLogo from '../assets/logo-dark.svg'
+import LightLogo from '../assets/logo-light.svg'
+import GruntworkLogoBlack from '../assets/gruntwork-logo-mark-black.svg';
+import GruntworkLogoWhite from '../assets/gruntwork-logo-mark-white.svg';
+---
+
+<div class="flex flex-col min-h-screen">
+       <StarlightPage frontmatter={{
+               template: 'splash',
+               title: 'Terragrunt',
+               description: 'Terragrunt is a flexible orchestration tool that 
allows Infrastructure as Code written in OpenTofu/Terraform to scale.',
+               pagefind: false,
+               hero: {
+                       title: 'Terragrunt',
+                       tagline: 'Use OpenTofu/Terraform at scale, faster and 
safer.',
+                       image: {
+                               dark: LightLogo,
+                               light: DarkLogo,
+                               alt: 'Terragrunt Logo',
+                       },
+                       actions: [
+                               {
+                                       text: 'Quick Start',
+                                       icon: 'rocket',
+                                       link: 
'/docs/getting-started/quick-start/'
+                               },
+                               {
+                                       text: 'Docs',
+                                       icon: 'open-book',
+                                       link: '/docs/reference/hcl/'
+                               }
+                       ]
+               }
+       }}>
+       </StarlightPage>
+
+       <footer class="flex items-center justify-center py-6 px-4 bg-gray-100 
dark:bg-gray-800 text-gray-600 dark:text-gray-300 mt-auto">
+               <div class="flex items-center gap-[0.5em]">
+                       <Image src={GruntworkLogoBlack} alt="Gruntwork Logo" 
class="w-6 h-6 dark:sl-hidden" />
+                       <Image src={GruntworkLogoWhite} alt="Gruntwork Logo" 
class="w-6 h-6 light:sl-hidden" />
+                       <span>&nbsp;From the DevOps experts at&nbsp;</span>
+           </div>
+               <a href="https://gruntwork.io"; class="text-blue-600 
dark:text-blue-400 no-underline hover:underline">Gruntwork</a>
+       </footer>
+</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/docs-starlight/src/styles/global.css 
new/terragrunt-0.78.4/docs-starlight/src/styles/global.css
--- old/terragrunt-0.78.3/docs-starlight/src/styles/global.css  1970-01-01 
01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/docs-starlight/src/styles/global.css  2025-05-13 
20:23:29.000000000 +0200
@@ -0,0 +1,36 @@
+@layer base, starlight, theme, components, utilities;
+
+@import '@astrojs/starlight-tailwind';
+@import 'tailwindcss/theme.css' layer(theme);
+@import 'tailwindcss/utilities.css' layer(utilities);
+
+@theme {
+  /* Your preferred text font. Starlight uses a system font stack by default. 
*/
+  --font-sans: 'Atkinson Hyperlegible';
+  /* Your preferred code font. Starlight uses system monospace fonts by 
default. */
+  --font-mono: 'IBM Plex Mono';
+  /* Your preferred accent color. Indigo is closest to Starlight’s defaults. */
+  --color-accent-50: var(--color-indigo-50);
+  --color-accent-100: var(--color-indigo-100);
+  --color-accent-200: var(--color-indigo-200);
+  --color-accent-300: var(--color-indigo-300);
+  --color-accent-400: var(--color-indigo-400);
+  --color-accent-500: var(--color-indigo-500);
+  --color-accent-600: var(--color-indigo-600);
+  --color-accent-700: var(--color-indigo-700);
+  --color-accent-800: var(--color-indigo-800);
+  --color-accent-900: var(--color-indigo-900);
+  --color-accent-950: var(--color-indigo-950);
+  /* Your preferred gray scale. Zinc is closest to Starlight’s defaults. */
+  --color-gray-50: var(--color-zinc-50);
+  --color-gray-100: var(--color-zinc-100);
+  --color-gray-200: var(--color-zinc-200);
+  --color-gray-300: var(--color-zinc-300);
+  --color-gray-400: var(--color-zinc-400);
+  --color-gray-500: var(--color-zinc-500);
+  --color-gray-600: var(--color-zinc-600);
+  --color-gray-700: var(--color-zinc-700);
+  --color-gray-800: var(--color-zinc-800);
+  --color-gray-900: var(--color-zinc-900);
+  --color-gray-950: var(--color-zinc-950);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/mise.cicd.toml 
new/terragrunt-0.78.4/mise.cicd.toml
--- old/terragrunt-0.78.3/mise.cicd.toml        2025-05-12 16:48:19.000000000 
+0200
+++ new/terragrunt-0.78.4/mise.cicd.toml        2025-05-13 20:23:29.000000000 
+0200
@@ -5,3 +5,4 @@
 awscli = "2.27.7"
 "go:golang.org/x/tools/cmd/goimports" = "latest"
 tflint = "0.47.0"
+terraform = ["1.5", "1.11"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/shell/run_cmd.go 
new/terragrunt-0.78.4/shell/run_cmd.go
--- old/terragrunt-0.78.3/shell/run_cmd.go      2025-05-12 16:48:19.000000000 
+0200
+++ new/terragrunt-0.78.4/shell/run_cmd.go      2025-05-13 20:23:29.000000000 
+0200
@@ -69,6 +69,14 @@
                        cmdStdout = io.MultiWriter(opts.Writer, &output.Stdout)
                )
 
+               // Pass the traceparent to the child process if it is available 
in the context.
+               traceParent := telemetry.TraceParentFromContext(ctx, 
opts.Telemetry)
+
+               if traceParent != "" {
+                       opts.Logger.Debugf("Setting trace parent=%q for command 
%s", traceParent, fmt.Sprintf("%s %v", command, args))
+                       opts.Env[telemetry.TraceParentEnv] = traceParent
+               }
+
                if suppressStdout {
                        opts.Logger.Debugf("Command output will be suppressed.")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/telemetry/context.go 
new/terragrunt-0.78.4/telemetry/context.go
--- old/terragrunt-0.78.3/telemetry/context.go  2025-05-12 16:48:19.000000000 
+0200
+++ new/terragrunt-0.78.4/telemetry/context.go  2025-05-13 20:23:29.000000000 
+0200
@@ -1,23 +1,55 @@
 package telemetry
 
-import "context"
+import (
+       "context"
+       "fmt"
 
-const (
-       telemeterContextKey ctxKey = iota
+       "go.opentelemetry.io/otel/trace"
 )
 
-type ctxKey byte
+type contextKey byte
+
+const (
+       telemeterContextKey contextKey = iota
+       TraceParentEnv                 = "TRACEPARENT"
+)
 
-func ContextWithTelemeter(ctx context.Context, tlm *Telemeter) context.Context 
{
-       return context.WithValue(ctx, telemeterContextKey, tlm)
+// ContextWithTelemeter returns a new context with the provided Telemeter 
attached.
+func ContextWithTelemeter(ctx context.Context, telemeter *Telemeter) 
context.Context {
+       return context.WithValue(ctx, telemeterContextKey, telemeter)
 }
 
+// TelemeterFromContext retrieves the Telemeter from the context, or nil if 
not present.
 func TelemeterFromContext(ctx context.Context) *Telemeter {
        if val := ctx.Value(telemeterContextKey); val != nil {
-               if val, ok := val.(*Telemeter); ok {
-                       return val
+               if telemeter, ok := val.(*Telemeter); ok {
+                       return telemeter
                }
        }
 
        return new(Telemeter)
 }
+
+// TraceParentFromContext returns the W3C traceparent header value from the 
context's span, or an error if not available.
+func TraceParentFromContext(ctx context.Context, telemetry *Options) string {
+       span := trace.SpanFromContext(ctx)
+       spanContext := span.SpanContext()
+
+       if !spanContext.IsValid() {
+               return ""
+       }
+
+       if len(telemetry.TraceParent) > 0 {
+               return telemetry.TraceParent
+       }
+
+       traceID := spanContext.TraceID().String()
+       spanID := spanContext.SpanID().String()
+       flags := "00"
+
+       if spanContext.TraceFlags().IsSampled() {
+               flags = "01"
+       }
+
+       return fmt.Sprintf("00-%s-%s-%s", traceID, spanID, flags)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/telemetry/opts.go 
new/terragrunt-0.78.4/telemetry/opts.go
--- old/terragrunt-0.78.3/telemetry/opts.go     2025-05-12 16:48:19.000000000 
+0200
+++ new/terragrunt-0.78.4/telemetry/opts.go     2025-05-13 20:23:29.000000000 
+0200
@@ -8,7 +8,7 @@
        TraceExporterHTTPEndpoint string
        // TraceParent is used as a parent trace context.
        TraceParent string
-       // MetricExporter is the type of  metrics exporter.
+       // MetricExporter is the type of metrics exporter.
        MetricExporter string
        // TraceExporterInsecureEndpoint is useful for collecting traces 
locally. If set to true, the exporter will not validate the server certificate.
        TraceExporterInsecureEndpoint bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/test/fixtures/engine/trace-parent/get_traceparent.sh 
new/terragrunt-0.78.4/test/fixtures/engine/trace-parent/get_traceparent.sh
--- old/terragrunt-0.78.3/test/fixtures/engine/trace-parent/get_traceparent.sh  
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/test/fixtures/engine/trace-parent/get_traceparent.sh  
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -e
+
+echo "$1 {\"traceparent\": \"${TRACEPARENT}\"}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/test/fixtures/engine/trace-parent/main.tf 
new/terragrunt-0.78.4/test/fixtures/engine/trace-parent/main.tf
--- old/terragrunt-0.78.3/test/fixtures/engine/trace-parent/main.tf     
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/test/fixtures/engine/trace-parent/main.tf     
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,11 @@
+data "external" "traceparent" {
+  program = ["${path.module}/get_traceparent.sh"]
+
+  query = {
+    nonce = timestamp()
+  }
+}
+
+output "traceparent_value" {
+  value = data.external.traceparent.result["traceparent"]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/test/fixtures/engine/trace-parent/terragrunt.hcl 
new/terragrunt-0.78.4/test/fixtures/engine/trace-parent/terragrunt.hcl
--- old/terragrunt-0.78.3/test/fixtures/engine/trace-parent/terragrunt.hcl      
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/test/fixtures/engine/trace-parent/terragrunt.hcl      
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,13 @@
+terraform {
+  source = "."
+  before_hook "hook_print_traceparent" {
+    commands = ["apply"]
+    execute = ["./get_traceparent.sh", "hook_print_traceparent"]
+  }
+}
+
+engine {
+  source  = "github.com/gruntwork-io/terragrunt-engine-opentofu"
+  version = "v0.0.16"
+  type    = "rpc"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/test/fixtures/trace-parent/get_traceparent.sh 
new/terragrunt-0.78.4/test/fixtures/trace-parent/get_traceparent.sh
--- old/terragrunt-0.78.3/test/fixtures/trace-parent/get_traceparent.sh 
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/test/fixtures/trace-parent/get_traceparent.sh 
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+set -e
+
+echo "$1 {\"traceparent\": \"${TRACEPARENT}\"}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/test/fixtures/trace-parent/main.tf 
new/terragrunt-0.78.4/test/fixtures/trace-parent/main.tf
--- old/terragrunt-0.78.3/test/fixtures/trace-parent/main.tf    1970-01-01 
01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/test/fixtures/trace-parent/main.tf    2025-05-13 
20:23:29.000000000 +0200
@@ -0,0 +1,11 @@
+data "external" "traceparent" {
+  program = ["${path.module}/get_traceparent.sh"]
+
+  query = {
+    nonce = timestamp()
+  }
+}
+
+output "traceparent_value" {
+  value = data.external.traceparent.result["traceparent"]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/terragrunt-0.78.3/test/fixtures/trace-parent/terragrunt.hcl 
new/terragrunt-0.78.4/test/fixtures/trace-parent/terragrunt.hcl
--- old/terragrunt-0.78.3/test/fixtures/trace-parent/terragrunt.hcl     
1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.78.4/test/fixtures/trace-parent/terragrunt.hcl     
2025-05-13 20:23:29.000000000 +0200
@@ -0,0 +1,7 @@
+terraform {
+  source = "."
+  before_hook "hook_print_traceparent" {
+    commands = ["apply"]
+    execute = ["./get_traceparent.sh", "hook_print_traceparent"]
+  }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/test/helpers/test_helpers.go 
new/terragrunt-0.78.4/test/helpers/test_helpers.go
--- old/terragrunt-0.78.3/test/helpers/test_helpers.go  2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/test/helpers/test_helpers.go  2025-05-13 
20:23:29.000000000 +0200
@@ -1,7 +1,39 @@
 package helpers
 
-import "runtime"
+import (
+       "regexp"
+       "runtime"
+       "strings"
+       "testing"
+
+       "github.com/stretchr/testify/require"
+)
 
 func IsWindows() bool {
        return runtime.GOOS == "windows"
 }
+
+func ValidateHookTraceParent(t *testing.T, hook, str string) {
+       t.Helper()
+
+       traceparentLine := ""
+
+       for _, line := range strings.Split(str, "\n") {
+               if strings.HasPrefix(line, hook+" {\"traceparent\": \"") {
+                       traceparentLine = line
+                       break
+               }
+       }
+
+       require.NotEmpty(t, traceparentLine, "Expected "+hook+" output with 
traceparent value")
+       re := regexp.MustCompile(hook + ` \{"traceparent": "([^"]+)"\}`)
+       matches := re.FindStringSubmatch(traceparentLine)
+
+       const matchesCount = 2
+
+       require.Len(t, matches, matchesCount, "Expected to extract traceparent 
value from hook output")
+
+       traceparentValue := matches[1]
+       require.NotEmpty(t, traceparentValue, "Traceparent value should not be 
empty")
+       require.Regexp(t, `^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$`, 
traceparentValue, "Traceparent value should match W3C traceparent format")
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/test/integration_engine_test.go 
new/terragrunt-0.78.4/test/integration_engine_test.go
--- old/terragrunt-0.78.3/test/integration_engine_test.go       2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/test/integration_engine_test.go       2025-05-13 
20:23:29.000000000 +0200
@@ -30,6 +30,7 @@
        testFixtureOpenTofuEngine       = "fixtures/engine/opentofu-engine"
        testFixtureOpenTofuRunAll       = "fixtures/engine/opentofu-run-all"
        testFixtureOpenTofuLatestRunAll = 
"fixtures/engine/opentofu-latest-run-all"
+       testFixtureEngineTraceParent    = "fixtures/engine/trace-parent"
 
        envVarExperimental = "TG_EXPERIMENTAL_ENGINE"
 )
@@ -267,6 +268,20 @@
        assert.Contains(t, stderr, "[DEBUG] plugin exited")
 }
 
+func TestEngineTelemetry(t *testing.T) {
+       t.Setenv("TG_TELEMETRY_TRACE_EXPORTER", "console")
+       t.Setenv(envVarExperimental, "1")
+
+       helpers.CleanupTerraformFolder(t, testFixtureEngineTraceParent)
+       tmpEnvPath := helpers.CopyEnvironment(t, testFixtureEngineTraceParent)
+       rootPath := util.JoinPath(tmpEnvPath, testFixtureEngineTraceParent)
+
+       str, _, err := helpers.RunTerragruntCommandWithOutput(t, "terragrunt 
apply -auto-approve --non-interactive --working-dir "+rootPath)
+       require.NoError(t, err)
+
+       helpers.ValidateHookTraceParent(t, "hook_print_traceparent", str)
+}
+
 func setupEngineCache(t *testing.T) (string, string) {
        // create a temporary folder
        cacheDir := t.TempDir()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/test/integration_serial_test.go 
new/terragrunt-0.78.4/test/integration_serial_test.go
--- old/terragrunt-0.78.3/test/integration_serial_test.go       2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/test/integration_serial_test.go       2025-05-13 
20:23:29.000000000 +0200
@@ -24,7 +24,7 @@
        "github.com/stretchr/testify/assert"
        "github.com/stretchr/testify/require"
 
-       print "github.com/gruntwork-io/terragrunt/cli/commands/info/print"
+       "github.com/gruntwork-io/terragrunt/cli/commands/info/print"
        "github.com/gruntwork-io/terragrunt/config"
        "github.com/gruntwork-io/terragrunt/tf"
        "github.com/gruntwork-io/terragrunt/util"
@@ -589,8 +589,9 @@
        output, _, err := helpers.RunTerragruntCommandWithOutput(t, "terragrunt 
apply -auto-approve --non-interactive --working-dir "+rootPath)
        require.NoError(t, err)
 
-       // check that output have Telemetry json output
+       // check that output has Telemetry json output
        assert.Contains(t, output, 
"\"SpanContext\":{\"TraceID\":\"b2ff2d54551433d53dd807a6c94e81d1\"")
+       assert.Contains(t, output, 
"\"Parent\":{\"TraceID\":\"b2ff2d54551433d53dd807a6c94e81d1")
        assert.Contains(t, output, "\"SpanID\":\"0e6f631d793c718a\"")
        assert.Contains(t, output, "\"SpanContext\":")
        assert.Contains(t, output, "\"TraceID\":")
@@ -598,7 +599,7 @@
        assert.Contains(t, output, "\"Name\":\"hook_after_hook_2\"")
 }
 
-func TestTerragruntProduceTelemetryInCasOfError(t *testing.T) {
+func TestTerragruntProduceTelemetryInCaseOfError(t *testing.T) {
        if helpers.IsWindows() {
                t.Skip("Skipping test on Windows since bash script execution is 
not supported")
        }
@@ -725,3 +726,63 @@
                assert.Contains(t, stderr, "INFO   ["+prefixName+"] 
"+wrappedBinary()+`: TF_LOG: Go runtime version`)
        }
 }
+
+func TestTerragruntTelemetryPassTraceParent(t *testing.T) {
+       t.Setenv("TG_TELEMETRY_TRACE_EXPORTER", "console")
+
+       helpers.CleanupTerraformFolder(t, testFixtureTraceParent)
+       tmpEnvPath := helpers.CopyEnvironment(t, testFixtureTraceParent)
+       rootPath := util.JoinPath(tmpEnvPath, testFixtureTraceParent)
+
+       str, _, err := helpers.RunTerragruntCommandWithOutput(t, "terragrunt 
apply -auto-approve --non-interactive --working-dir "+rootPath)
+       require.NoError(t, err)
+
+       helpers.ValidateHookTraceParent(t, "hook_print_traceparent", str)
+
+       t.Setenv("TG_TELEMETRY_TRACE_EXPORTER", "")
+
+       stdout := bytes.Buffer{}
+       stderr := bytes.Buffer{}
+
+       require.NoError(
+               t,
+               helpers.RunTerragruntCommand(t, "terragrunt output -no-color 
-json --non-interactive --working-dir "+rootPath, &stdout, &stderr),
+       )
+
+       outputs := map[string]helpers.TerraformOutput{}
+       require.NoError(t, json.Unmarshal(stdout.Bytes(), &outputs))
+       traceparent, found := outputs["traceparent_value"]
+       require.True(t, found)
+       assert.NotEmpty(t, traceparent.Value)
+       require.Regexp(t, `^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$`, 
traceparent.Value, "Traceparent value should match W3C traceparent format")
+}
+
+func TestTerragruntTelemetryPassTraceParentEnvVariable(t *testing.T) {
+       envParentTrace := 
"00-b2ff2d54551433d53dd807a666666666-0e6f631d793c718a-01"
+       t.Setenv("TG_TELEMETRY_TRACE_EXPORTER", "console")
+       t.Setenv("TRACEPARENT", envParentTrace)
+
+       helpers.CleanupTerraformFolder(t, testFixtureTraceParent)
+       tmpEnvPath := helpers.CopyEnvironment(t, testFixtureTraceParent)
+       rootPath := util.JoinPath(tmpEnvPath, testFixtureTraceParent)
+
+       _, _, err := helpers.RunTerragruntCommandWithOutput(t, "terragrunt 
apply -auto-approve --non-interactive --working-dir "+rootPath)
+       require.NoError(t, err)
+
+       t.Setenv("TG_TELEMETRY_TRACE_EXPORTER", "")
+
+       stdout := bytes.Buffer{}
+       stderr := bytes.Buffer{}
+
+       require.NoError(
+               t,
+               helpers.RunTerragruntCommand(t, "terragrunt output -no-color 
-json --non-interactive --working-dir "+rootPath, &stdout, &stderr),
+       )
+
+       outputs := map[string]helpers.TerraformOutput{}
+       require.NoError(t, json.Unmarshal(stdout.Bytes(), &outputs))
+       traceparent, found := outputs["traceparent_value"]
+       require.True(t, found)
+       assert.NotEmpty(t, traceparent.Value)
+       assert.Equal(t, envParentTrace, traceparent.Value)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terragrunt-0.78.3/test/integration_test.go 
new/terragrunt-0.78.4/test/integration_test.go
--- old/terragrunt-0.78.3/test/integration_test.go      2025-05-12 
16:48:19.000000000 +0200
+++ new/terragrunt-0.78.4/test/integration_test.go      2025-05-13 
20:23:29.000000000 +0200
@@ -112,13 +112,13 @@
        testFixtureCLIFlagHints                   = "fixtures/cli-flag-hints"
        testFixtureEphemeralInputs                = "fixtures/ephemeral-inputs"
        testFixtureTfPath                         = "fixtures/tf-path"
+       testFixtureTraceParent                    = "fixtures/trace-parent"
 
        terraformFolder = ".terraform"
 
        terraformState = "terraform.tfstate"
 
        terraformStateBackup = "terraform.tfstate.backup"
-       terragruntCache      = ".terragrunt-cache"
 )
 
 func TestCLIFlagHints(t *testing.T) {

++++++ terragrunt.obsinfo ++++++
--- /var/tmp/diff_new_pack.6TPPnL/_old  2025-05-14 17:02:06.125485059 +0200
+++ /var/tmp/diff_new_pack.6TPPnL/_new  2025-05-14 17:02:06.125485059 +0200
@@ -1,5 +1,5 @@
 name: terragrunt
-version: 0.78.3
-mtime: 1747061299
-commit: b19d23fcb73889cd9dac48040dfbf2b84117d20d
+version: 0.78.4
+mtime: 1747160609
+commit: a76bdc97ff614e18ffa0fdd6304da273dbb9feb1
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/terragrunt/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.terragrunt.new.30101/vendor.tar.gz differ: char 13, 
line 1

Reply via email to