diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..17e19389 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +name: CI +on: + push: + branches: + - main + - develop + - feat/** + pull_request: + branches: + - main + - develop + - feat/** + +jobs: + cli-lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + submodules: true + - uses: actions/setup-go@v6 + with: + go-version: stable + - name: Prepare themes for embedding + run: make prepare-themes + - name: cli-lint + uses: golangci/golangci-lint-action@v9 + with: + version: latest + args: --timeout=10m + test: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + submodules: true + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: stable + - name: Run Tests + run: make test || exit 1 + - name: Upload Test Reports + uses: actions/upload-artifact@v6 + with: + name: test-reports + path: reports/tests-cov.out + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + submodules: true + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: stable + - name: Run Build + run: make build || exit 1 diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 1a38ed07..082f3d3d 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -13,14 +13,14 @@ jobs: run: working-directory: ./docs steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: ref: master - submodules: true + submodules: true fetch-depth: 0 - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 + uses: peaceiris/actions-hugo@v3 with: hugo-version: 'latest' extended: true @@ -28,7 +28,7 @@ jobs: run: hugo --minify - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./docs/public diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml deleted file mode 100644 index d94d61bb..00000000 --- a/.github/workflows/goreleaser.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: goreleaser -on: - push: - tags: - - '*' - -jobs: - goreleaser: - environment: releaser - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.16 - - name: Get packr - run: go get -u github.com/gobuffalo/packr/v2/packr2 - - name: Prepare - run: git reset --hard - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 - with: - distribution: goreleaser - version: latest - args: release --rm-dist - env: - GITHUB_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..d93ca11f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,31 @@ +name: goreleaser + +on: + push: + tags: + - "*" + +jobs: + goreleaser: + environment: releaser + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: true + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.25.x + - name: Prepare themes for embedding + run: make prepare-themes + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v6 + with: + distribution: goreleaser + version: latest + args: release --clean + env: + GITHUB_TOKEN: ${{ github.token }} diff --git a/.gitignore b/.gitignore index ae5f34ab..3ffcce0d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,8 @@ presidium dist/ .DS_Store resources/ - dist/ -docs/resources \ No newline at end of file +docs/resources +reports/ +reports/tests-cov.out +.claude/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..7d3a5e68 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,20 @@ +[submodule "tools/hugo"] + path = tools/hugo + url = https://github.com/gohugoio/hugo + branch = master + shallow = true +[submodule "themes/presidium-layouts-base"] + path = themes/presidium-layouts-base + url = https://github.com/SPANDigital/presidium-layouts-base + branch = main + shallow = true +[submodule "themes/presidium-layouts-blog"] + path = themes/presidium-layouts-blog + url = https://github.com/SPANDigital/presidium-layouts-blog + branch = main + shallow = true +[submodule "themes/presidium-styling-base"] + path = themes/presidium-styling-base + url = https://github.com/SPANDigital/presidium-styling-base + branch = main + shallow = true diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..df81ab1a --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,30 @@ +version: "2" +linters: + default: none + enable: + - errcheck + - govet + - ineffassign + - staticcheck + - unused + - gocyclo + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + paths: + - third_party$ + - builtin$ + - examples$ +formatters: + enable: + - gofmt + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 190ec357..e156b018 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -1,9 +1,10 @@ before: hooks: - go mod tidy - - packr2 builds: - - env: + - tags: + - extended + env: - CGO_ENABLED=0 goos: - linux diff --git a/Dockerfile.test b/Dockerfile.test new file mode 100644 index 00000000..dfae8831 --- /dev/null +++ b/Dockerfile.test @@ -0,0 +1,80 @@ +# Multi-stage Dockerfile to test presidium with embedded themes +# This tests that themes work without network access + +# Stage 1: Build presidium binary for Linux +FROM golang:1.25-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache git gcc g++ musl-dev make + +# Copy source code +WORKDIR /build +COPY . . + +# Build presidium binary (prepare-themes renames go.mod files so they can be embedded) +RUN make prepare-themes && go build -tags extended -o presidium . + +# Stage 2: Test without network access +FROM golang:1.25-alpine AS test + +# Install runtime dependencies (C++ libraries required by Hugo/presidium) +RUN apk add --no-cache curl libstdc++ libgcc + +# Copy the docs site +COPY ./docs /workspace/docs + +# Copy the built presidium binary from builder stage +COPY --from=builder /build/presidium /usr/local/bin/presidium +RUN chmod +x /usr/local/bin/presidium + +# Set working directory to the docs site +WORKDIR /workspace/docs + +# Verify presidium binary +RUN presidium --version || echo "Presidium version check completed" + +# Run hugo build using presidium (this will use embedded themes) +# This should work without network access, proving themes are embedded +RUN echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \ + echo "Building site with embedded themes..." && \ + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \ + presidium hugo && \ + echo "" && \ + echo "✓ Build successful! Themes were loaded from embedded binary." && \ + echo "" && \ + echo "Generated files:" && \ + ls -lh public/ | head -20 + +# Verify the build output exists and contains expected files +RUN test -d public && \ + test -f public/index.html && \ + test -f public/sitemap.xml && \ + echo "" && \ + echo "✓ Hugo site built successfully!" && \ + echo "✓ All expected files generated" && \ + echo "✓ Themes loaded from binary (no GitHub fetch required)" + +# Create a test script that will run with --network=none +RUN echo '#!/bin/sh' > /test.sh && \ + echo 'echo "╔═══════════════════════════════════════════════════════════╗"' >> /test.sh && \ + echo 'echo "║ Network Isolation Test ║"' >> /test.sh && \ + echo 'echo "╚═══════════════════════════════════════════════════════════╝"' >> /test.sh && \ + echo 'echo ""' >> /test.sh && \ + echo 'echo "Testing network isolation..."' >> /test.sh && \ + echo 'if curl -s --max-time 2 https://github.com >/dev/null 2>&1; then' >> /test.sh && \ + echo ' echo "❌ FAIL: Network access detected!"' >> /test.sh && \ + echo ' exit 1' >> /test.sh && \ + echo 'else' >> /test.sh && \ + echo ' echo "✓ Confirmed: No network access"' >> /test.sh && \ + echo 'fi' >> /test.sh && \ + echo 'echo ""' >> /test.sh && \ + echo 'echo "Build artifacts:"' >> /test.sh && \ + echo 'ls -lh public/ | head -15' >> /test.sh && \ + echo 'echo ""' >> /test.sh && \ + echo 'echo "╔═══════════════════════════════════════════════════════════╗"' >> /test.sh && \ + echo 'echo "║ ✅ SUCCESS: Embedded themes work without network! ║"' >> /test.sh && \ + echo 'echo "╚═══════════════════════════════════════════════════════════╝"' >> /test.sh && \ + chmod +x /test.sh + +# Default command runs the test script +CMD ["/test.sh"] diff --git a/Makefile b/Makefile index 632d5bba..e7655330 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,69 @@ -FILENAME=main -TESTDIRS=`go list ./... |grep -v "vendor/" |grep -v "swagger/"` -.DEFAULT_GOAL=build -.PHONY: dist clean +FILENAME=presidium +DOCSDIR=docs +.DEFAULT_GOAL=help +.PHONY: build test dist clean fmt vet tidy coverage_report help update-themes prepare-themes restore-themes lint checks serve-docs -test: +help: ## Display available targets + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-18s %s\n", $$1, $$2}' + +update-themes: ## Update theme submodules to their latest versions + @echo "Updating theme submodules to latest..." + @git submodule update --remote themes/presidium-styling-base themes/presidium-layouts-base themes/presidium-layouts-blog + @echo "Theme submodules updated." + +prepare-themes: ## Prepare themes for embedding (rename go.mod to make embeddable) + @echo "Preparing themes for embedding..." + @for theme in themes/presidium-*; do \ + if [ -f "$$theme/go.mod" ]; then \ + echo " Renaming $$theme/go.mod -> go.mod.tmpl"; \ + mv "$$theme/go.mod" "$$theme/go.mod.tmpl"; \ + fi; \ + if [ -f "$$theme/go.sum" ]; then \ + echo " Renaming $$theme/go.sum -> go.sum.tmpl"; \ + mv "$$theme/go.sum" "$$theme/go.sum.tmpl"; \ + fi; \ + done + +restore-themes: ## Restore theme go.mod files to original names + @echo "Restoring theme go.mod files..." + @for theme in themes/presidium-*; do \ + if [ -f "$$theme/go.mod.tmpl" ]; then \ + echo " Renaming $$theme/go.mod.tmpl -> go.mod"; \ + mv "$$theme/go.mod.tmpl" "$$theme/go.mod"; \ + fi; \ + if [ -f "$$theme/go.sum.tmpl" ]; then \ + echo " Renaming $$theme/go.sum.tmpl -> go.sum"; \ + mv "$$theme/go.sum.tmpl" "$$theme/go.sum"; \ + fi; \ + done + +build: prepare-themes ## Build the presidium binary + go build -tags extended -o $(FILENAME) . ; status=$$? ; $(MAKE) restore-themes ; rstatus=$$? ; if [ $$status -eq 0 ]; then status=$$rstatus; fi ; exit $$status + +test: prepare-themes ## Run tests with coverage @mkdir -p reports - go test -p 1 -v $(TESTDIRS) -coverprofile=reports/tests-cov.out + go test -race -timeout 120s ./... -coverprofile=reports/tests-cov.out ; status=$$? ; $(MAKE) restore-themes ; rstatus=$$? ; if [ $$status -eq 0 ]; then status=$$rstatus; fi ; exit $$status + +fmt: ## Format Go source files + go fmt ./... -pack: - go get -u github.com/gobuffalo/packr/v2/packr2 - packr2 - go mod tidy +vet: prepare-themes ## Run go vet + go vet ./... ; status=$$? ; $(MAKE) restore-themes ; rstatus=$$? ; if [ $$status -eq 0 ]; then status=$$rstatus; fi ; exit $$status -build: - make pack - go build -o $(FILENAME) main.go - packr2 clean +tidy: ## Tidy and verify module dependencies + go mod tidy && go mod verify -clean: - rm -fr "dist" +clean: restore-themes ## Remove build artifacts and restore themes + rm -fr "dist" "$(FILENAME)" "presidium-test" -coverage_report: +coverage_report: ## Open coverage report in browser @go tool cover -html=reports/tests-cov.out -dist: - [ -d "dist" ] || mkdir "dist" - go build -o "dist/presidium" --tags extended +dist: prepare-themes ## Build distribution binary + mkdir -p "dist" && go build -trimpath -o "dist/presidium" -tags extended ; status=$$? ; $(MAKE) restore-themes ; rstatus=$$? ; if [ $$status -eq 0 ]; then status=$$rstatus; fi ; exit $$status + +serve-docs: + cd $(DOCSDIR) && make serve + +lint: prepare-themes ## Run golangci-lint + golangci-lint run --timeout 10m ; status=$$? ; $(MAKE) restore-themes ; rstatus=$$? ; if [ $$status -eq 0 ]; then status=$$rstatus; fi ; exit $$status \ No newline at end of file diff --git a/README.md b/README.md index 9a222ca9..f22b07b7 100644 --- a/README.md +++ b/README.md @@ -13,4 +13,26 @@ Read Presidium's [documentation](http://presidium.spandigital.net/overview/) for For detailed instructions on getting started, please see [Getting Started](http://presidium.spandigital.net/getting-started/). # Features and Issues -All upcoming features and issues are tracked [here](https://github.com/SPANDigital/presidium/issues). \ No newline at end of file +All upcoming features and issues are tracked [here](https://github.com/SPANDigital/presidium/issues). + +# Development + +Presidium embeds a specific version of [Hugo](https://github.com/gohugoio/hugo) to ensure that the user is building their docs with a Hugo version that is compatible with our Presidium Themes. + +Since we require the embedded Hugo version to be built into a binary, some of the cli commands only work after running the `make build` cmd. + +## Getting started + +Run the build command: +``` +make build +``` + +Move the binary into a valid documentation site directory, then run the hugo build cmd: +``` +./presidium hugo +``` +Or if you want to serve the site after the hugo build, then run: +``` +./presidium hugo server +``` \ No newline at end of file diff --git a/cmd/convert.go b/cmd/convert.go index a6acf520..86b69aaa 100644 --- a/cmd/convert.go +++ b/cmd/convert.go @@ -35,19 +35,6 @@ var convertCmd = &cobra.Command{ func init() { rootCmd.AddCommand(convertCmd) - fs := filesystem.New() - - cwd, err := fs.GetWorkingDir() - if err != nil { - log.Fatal("could not get working dir") - } else { - cwd, err = fs.AbsolutePath(".") - if err != nil { - log.Fatal("something bad happened to get working dir") - } else { - cwd = "." - } - } stagingDir, err := filesystem.AFS.TempDir(os.TempDir(), "staging") if err != nil { @@ -60,7 +47,7 @@ func init() { pflags.StringVarP(&config.Flags.SourceRepoDir, "sourceRepoDir", "s", "", "Source directory") pflags.StringVar(&config.Flags.BrandTheme, "brand", "", "path to brand theme") pflags.StringVar(&config.Flags.SyntaxStyle, "markup", "github", "specify markup theme, other than the default github style") - pflags.StringVarP(&config.Flags.DestinationRepoDir, "destDir", "d", cwd, "Destination directory") + pflags.StringVarP(&config.Flags.DestinationRepoDir, "destDir", "d", ".", "Destination directory") pflags.BoolVar(&config.Flags.AddSlugAndUrl, "slugIt", false, "Add slug and url in the front matter") pflags.BoolVar(&config.Flags.CleanTarget, "clean", true, "Clean the target directory") pflags.BoolVarP(&config.Flags.WeightBasedOnFilename, "weightBasedOnFilename", "w", conversion.Defaults.WeightBasedOnFileName, "Base front matter weight on filename") diff --git a/cmd/hugo.go b/cmd/hugo.go index 0ef7fa92..8babc016 100644 --- a/cmd/hugo.go +++ b/cmd/hugo.go @@ -1,19 +1,28 @@ package cmd import ( + "os" + "github.com/SPANDigital/presidium-hugo/pkg/domain/service/hugo" + "github.com/SPANDigital/presidium-hugo/pkg/log" "github.com/spf13/cobra" ) var ( // hugoCommand wraps hugo into Presidium. This allows you to run hugo // in Presidium, and makes it easier to debug etc. + // All arguments and flags are passed through to Hugo unchanged. hugoCommand = &cobra.Command{ - Use: "hugo", - Short: "Runs hugo against your presidium site", + Use: "hugo", + Short: "Runs hugo with full access to all Hugo commands and flags", + DisableFlagParsing: true, // Don't parse flags - let Hugo handle them Run: func(cmd *cobra.Command, args []string) { - hugo := hugo.New() - hugo.Execute(args...) + hugoService := hugo.New() + err := hugoService.Execute(args...) + if err != nil { + log.Error(err) + os.Exit(1) + } }, } ) diff --git a/cmd/root.go b/cmd/root.go index b4a3f490..18ea6744 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -35,7 +35,7 @@ func init() { cobra.OnInitialize(initConfig) rootCmd.PersistentFlags().BoolVar(&debug, config.DebugKey, false, "enables debug logs") rootCmd.PersistentFlags().StringVar(&cfgFile, config.ConfigFileKey, "", "config file (default is $HOME/.presidium.yaml)") - viper.BindPFlag(config.DebugKey, rootCmd.PersistentFlags().Lookup(config.DebugKey)) + _ = viper.BindPFlag(config.DebugKey, rootCmd.PersistentFlags().Lookup(config.DebugKey)) } // initConfig reads in config file and ENV variables if set. diff --git a/cmd/versioning.go b/cmd/versioning.go index 408030a3..80e27741 100644 --- a/cmd/versioning.go +++ b/cmd/versioning.go @@ -16,7 +16,7 @@ func versionCommand() *cobra.Command { Short: "managing versioning of presidium site", Run: func(cmd *cobra.Command, args []string) { if !enabled { - v:= versioning.New(".") + v := versioning.New(".") if !v.IsEnabled() { v.SetEnabled(true) } @@ -28,10 +28,9 @@ func versionCommand() *cobra.Command { return cmd } - func activateNextVersionCommand() *cobra.Command { return &cobra.Command{ - Use: "next", + Use: "next", Short: "creates a next version based on last version", Run: func(cmd *cobra.Command, args []string) { v := versioning.New(".") @@ -40,7 +39,6 @@ func activateNextVersionCommand() *cobra.Command { } } - func syncLatestCommand() *cobra.Command { return &cobra.Command{ Use: "update", @@ -51,5 +49,3 @@ func syncLatestCommand() *cobra.Command { }, } } - - diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..533b7c0b --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,36 @@ +default: + make serve + +hugo: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info + +drafts: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info --buildDrafts + +tidy: + go mod tidy + hugo mod tidy + +refresh: + rm -rf public resources go.sum .hugo_build.lock themes + hugo mod clean + make tidy + make hugo + +serve: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info + +serve-drafts: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info --buildDrafts + +serve-a: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 6060 + +serve-b: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 7070 \ No newline at end of file diff --git a/docs/config.yml b/docs/config.yml index cdca8dc4..f0cdcec5 100755 --- a/docs/config.yml +++ b/docs/config.yml @@ -1,5 +1,5 @@ languageCode: en-us -title: "Presidium" +title: "Presidium Open Source" copyright: SPAN Digital baseUrl: / assetDir: static @@ -27,46 +27,46 @@ params: sectionPagesMenu: "" menu: Main: - - identifier: overview - name: Overview - url: /overview - weight: 1 - - identifier: key-concepts - name: Key Concepts - url: /key-concepts/ - weight: 2 - - identifier: getting-started - name: Getting Started - url: /getting-started/ - weight: 3 - - identifier: best-practices - name: Best Practices - url: /best-practices/ - weight: 4 - - identifier: reference - name: Reference - url: /reference/ - weight: 5 - - identifier: recipes - name: Recipes - url: /recipes/ - weight: 6 - - identifier: tools - name: Tools - url: /tools/ - weight: 7 - - identifier: support - name: Support - url: /support/ - weight: 8 - - identifier: updates - name: Updates - url: /updates/ - weight: 9 - - identifier: glossary - name: Glossary - url: /glossary/ - weight: 10 + - identifier: overview + name: Overview + url: /overview + weight: 1 + - identifier: key-concepts + name: Key Concepts + url: /key-concepts/ + weight: 2 + - identifier: getting-started + name: Getting Started + url: /getting-started/ + weight: 3 + - identifier: best-practices + name: Best Practices + url: /best-practices/ + weight: 4 + - identifier: reference + name: Reference + url: /reference/ + weight: 5 + - identifier: recipes + name: Recipes + url: /recipes/ + weight: 6 + - identifier: tools + name: Tools + url: /tools/ + weight: 7 + - identifier: support + name: Support + url: /support/ + weight: 8 + - identifier: updates + name: Updates + url: /updates/ + weight: 9 + - identifier: glossary + name: Glossary + url: /glossary/ + weight: 10 outputFormats: MenuIndex: baseName: menu @@ -76,17 +76,17 @@ outputFormats: mediaType: application/json outputs: home: - - HTML - - RSS - - MenuIndex - - SearchMap + - HTML + - RSS + - MenuIndex + - SearchMap module: imports: - - path: github.com/spandigital/presidium-styling-base - - path: github.com/spandigital/presidium-layouts-base + - path: github.com/spandigital/presidium-styling-base + - path: github.com/spandigital/presidium-layouts-base enableInlineShortcodes: true frontmatter: lastmod: - - lastmod - - :fileModTime - - :default + - lastmod + - :fileModTime + - :default diff --git a/docs/content/recipes/hosting/github-pages.md b/docs/content/recipes/hosting/github-pages.md index f226d89a..ee586e12 100644 --- a/docs/content/recipes/hosting/github-pages.md +++ b/docs/content/recipes/hosting/github-pages.md @@ -18,24 +18,24 @@ on: jobs: gh-pages: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest concurrency: group: ${{ github.workflow }}-${{ github.ref }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 persist-credentials: false - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 + uses: peaceiris/actions-hugo@v3 with: - hugo-version: '0.87.0' + hugo-version: 'latest' extended: true - name: Build run: hugo --minify --baseURL `https://.github.io/` - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public @@ -47,7 +47,7 @@ fetch from private repositories: ```yaml ... steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 diff --git a/docs/go.mod b/docs/go.mod index 9d29fd51..d85077d1 100755 --- a/docs/go.mod +++ b/docs/go.mod @@ -1,8 +1,8 @@ module presidium -go 1.18 +go 1.25 require ( - github.com/spandigital/presidium-layouts-base v0.1.23 // indirect - github.com/spandigital/presidium-styling-base v0.1.16 // indirect + github.com/spandigital/presidium-layouts-base v0.13.0 // indirect + github.com/spandigital/presidium-styling-base v0.5.1 // indirect ) diff --git a/docs/go.sum b/docs/go.sum index c67c52dc..353d1612 100644 --- a/docs/go.sum +++ b/docs/go.sum @@ -1,2 +1,4 @@ -github.com/spandigital/presidium-theme-website v2.17.13+incompatible h1:uzzv1ZZzW8S4LLgJ2h90a31/HAWEdlbqmGTs26qbKQM= -github.com/spandigital/presidium-theme-website v2.17.13+incompatible/go.mod h1:8fTL83SigfxCino9GI0yWCVPuWVdUP7o4wfDVgChJCU= +github.com/spandigital/presidium-layouts-base v0.13.0 h1:PG16zEdnGcphKjf8GzOJ0BvJ32rJmGoc1ACXXLZrTYU= +github.com/spandigital/presidium-layouts-base v0.13.0/go.mod h1:sBRhQpfijPC3gfgoaN4sYxgEzu4C8DYR+tEey+34TJw= +github.com/spandigital/presidium-styling-base v0.5.1 h1:BX2TfiG0eoCSvnknEsCuFAM63MCuyUjYiBl6scW5yb0= +github.com/spandigital/presidium-styling-base v0.5.1/go.mod h1:NC3IsAi2ryXooQKMMBE9/dwhHyx1DT92bvjRf9yM6SA= diff --git a/docs/layouts/index.html b/docs/layouts/index.html index a22c7c15..8cb454c7 100644 --- a/docs/layouts/index.html +++ b/docs/layouts/index.html @@ -1,152 +1,238 @@ - - - - - - {{ $style := resources.Get "presidium.scss" | resources.ToCSS | resources.Minify | resources.Fingerprint }} - + + + + + {{ $style := resources.Get "presidium-site.scss" | css.Sass | resources.Minify | + resources.Fingerprint }} + Presidium - - -
- +
- -
Software documentation that doesn’t suck.
-
Presidium is a software documentation management system for Agile teams and their - users, made from the stuff software engineers love. -
-

Presidium is built from the tools you already use, such as GitHub or Bitbucket for content - management, Markdown for content markup, Hugo to generate static sites, a sprinkling of Javascript - for dynamic menus, and an extensible approach for ingesting existing content from Swagger, - Javadoc, JSDoc...with more to come.

- -

If you're a software engineer, you already know how to use Presidium.

+ +
Software documentation that doesn’t suck.
+
+ Presidium is a software documentation management system for Agile + teams and their users, made from the stuff software engineers love. +
+

+ Presidium is built from the tools you already use, such as GitHub or + Bitbucket for content management, Markdown for content markup, Hugo + to generate static sites, a sprinkling of Javascript for dynamic + menus, and an extensible approach for ingesting existing content + from Swagger, Javadoc, JSDoc...with more to come. +

+

+ If you're a software engineer, you already know how to use + Presidium. +

-
-
+
+
-
-
-

Easy Install and Upgrade

-

npm makes installation and upgrade a, trivial, single command activity. No need to modify your - content during upgrades.

-
-
-

Instant Publication

-

Author and review content on your desktop, then publish via Github pages with a single - checkin.

-
-
-

Flexible Team Workflow

-

Use Gitflow or whatever process you prefer to manage the content development process in your - team.

-
-
-

Configurable Presentation

-

Modify pre-configured content structure and visual style to best meet your needs. - Templates include software, design, and onboarding documentation.

-
-
-

Easily Incorporate Existing Content

-

A library of content ingestion packages can import existing content written with in Javadoc, - Swagger, and JSdoc and stored in other repositories.

-
-
-

Sound Content Strategy

-

Employ best practices from knowledge management and learning systems-micro-articles with focused - topics ensure clarity and ease of maintenance.

-
+
+
+

Easy Install and Upgrade

+

+ npm makes installation and upgrade a, trivial, single command + activity. No need to modify your content during upgrades. +

+
+
+

Instant Publication

+

+ Author and review content on your desktop, then publish via + Github pages with a single checkin. +

+
+
+

Flexible Team Workflow

+

+ Use Gitflow or whatever process you prefer to manage the content + development process in your team. +

+
+
+

Configurable Presentation

+

+ Modify pre-configured content structure and visual style to best + meet your needs. Templates include software, design, and + onboarding documentation. +

+
+
+

Easily Incorporate Existing Content

+

+ A library of content ingestion packages can import existing + content written with in Javadoc, Swagger, and JSdoc and stored + in other repositories. +

+
+

Sound Content Strategy

+

+ Employ best practices from knowledge management and learning + systems-micro-articles with focused topics ensure clarity and + ease of maintenance. +

+
+
-
-
+
+
-
-
-

Up and running in minutes...

-
-

$ brew install SPANDigital/tap/presidium

-

$ presidium init

-
-
-
-
-

You can find the source code on Github

-

Presidium is available under an Apache 2.0 License

+
+
+

Up and running in minutes...

+
+

+ $ brew install SPANDigital/tap/presidium +

+

+ $ presidium init +

+
+
+
+

+ You can find the source code on + Github +

+

+ Presidium is available under an + Apache 2.0 License +

+
-
- {{ define "content" }} - - {{ end }} +
+ {{ define "content" }} {{ end }} -
+
-
+
+
+
+ Github
-
-
Github
-
Markdown
-
Hugo
-
Javascript
-
Javadoc
-
Swagger
+
+ Markdown
+
+ Hugo +
+
+ Javascript +
+
+ Javadoc +
+
+ Swagger +
+
-
- +
-
- + diff --git a/docs/static/_sass/_custom.scss b/docs/static/_sass/client-custom/_custom.scss similarity index 100% rename from docs/static/_sass/_custom.scss rename to docs/static/_sass/client-custom/_custom.scss diff --git a/docs/static/_sass/_landing.scss b/docs/static/_sass/client-custom/_landing.scss similarity index 100% rename from docs/static/_sass/_landing.scss rename to docs/static/_sass/client-custom/_landing.scss diff --git a/docs/static/_sass/_variables.scss b/docs/static/_sass/client-custom/_variables.scss similarity index 100% rename from docs/static/_sass/_variables.scss rename to docs/static/_sass/client-custom/_variables.scss diff --git a/docs/static/presidium-site.scss b/docs/static/presidium-site.scss new file mode 100644 index 00000000..6f7701d4 --- /dev/null +++ b/docs/static/presidium-site.scss @@ -0,0 +1,25 @@ +// Site-level Presidium SCSS entry point +// Imports the theme base styles, then adds site-specific landing page styles. + +/*! BEGIN presidium-styling-base */ + +/*! assets/_sass/defaults/ */ +@import '_sass/defaults/'; +/*! assets/_sass/bootstrap/ */ +@import '_sass/bootstrap/'; +/*! assets/_sass/components/ */ +@import '_sass/components/'; +/*! assets/_sass/structure.scss */ +@import '_sass/structure'; +/*! assets/_sass/enterprise/ */ +@import '_sass/enterprise/'; +/*! assets/_sass/client-custom/ */ +@import '_sass/client-custom/'; +/*! assets/_sass/outputs/ */ +@import '_sass/outputs/'; + +/*! END presidium-styling-base */ + +/*! BEGIN site-custom */ +@import '_sass/client-custom/landing'; +/*! END site-custom */ diff --git a/embedded.go b/embedded.go new file mode 100644 index 00000000..7fea4ae6 --- /dev/null +++ b/embedded.go @@ -0,0 +1,9 @@ +package main + +import "embed" + +//go:embed all:templates +var templatesFS embed.FS + +//go:embed all:themes +var themesFS embed.FS diff --git a/go.mod b/go.mod index 3d7c2019..9270a875 100644 --- a/go.mod +++ b/go.mod @@ -1,147 +1,219 @@ module github.com/SPANDigital/presidium-hugo -go 1.23.0 - -toolchain go1.23.9 +go 1.25 require ( - github.com/Masterminds/goutils v1.1.1 - github.com/Masterminds/sprig v2.22.0+incompatible - github.com/PuerkitoBio/goquery v1.7.1 - github.com/gobuffalo/packd v1.0.1 - github.com/gobuffalo/packr/v2 v2.8.3 - github.com/gohugoio/hugo v0.87.0 + github.com/Masterminds/sprig/v3 v3.3.0 + github.com/PuerkitoBio/goquery v1.11.0 + github.com/gohugoio/hugo v0.155.3 github.com/google/uuid v1.6.0 github.com/logrusorgru/aurora v2.0.3+incompatible - github.com/manifoldco/promptui v0.8.0 + github.com/manifoldco/promptui v0.9.0 github.com/onsi/ginkgo v1.16.4 - github.com/onsi/gomega v1.10.1 - github.com/otiai10/copy v1.2.0 - github.com/pkg/errors v0.9.1 + github.com/onsi/gomega v1.39.1 + github.com/otiai10/copy v1.14.1 github.com/scylladb/go-set v1.0.2 - github.com/sirupsen/logrus v1.8.1 - github.com/spf13/afero v1.8.2 - github.com/spf13/cobra v1.5.0 - github.com/spf13/viper v1.10.0 - golang.org/x/mod v0.17.0 - gopkg.in/yaml.v2 v2.4.0 + github.com/sirupsen/logrus v1.9.4 + github.com/spf13/afero v1.15.0 + github.com/spf13/cobra v1.10.2 + github.com/spf13/viper v1.21.0 + golang.org/x/mod v0.32.0 + golang.org/x/text v0.33.0 + gopkg.in/yaml.v3 v3.0.1 ) require ( - cloud.google.com/go v0.110.0 // indirect - cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v0.13.0 // indirect - cloud.google.com/go/storage v1.28.1 // indirect - github.com/Azure/azure-pipeline-go v0.2.2 // indirect - github.com/Azure/azure-storage-blob-go v0.9.0 // indirect + cel.dev/expr v0.24.0 // indirect + cloud.google.com/go v0.121.6 // indirect + cloud.google.com/go/auth v0.17.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect + cloud.google.com/go/compute/metadata v0.9.0 // indirect + cloud.google.com/go/iam v1.5.2 // indirect + cloud.google.com/go/monitoring v1.24.2 // indirect + cloud.google.com/go/storage v1.56.0 // indirect + dario.cat/mergo v1.0.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.1 // indirect + github.com/Azure/go-autorest v14.2.0+incompatible // indirect + github.com/Azure/go-autorest/autorest/to v0.4.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69 // indirect - github.com/BurntSushi/toml v0.3.1 // indirect - github.com/Masterminds/semver v1.5.0 // indirect - github.com/PuerkitoBio/purell v1.1.1 // indirect - github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect - github.com/alecthomas/chroma v0.9.2 // indirect - github.com/andybalholm/cascadia v1.2.0 // indirect - github.com/armon/go-radix v1.0.0 // indirect - github.com/aws/aws-sdk-go v1.40.8 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 // indirect + github.com/JohannesKaufmann/dom v0.2.0 // indirect + github.com/JohannesKaufmann/html-to-markdown/v2 v2.5.0 // indirect + github.com/Masterminds/goutils v1.1.1 // indirect + github.com/Masterminds/semver/v3 v3.4.0 // indirect + github.com/alecthomas/chroma/v2 v2.23.1 // indirect + github.com/andybalholm/cascadia v1.3.3 // indirect + github.com/aws/aws-sdk-go-v2 v1.41.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.17 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.21 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudfront v1.59.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 // indirect + github.com/aws/smithy-go v1.24.0 // indirect + github.com/aymerick/douceur v0.2.0 // indirect + github.com/bep/clocks v0.5.0 // indirect github.com/bep/debounce v1.2.0 // indirect - github.com/bep/gitmap v1.1.2 // indirect - github.com/bep/godartsass v0.12.0 // indirect - github.com/bep/golibsass v1.0.0 // indirect - github.com/bep/gowebp v0.1.0 // indirect + github.com/bep/gitmap v1.9.0 // indirect + github.com/bep/goat v0.5.0 // indirect + github.com/bep/godartsass/v2 v2.5.0 // indirect + github.com/bep/golibsass v1.2.0 // indirect + github.com/bep/goportabletext v0.1.0 // indirect + github.com/bep/helpers v0.6.0 // indirect + github.com/bep/imagemeta v0.14.0 // indirect + github.com/bep/lazycache v0.8.1 // indirect + github.com/bep/logg v0.4.0 // indirect + github.com/bep/mclib v1.20400.20402 // indirect + github.com/bep/overlayfs v0.10.0 // indirect + github.com/bep/simplecobra v0.6.1 // indirect + github.com/bep/textandbinarywriter v0.0.0-20251212174530-cd9f0732f60f // indirect github.com/bep/tmc v0.5.1 // indirect + github.com/bits-and-blooms/bitset v1.24.4 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect - github.com/cli/safeexec v1.0.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect - github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 // indirect - github.com/disintegration/gift v1.2.1 // indirect - github.com/dlclark/regexp2 v1.4.0 // indirect - github.com/dustin/go-humanize v1.0.0 // indirect - github.com/evanw/esbuild v0.12.17 // indirect - github.com/fsnotify/fsnotify v1.5.1 // indirect - github.com/getkin/kin-openapi v0.131.0 // indirect - github.com/ghodss/yaml v1.0.0 // indirect + github.com/clbanning/mxj/v2 v2.7.0 // indirect + github.com/clipperhouse/displaywidth v0.6.2 // indirect + github.com/clipperhouse/stringish v0.1.1 // indirect + github.com/clipperhouse/uax29/v2 v2.3.0 // indirect + github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect + github.com/dlclark/regexp2 v1.11.5 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect + github.com/evanw/esbuild v0.27.3 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/frankban/quicktest v1.14.6 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/getkin/kin-openapi v0.133.0 // indirect + github.com/go-jose/go-jose/v4 v4.1.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect - github.com/gobuffalo/flect v0.2.3 // indirect - github.com/gobuffalo/logger v1.0.6 // indirect + github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/gobuffalo/flect v1.0.3 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/gohugoio/go-i18n/v2 v2.1.3-0.20210430103248-4c28c89f8013 // indirect + github.com/goccy/go-yaml v1.19.2 // indirect + github.com/gohugoio/gift v0.2.0 // indirect + github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6 // indirect + github.com/gohugoio/go-radix v1.2.0 // indirect + github.com/gohugoio/hashstructure v0.6.0 // indirect + github.com/gohugoio/httpcache v0.8.0 // indirect + github.com/gohugoio/hugo-goldmark-extensions/extras v0.5.0 // indirect + github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1 // indirect github.com/gohugoio/locales v0.14.0 // indirect - github.com/gohugoio/localescompressed v0.14.0 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/google/go-cmp v0.5.9 // indirect - github.com/google/wire v0.4.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go v2.0.2+incompatible // indirect - github.com/googleapis/gax-go/v2 v2.7.0 // indirect - github.com/gorilla/websocket v1.4.2 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/huandu/xstrings v1.3.2 // indirect - github.com/imdario/mergo v0.3.12 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/gohugoio/localescompressed v1.0.1 // indirect + github.com/golang-jwt/jwt/v5 v5.2.3 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/google/s2a-go v0.1.9 // indirect + github.com/google/wire v0.7.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect + github.com/gorilla/css v1.0.1 // indirect + github.com/gorilla/websocket v1.5.3 // indirect + github.com/hairyhenderson/go-codeowners v0.7.0 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/huandu/xstrings v1.5.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jdkato/prose v1.2.1 // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a // indirect - github.com/karrick/godirwalk v1.17.0 // indirect - github.com/kyokomi/emoji/v2 v2.2.8 // indirect - github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a // indirect - github.com/magiconair/properties v1.8.5 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect + github.com/kyokomi/emoji/v2 v2.2.13 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/markbates/errx v1.1.0 // indirect - github.com/markbates/oncer v1.0.0 // indirect - github.com/markbates/safe v1.0.1 // indirect - github.com/mattn/go-colorable v0.1.12 // indirect - github.com/mattn/go-ieproxy v0.0.1 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect - github.com/mattn/go-runewidth v0.0.9 // indirect - github.com/miekg/mmark v1.3.6 // indirect + github.com/makeworld-the-better-one/dither/v2 v2.4.0 // indirect + github.com/marekm4/color-extractor v1.2.1 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/microcosm-cc/bluemonday v1.0.27 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect - github.com/mitchellh/hashstructure v1.1.0 // indirect - github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/muesli/smartcrop v0.3.0 // indirect - github.com/niklasfasching/go-org v1.5.0 // indirect + github.com/niklasfasching/go-org v1.9.1 // indirect github.com/nxadm/tail v1.4.8 // indirect github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 // indirect github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 // indirect - github.com/olekukonko/tablewriter v0.0.5 // indirect - github.com/pelletier/go-toml v1.9.4 // indirect - github.com/pelletier/go-toml/v2 v2.0.0-beta.3.0.20210727221244-fa0796069526 // indirect + github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect + github.com/olekukonko/errors v1.1.0 // indirect + github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 // indirect + github.com/olekukonko/tablewriter v1.1.3 // indirect + github.com/otiai10/mint v1.6.3 // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/perimeterx/marshmallow v1.1.5 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect + github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd // indirect - github.com/sanity-io/litter v1.5.1 // indirect - github.com/spf13/cast v1.4.1 // indirect - github.com/spf13/fsync v0.9.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/subosito/gotenv v1.2.0 // indirect - github.com/tdewolff/minify/v2 v2.9.21 // indirect - github.com/tdewolff/parse/v2 v2.5.19 // indirect - github.com/yuin/goldmark v1.4.1 // indirect - github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 // indirect - go.opencensus.io v0.24.0 // indirect - gocloud.dev v0.20.0 // indirect - golang.org/x/crypto v0.36.0 // indirect - golang.org/x/image v0.18.0 // indirect - golang.org/x/net v0.38.0 // indirect - golang.org/x/oauth2 v0.27.0 // indirect - golang.org/x/sync v0.12.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.110.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect - google.golang.org/grpc v1.56.3 // indirect - google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/ini.v1 v1.66.2 // indirect + github.com/sagikazarmark/locafero v0.11.0 // indirect + github.com/shopspring/decimal v1.4.0 // indirect + github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect + github.com/spf13/cast v1.10.0 // indirect + github.com/spf13/fsync v0.10.1 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/tdewolff/minify/v2 v2.24.8 // indirect + github.com/tdewolff/parse/v2 v2.8.5 // indirect + github.com/tetratelabs/wazero v1.11.0 // indirect + github.com/woodsbury/decimal128 v1.3.0 // indirect + github.com/yuin/goldmark v1.7.16 // indirect + github.com/yuin/goldmark-emoji v1.0.6 // indirect + github.com/zeebo/errs v1.4.0 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.37.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect + go.opentelemetry.io/otel v1.37.0 // indirect + go.opentelemetry.io/otel/metric v1.37.0 // indirect + go.opentelemetry.io/otel/sdk v1.37.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect + go.opentelemetry.io/otel/trace v1.37.0 // indirect + go.uber.org/automaxprocs v1.5.3 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + gocloud.dev v0.44.0 // indirect + golang.org/x/crypto v0.47.0 // indirect + golang.org/x/image v0.35.0 // indirect + golang.org/x/net v0.49.0 // indirect + golang.org/x/oauth2 v0.32.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/time v0.14.0 // indirect + golang.org/x/tools v0.41.0 // indirect + golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect + google.golang.org/api v0.255.0 // indirect + google.golang.org/genproto v0.0.0-20250715232539-7130f93afb79 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda // indirect + google.golang.org/grpc v1.76.0 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect + howett.net/plist v1.0.0 // indirect + rsc.io/qr v0.2.0 // indirect + software.sslmate.com/src/go-pkcs12 v0.2.0 // indirect ) diff --git a/go.sum b/go.sum index 9c4c856c..50fbcb87 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,8 @@ -bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= +cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -12,39 +12,37 @@ cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6T cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.55.0/go.mod h1:ZHmoY+/lIMNkN2+fBmuTiqZ4inFhvQad8ft7MT8IV5Y= cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.58.0/go.mod h1:W+9FnSUw6nhVwXlFcp1eL+krq5+HQUJeUogSeJZZiWg= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= -cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.121.6 h1:waZiuajrI28iAf40cWgycWNgaXPO06dupuS+sgibK6c= +cloud.google.com/go v0.121.6/go.mod h1:coChdst4Ea5vUpiALcYKXEpR1S9ZgXbhEzzMcMR66vI= +cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4= +cloud.google.com/go/auth v0.17.0/go.mod h1:6wv/t5/6rOPAX4fJiRjKkJCvswLwdet7G8+UGXt7nCQ= +cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= +cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= -cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/firestore v1.2.0/go.mod h1:iISCjWnTpnoJT1R287xRdjvQHJrxQOpeah4phb5D3h0= -cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= -cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= -cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= -cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/iam v1.5.2 h1:qgFRAGEmd8z6dJ/qyEchAuL9jpswyODjA2lS+w234g8= +cloud.google.com/go/iam v1.5.2/go.mod h1:SE1vg0N81zQqLzQEwxL2WI6yhetBdbNQuTvIKCSkUHE= +cloud.google.com/go/logging v1.13.0 h1:7j0HgAp0B94o1YRDqiqm26w4q1rDMH7XNRU34lJXHYc= +cloud.google.com/go/logging v1.13.0/go.mod h1:36CoKh6KA/M0PbhPKMq6/qety2DCAErbhXT62TuXALA= +cloud.google.com/go/longrunning v0.6.7 h1:IGtfDWHhQCgCjwQjV9iiLnUta9LBCo8R9QmAFsS/PrE= +cloud.google.com/go/longrunning v0.6.7/go.mod h1:EAFV3IZAKmM56TyiE6VAP3VoTzhZzySwI/YI1s/nRsY= +cloud.google.com/go/monitoring v1.24.2 h1:5OTsoJ1dXYIiMiuL+sYscLc9BumrL3CarVLL7dd7lHM= +cloud.google.com/go/monitoring v1.24.2/go.mod h1:x7yzPWcgDRnPEv3sI+jJGBkwl5qINf+6qY4eq0I9B4U= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -53,227 +51,274 @@ cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiy cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.9.0/go.mod h1:m+/etGaqZbylxaNT876QGXqEHp4PR2Rq5GMqICWb9bU= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI= -cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= -contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= -contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= -contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= -contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +cloud.google.com/go/storage v1.56.0 h1:iixmq2Fse2tqxMbWhLWC9HfBj1qdxqAmiK8/eqtsLxI= +cloud.google.com/go/storage v1.56.0/go.mod h1:Tpuj6t4NweCLzlNbw9Z9iwxEkrSem20AetIeH/shgVU= +cloud.google.com/go/trace v1.11.6 h1:2O2zjPzqPYAHrn3OKl029qlqG6W8ZdYaOWRyr8NgMT4= +cloud.google.com/go/trace v1.11.6/go.mod h1:GA855OeDEBiBMzcckLPE2kDunIpC72N+Pq8WFieFjnI= +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-amqp-common-go/v3 v3.0.0/go.mod h1:SY08giD/XbhTz07tJdpw1SoxQXHPN30+DI3Z04SYqyg= -github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= -github.com/Azure/azure-pipeline-go v0.2.2 h1:6oiIS9yaG6XCCzhgAgKFfIWyo4LLCiDhZot6ltoThhY= -github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= -github.com/Azure/azure-sdk-for-go v37.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-service-bus-go v0.10.1/go.mod h1:E/FOceuKAFUfpbIJDKWz/May6guE+eGibfGT6q+n1to= -github.com/Azure/azure-storage-blob-go v0.9.0 h1:kORqvzXP8ORhKbW13FflGUaSE5CMyDWun9UwMxY8gPs= -github.com/Azure/azure-storage-blob-go v0.9.0/go.mod h1:8UBPbiOhrMQ4pLPi3gA1tXnpjrS76UYE/fo5A40vf4g= -github.com/Azure/go-amqp v0.12.6/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo= -github.com/Azure/go-amqp v0.12.7/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.3 h1:OZEIaBbMdUE/Js+BQKlpO81XlISgipr6yDJ+PSwsgi4= -github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= -github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.8.3 h1:O1AGG9Xig71FxdX9HO5pGNyZ7TbSyHaVg+5eJO/jSGw= -github.com/Azure/go-autorest/autorest/adal v0.8.3/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2 h1:iM6UAvjR97ZIeR93qTcwpKNMpV+/FTWjwEbuPD495Tk= -github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1 h1:LXl088ZQlP0SBppGFsRZonW6hSvwgL5gRByMbvUbx8U= -github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA= -github.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI= -github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.1 h1:Wc1ml6QlJs2BHQ/9Bqu1jiyggbsSjramq2oUmp5WeIo= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.1/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= +github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.8.0 h1:LR0kAX9ykz8G4YgLCaRDVJ3+n43R8MneB5dTy2konZo= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.8.0/go.mod h1:DWAciXemNf++PQJLeXUB4HHH5OpsAh12HZnu2wXE1jA= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.1 h1:lhZdRq7TIx0GJQvSyX2Si406vrYsov2FXGp/RnSEtcs= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.1/go.mod h1:8cl44BDmi+effbARHMQjgOKA2AYvcohNm7KEt42mSV8= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest/to v0.4.1 h1:CxNHBqdzTr7rLtdrtb5CMjJcDut+WNGCVv7OmS5+lTc= +github.com/Azure/go-autorest/autorest/to v0.4.1/go.mod h1:EtaofgU4zmtvn1zT2ARsjRFdq9vXx0YWtmElwL+GZ9M= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= +github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= +github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69 h1:+tu3HOoMXB7RXEINRVIpxJCT+KdYiI7LAEAUrOw3dIU= github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69/go.mod h1:L1AbZdiDllfyYH5l5OkAaZtk7VkWe89bPJFmnDBNHxg= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= -github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae/go.mod h1:mjwGPas4yKduTyubHvD1Atl9r1rUq8DfVy+gkVvZ+oo= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 h1:owcC2UnmsZycprQ5RfRgjydWhuoxg71LUfyiQdijZuM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0/go.mod h1:ZPpqegjbE99EPKsu3iUWV22A04wzGPcAY/ziSIQEEgs= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.53.0 h1:4LP6hvB4I5ouTbGgWtixJhgED6xdf67twf9PoY96Tbg= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.53.0/go.mod h1:jUZ5LYlw40WMd07qxcQJD5M40aUxrfwqQX1g7zxYnrQ= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 h1:Ron4zCA/yk6U7WOBXhTJcDpsUBG9npumK6xw2auFltQ= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0/go.mod h1:cSgYe11MCNYunTnRXrKiR/tHc0eoKjICUuWpNZoVCOo= +github.com/JohannesKaufmann/dom v0.2.0 h1:1bragmEb19K8lHAqgFgqCpiPCFEZMTXzOIEjuxkUfLQ= +github.com/JohannesKaufmann/dom v0.2.0/go.mod h1:57iSUl5RKric4bUkgos4zu6Xt5LMHUnw3TF1l5CbGZo= +github.com/JohannesKaufmann/html-to-markdown/v2 v2.5.0 h1:mklaPbT4f/EiDr1Q+zPrEt9lgKAkVrIBtWf33d9GpVA= +github.com/JohannesKaufmann/html-to-markdown/v2 v2.5.0/go.mod h1:D56Cl9r8M5i3UwAchE+LlLc5hPN3kJtdZNVJn06lSHU= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4= -github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= -github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U= -github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI= -github.com/alecthomas/chroma v0.7.2-0.20200305040604-4f3623dce67a/go.mod h1:fv5SzZPFJbwp2NXJWpFIX7DZS4HgV1K4ew4Pc2OZD9s= -github.com/alecthomas/chroma v0.8.2/go.mod h1:sko8vR34/90zvl5QdcUdvzL3J8NKjAUx9va9jPuFNoM= -github.com/alecthomas/chroma v0.9.2 h1:yU1sE2+TZbLIQPMk30SolL2Hn53SR/Pv750f7qZ/XMs= -github.com/alecthomas/chroma v0.9.2/go.mod h1:eMuEnpA18XbG/WhOWtCzJHS7WqEtDAI+HxdwoW0nVSk= -github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo= -github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0= -github.com/alecthomas/kong v0.1.17-0.20190424132513-439c674f7ae0/go.mod h1:+inYUSluD+p4L8KdviBSgzcqEjUQOfC5fQDRFuc36lI= -github.com/alecthomas/kong v0.2.1-0.20190708041108-0548c6b1afae/go.mod h1:+inYUSluD+p4L8KdviBSgzcqEjUQOfC5fQDRFuc36lI= -github.com/alecthomas/kong v0.2.4/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE= -github.com/alecthomas/kong-hcl v0.1.8-0.20190615233001-b21fea9723c8/go.mod h1:MRgZdU3vrFd05IQ89AxUZ0aYdF39BYoNFa324SodPCA= -github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= -github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1 h1:GDQdwm/gAcJcLAKQQZGOJ4knlw+7rfEQQcmwTbt4p5E= -github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ= -github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE= -github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.31.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.40.8 h1:LBeBOKdgxaR1tknlENTBhcN8CjutpofbMJPtl/6Yug4= -github.com/aws/aws-sdk-go v1.40.8/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= +github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= +github.com/PuerkitoBio/goquery v1.11.0 h1:jZ7pwMQXIITcUXNH83LLk+txlaEy6NVOfTuP43xxfqw= +github.com/PuerkitoBio/goquery v1.11.0/go.mod h1:wQHgxUOU3JGuj3oD/QFfxUdlzW6xPHfqyHre6VMY4DQ= +github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= +github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= +github.com/alecthomas/chroma/v2 v2.23.1 h1:nv2AVZdTyClGbVQkIzlDm/rnhk1E9bU9nXwmZ/Vk/iY= +github.com/alecthomas/chroma/v2 v2.23.1/go.mod h1:NqVhfBR0lte5Ouh3DcthuUCTUpDC9cxBOfyMbMQPs3o= +github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs= +github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= +github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM= +github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA= +github.com/aws/aws-sdk-go-v2 v1.41.1 h1:ABlyEARCDLN034NhxlRUSZr4l71mh+T5KAeGh6cerhU= +github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 h1:DHctwEM8P8iTXFxC/QK0MRjwEpWQeM9yzidCRjldUz0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3/go.mod h1:xdCzcZEtnSTKVDOmUZs4l/j3pSV6rpo1WXl5ugNsL8Y= +github.com/aws/aws-sdk-go-v2/config v1.31.17 h1:QFl8lL6RgakNK86vusim14P2k8BFSxjvUkcWLDjgz9Y= +github.com/aws/aws-sdk-go-v2/config v1.31.17/go.mod h1:V8P7ILjp/Uef/aX8TjGk6OHZN6IKPM5YW6S78QnRD5c= +github.com/aws/aws-sdk-go-v2/credentials v1.18.21 h1:56HGpsgnmD+2/KpG0ikvvR8+3v3COCwaF4r+oWwOeNA= +github.com/aws/aws-sdk-go-v2/credentials v1.18.21/go.mod h1:3YELwedmQbw7cXNaII2Wywd+YY58AmLPwX4LzARgmmA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 h1:T1brd5dR3/fzNFAQch/iBKeX07/ffu/cLu+q+RuzEWk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13/go.mod h1:Peg/GBAQ6JDt+RoBf4meB1wylmAipb7Kg2ZFakZTlwk= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.3 h1:4GNV1lhyELGjMz5ILMRxDvxvOaeo3Ux9Z69S1EgVMMQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.20.3/go.mod h1:br7KA6edAAqDGUYJ+zVVPAyMrPhnN+zdt17yTUT6FPw= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17/go.mod h1:EhG22vHRrvF8oXSTYStZhJc1aUgKtnJe+aOiFEV90cM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 h1:eg/WYAa12vqTphzIdWMzqYRVKKnCboVPRlvaybNCqPA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13/go.mod h1:/FDdxWhz1486obGrKKC1HONd7krpk38LBt+dutLcN9k= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.59.0 h1:evSZnlPGyDgStAmjLK9LcSoLvEk3oSUyJz4KIFfzJEs= +github.com/aws/aws-sdk-go-v2/service/cloudfront v1.59.0/go.mod h1:9Hd/cqshF4zl13KGLkWtRfITbvKR6m6FZHwhL2BYDSY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 h1:NvMjwvv8hpGUILarKw7Z4Q0w1H9anXKsesMxtw++MA4= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4/go.mod h1:455WPHSwaGj2waRSpQp7TsnpOnBfw8iDfPfbwl7KPJE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 h1:zhBJXdhWIFZ1acfDYIhu4+LCzdUS2Vbcum7D01dXlHQ= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13/go.mod h1:JaaOeCE368qn2Hzi3sEzY6FgAZVCIYcC2nwbro2QCh8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2 h1:xgBWsgaeUESl8A8k80p6yBdexMWDVeiDmJ/pkjohJ7c= +github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2/go.mod h1:+wArOOrcHUevqdto9k1tKOF5++YTe9JEcPSc9Tx2ZSw= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 h1:0JPwLz1J+5lEOfy/g0SURC9cxhbQ1lIMHMa+AHZSzz0= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.1/go.mod h1:fKvyjJcz63iL/ftA6RaM8sRCtN4r4zl4tjL3qw5ec7k= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 h1:OWs0/j2UYR5LOGi88sD5/lhN6TDLG6SfA7CqsQO9zF0= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5/go.mod h1:klO+ejMvYsB4QATfEOIXk8WAEwN4N0aBfJpvC+5SZBo= +github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 h1:mLlUgHn02ue8whiR4BmxxGJLR2gwU6s6ZzJ5wDamBUs= +github.com/aws/aws-sdk-go-v2/service/sts v1.39.1/go.mod h1:E19xDjpzPZC7LS2knI9E6BaRFDK43Eul7vd6rSq2HWk= +github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= +github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= +github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= +github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= +github.com/bep/clocks v0.5.0 h1:hhvKVGLPQWRVsBP/UB7ErrHYIO42gINVbvqxvYTPVps= +github.com/bep/clocks v0.5.0/go.mod h1:SUq3q+OOq41y2lRQqH5fsOoxN8GbxSiT6jvoVVLCVhU= github.com/bep/debounce v1.2.0 h1:wXds8Kq8qRfwAOpAxHrJDbCXgC5aHSzgQb/0gKsHQqo= github.com/bep/debounce v1.2.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= -github.com/bep/gitmap v1.1.2 h1:zk04w1qc1COTZPPYWDQHvns3y1afOsdRfraFQ3qI840= -github.com/bep/gitmap v1.1.2/go.mod h1:g9VRETxFUXNWzMiuxOwcudo6DfZkW9jOsOW0Ft4kYaY= -github.com/bep/godartsass v0.12.0 h1:VvGLA4XpXUjKvp53SI05YFLhRFJ78G+Ybnlaz6Oul7E= -github.com/bep/godartsass v0.12.0/go.mod h1:nXQlHHk4H1ghUk6n/JkYKG5RD43yJfcfp5aHRqT/pc4= -github.com/bep/golibsass v1.0.0 h1:gNguBMSDi5yZEZzVZP70YpuFQE3qogJIGUlrVILTmOw= -github.com/bep/golibsass v1.0.0/go.mod h1:DL87K8Un/+pWUS75ggYv41bliGiolxzDKWJAq3eJ1MA= -github.com/bep/gowebp v0.1.0 h1:4/iQpfnxHyXs3x/aTxMMdOpLEQQhFmF6G7EieWPTQyo= -github.com/bep/gowebp v0.1.0/go.mod h1:ZhFodwdiFp8ehGJpF4LdPl6unxZm9lLFjxD3z2h2AgI= +github.com/bep/gitmap v1.9.0 h1:2pyb1ex+cdwF6c4tsrhEgEKfyNfxE34d5K+s2sa9byc= +github.com/bep/gitmap v1.9.0/go.mod h1:Juq6e1qqCRvc1W7nzgadPGI9IGV13ZncEebg5atj4Vo= +github.com/bep/goat v0.5.0 h1:S8jLXHCVy/EHIoCY+btKkmcxcXFd34a0Q63/0D4TKeA= +github.com/bep/goat v0.5.0/go.mod h1:Md9x7gRxiWKs85yHlVTvHQw9rg86Bm+Y4SuYE8CTH7c= +github.com/bep/godartsass/v2 v2.5.0 h1:tKRvwVdyjCIr48qgtLa4gHEdtRkPF8H1OeEhJAEv7xg= +github.com/bep/godartsass/v2 v2.5.0/go.mod h1:rjsi1YSXAl/UbsGL85RLDEjRKdIKUlMQHr6ChUNYOFU= +github.com/bep/golibsass v1.2.0 h1:nyZUkKP/0psr8nT6GR2cnmt99xS93Ji82ZD9AgOK6VI= +github.com/bep/golibsass v1.2.0/go.mod h1:DL87K8Un/+pWUS75ggYv41bliGiolxzDKWJAq3eJ1MA= +github.com/bep/goportabletext v0.1.0 h1:8dqym2So1cEqVZiBa4ZnMM1R9l/DnC1h4ONg4J5kujw= +github.com/bep/goportabletext v0.1.0/go.mod h1:6lzSTsSue75bbcyvVc0zqd1CdApuT+xkZQ6Re5DzZFg= +github.com/bep/helpers v0.6.0 h1:qtqMCK8XPFNM9hp5Ztu9piPjxNNkk8PIyUVjg6v8Bsw= +github.com/bep/helpers v0.6.0/go.mod h1:IOZlgx5PM/R/2wgyCatfsgg5qQ6rNZJNDpWGXqDR044= +github.com/bep/imagemeta v0.14.0 h1:xmeB/XPmhrXJmSxTiE7KT4C56xfcSrcaGjVsNe+t6Ro= +github.com/bep/imagemeta v0.14.0/go.mod h1:3psQjuZwn53rPCa86ai0p4KKnO+QArpuWLRdi5/30q8= +github.com/bep/lazycache v0.8.1 h1:ko6ASLjkPxyV5DMWoNNZ8B2M0weyjqXX8IZkjBoBtvg= +github.com/bep/lazycache v0.8.1/go.mod h1:pbEiFsZoq7cLXvrTll0AHOPEurB1aGGxx4jKjOtlx9w= +github.com/bep/logg v0.4.0 h1:luAo5mO4ZkhA5M1iDVDqDqnBBnlHjmtZF6VAyTp+nCQ= +github.com/bep/logg v0.4.0/go.mod h1:Ccp9yP3wbR1mm++Kpxet91hAZBEQgmWgFgnXX3GkIV0= +github.com/bep/mclib v1.20400.20402 h1:olpCE2WSPpOAbFE1R4hnftSEmQ34+xzy2HRzd0m69rA= +github.com/bep/mclib v1.20400.20402/go.mod h1:pkrk9Kyfqg34Uj6XlDq9tdEFJBiL1FvCoCgVKRzw1EY= +github.com/bep/overlayfs v0.10.0 h1:wS3eQ6bRsLX+4AAmwGjvoFSAQoeheamxofFiJ2SthSE= +github.com/bep/overlayfs v0.10.0/go.mod h1:ouu4nu6fFJaL0sPzNICzxYsBeWwrjiTdFZdK4lI3tro= +github.com/bep/simplecobra v0.6.1 h1:ORBAC5CSar99/NPZ5fCthCx/uvlm7ry58wwDsZ23a20= +github.com/bep/simplecobra v0.6.1/go.mod h1:hmtjyHv6xwD637ScIRP++0NKkR5szrHuMw5BxMUH66s= +github.com/bep/textandbinarywriter v0.0.0-20251212174530-cd9f0732f60f h1:NzhMpf5eis+w8bTbT1jqVz+gcMEBhcIPA/KRbYvX8+Y= +github.com/bep/textandbinarywriter v0.0.0-20251212174530-cd9f0732f60f/go.mod h1:vTWM9sqhanOWdo2B2NHwDQPuPmD/nCdMKDFPYxd4VKU= github.com/bep/tmc v0.5.1 h1:CsQnSC6MsomH64gw0cT5f+EwQDcvZz4AazKunFwTpuI= github.com/bep/tmc v0.5.1/go.mod h1:tGYHN8fS85aJPhDLgXETVKp+PR382OvFi2+q2GkGsq0= github.com/bep/workers v1.0.0 h1:U+H8YmEaBCEaFZBst7GcRVEoqeRC9dzH2dWOwGmOchg= github.com/bep/workers v1.0.0/go.mod h1:7kIESOB86HfR2379pwoMWNy8B50D7r99fRLUyPSNyCs= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/bits-and-blooms/bitset v1.24.4 h1:95H15Og1clikBrKr/DuzMXkQzECs1M6hhoGXLwLQOZE= +github.com/bits-and-blooms/bitset v1.24.4/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cli/safeexec v1.0.0 h1:0VngyaIyqACHdcMNWfo6+KdUYnqEr2Sg+bSP1pdF+dI= -github.com/cli/safeexec v1.0.0/go.mod h1:Z/D4tTN8Vs5gXYHDCbaM1S/anmEDnJb1iW0+EJ5zx3Q= +github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= +github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/clipperhouse/displaywidth v0.6.2 h1:ZDpTkFfpHOKte4RG5O/BOyf3ysnvFswpyYrV7z2uAKo= +github.com/clipperhouse/displaywidth v0.6.2/go.mod h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o= +github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs= +github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA= +github.com/clipperhouse/uax29/v2 v2.3.0 h1:SNdx9DVUqMoBuBoW3iLOj4FQv3dN5mDtuqwuhIGpJy4= +github.com/clipperhouse/uax29/v2 v2.3.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= -github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= -github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= -github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4= -github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= -github.com/disintegration/gift v1.2.1 h1:Y005a1X4Z7Uc+0gLpSAsKhWi4qLtsdEcMIbbdvdZ6pc= -github.com/disintegration/gift v1.2.1/go.mod h1:Jh2i7f7Q2BM7Ezno3PhfezbR1xpUg9dUg3/RlKGr4HI= -github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E= -github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= +github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= +github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA= +github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= +github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI= +github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanw/esbuild v0.12.17 h1:9B8cjTu7ZIvS9BQAowXxxe6WMwWvC9BbNq60N6kMrQI= -github.com/evanw/esbuild v0.12.17/go.mod h1:y2AFBAGVelPqPodpdtxWWqe6n2jYf5FrsJbligmRmuw= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= +github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/evanw/esbuild v0.27.3 h1:dH/to9tBKybig6hl25hg4SKIWP7U8COdJKbGEwnUkmU= +github.com/evanw/esbuild v0.27.3/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/fatih/set v0.2.1 h1:nn2CaJyknWE/6txyUDGwysr3G5QC6xWB/PtVjPBbeaA= github.com/fatih/set v0.2.1/go.mod h1:+RKtMCH+favT2+3YecHGxcc0b4KyVWA1QWWJUs4E0CI= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.4.1/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o= -github.com/frankban/quicktest v1.11.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= -github.com/frankban/quicktest v1.13.0 h1:yNZif1OkDfNoDfb9zZa9aXIpejNR4F23Wely0c+Qdqk= github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= -github.com/getkin/kin-openapi v0.68.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= -github.com/getkin/kin-openapi v0.131.0 h1:NO2UeHnFKRYhZ8wg6Nyh5Cq7dHk4suQQr72a4pMrDxE= -github.com/getkin/kin-openapi v0.131.0/go.mod h1:3OlG51PCYNsPByuiMB0t4fjnNlIDnaEDsjiKUV8nL58= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/getkin/kin-openapi v0.133.0 h1:pJdmNohVIJ97r4AUFtEXRXwESr8b0bD721u/Tz6k8PQ= +github.com/getkin/kin-openapi v0.133.0/go.mod h1:boAciF6cXk5FhPqe/NQeBTeenbjqU4LhWBf09ILVvWE= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-jose/go-jose/v4 v4.1.2 h1:TK/7NqRQZfgAh+Td8AlsrvtPoUyiHh0LqVvokh+1vHI= +github.com/go-jose/go-jose/v4 v4.1.2/go.mod h1:22cg9HWM1pOlnRiY+9cQYJ9XHmya1bYW8OeDM6Ku6Oo= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= +github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= -github.com/gobuffalo/flect v0.2.3 h1:f/ZukRnSNA/DUpSNDadko7Qc0PhGvsew35p/2tu+CRY= -github.com/gobuffalo/flect v0.2.3/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= -github.com/gobuffalo/logger v1.0.6 h1:nnZNpxYo0zx+Aj9RfMPBm+x9zAU2OayFh/xrAWi34HU= -github.com/gobuffalo/logger v1.0.6/go.mod h1:J31TBEHR1QLV2683OXTAItYIg8pv2JMHnF/quuAbMjs= -github.com/gobuffalo/packd v1.0.1 h1:U2wXfRr4E9DH8IdsDLlRFwTZTK7hLfq9qT/QHXGVe/0= -github.com/gobuffalo/packd v1.0.1/go.mod h1:PP2POP3p3RXGz7Jh6eYEf93S7vA2za6xM7QT85L4+VY= -github.com/gobuffalo/packr/v2 v2.8.3 h1:xE1yzvnO56cUC0sTpKR3DIbxZgB54AftTFMhB2XEWlY= -github.com/gobuffalo/packr/v2 v2.8.3/go.mod h1:0SahksCVcx4IMnigTjiFuyldmTrdTctXsOdiU5KwbKc= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/gobuffalo/flect v1.0.3 h1:xeWBM2nui+qnVvNM4S3foBhCAL2XgPU+a7FdpelbTq4= +github.com/gobuffalo/flect v1.0.3/go.mod h1:A5msMlrHtLqh9umBSnvabjsMrCcCpAyzglnDvkbYKHs= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/gohugoio/go-i18n/v2 v2.1.3-0.20210430103248-4c28c89f8013 h1:Nj29Qbkt0bZ/bJl8eccfxQp3NlU/0IW1v9eyYtQ53XQ= -github.com/gohugoio/go-i18n/v2 v2.1.3-0.20210430103248-4c28c89f8013/go.mod h1:3Ltoo9Banwq0gOtcOwxuHG6omk+AwsQPADyw2vQYOJQ= -github.com/gohugoio/hugo v0.87.0 h1:kNpXNw7qzczymlHpfpUu0n1y9eD/S2NkphTabu2GwIU= -github.com/gohugoio/hugo v0.87.0/go.mod h1:rRyv5M8MWiSZ/c0n05+s2yEJLQ8iAIx11Qmt5jePEg0= +github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= +github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/gohugoio/gift v0.2.0 h1:vA31pP0rTVmBxBrhpY3WEt+4zM4g+1sDqYeemwsYeqc= +github.com/gohugoio/gift v0.2.0/go.mod h1:1Mrm5CjF33KpD749Dwj+UAjWZ3LC6cBXGuTMa5XwoP4= +github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6 h1:pxlAea9eRwuAnt/zKbGqlFO2ZszpIe24YpOVLf+N+4I= +github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6/go.mod h1:m5hu1im5Qc7LDycVLvee6MPobJiRLBYHklypFJR0/aE= +github.com/gohugoio/go-radix v1.2.0 h1:D5GTk8jIoeXirBSc2P4E4NdHKDrenk9k9N0ctU5Yrhg= +github.com/gohugoio/go-radix v1.2.0/go.mod h1:k6vDa0ebpbpgtzSj9lPGJcA4AZwJ9xUNObUy2vczPFM= +github.com/gohugoio/hashstructure v0.6.0 h1:7wMB/2CfXoThFYhdWRGv3u3rUM761Cq29CxUW+NltUg= +github.com/gohugoio/hashstructure v0.6.0/go.mod h1:lapVLk9XidheHG1IQ4ZSbyYrXcaILU1ZEP/+vno5rBQ= +github.com/gohugoio/httpcache v0.8.0 h1:hNdsmGSELztetYCsPVgjA960zSa4dfEqqF/SficorCU= +github.com/gohugoio/httpcache v0.8.0/go.mod h1:fMlPrdY/vVJhAriLZnrF5QpN3BNAcoBClgAyQd+lGFI= +github.com/gohugoio/hugo v0.155.3 h1:gZiMNSbijSFlfJpg+luiIfj7kp74XE4+hxMEgYKQ6Ls= +github.com/gohugoio/hugo v0.155.3/go.mod h1:toU7t3jAqWMKC5AoI43YGsLRMmyG6RT6MFYDrXvIfZI= +github.com/gohugoio/hugo-goldmark-extensions/extras v0.5.0 h1:dco+7YiOryRoPOMXwwaf+kktZSCtlFtreNdiJbETvYE= +github.com/gohugoio/hugo-goldmark-extensions/extras v0.5.0/go.mod h1:CRrxQTKeM3imw+UoS4EHKyrqB7Zp6sAJiqHit+aMGTE= +github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1 h1:nUzXfRTszLliZuN0JTKeunXTRaiFX6ksaWP0puLLYAY= +github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1/go.mod h1:Wy8ThAA8p2/w1DY05vEzq6EIeI2mzDjvHsu7ULBVwog= github.com/gohugoio/locales v0.14.0 h1:Q0gpsZwfv7ATHMbcTNepFd59H7GoykzWJIxi113XGDc= github.com/gohugoio/locales v0.14.0/go.mod h1:ip8cCAv/cnmVLzzXtiTpPwgJ4xhKZranqNqtoIu0b/4= -github.com/gohugoio/localescompressed v0.14.0 h1:gP4zzgfF3NFr2rNzwxReD/tDXz98pAGVmrPy3ZCLRDc= -github.com/gohugoio/localescompressed v0.14.0/go.mod h1:jBF6q8D7a0vaEmcWPNcAjUZLJaIVNiwvM3WlmTvooB0= -github.com/gohugoio/testmodBuilder/mods v0.0.0-20190520184928-c56af20f2e95 h1:sgew0XCnZwnzpWxTt3V8LLiCO7OQi3C6dycaE67wfkU= -github.com/gohugoio/testmodBuilder/mods v0.0.0-20190520184928-c56af20f2e95/go.mod h1:bOlVlCa1/RajcHpXkrUXPSHB/Re1UnlXxD1Qp8SKOd8= +github.com/gohugoio/localescompressed v1.0.1 h1:KTYMi8fCWYLswFyJAeOtuk/EkXR/KPTHHNN9OS+RTxo= +github.com/gohugoio/localescompressed v1.0.1/go.mod h1:jBF6q8D7a0vaEmcWPNcAjUZLJaIVNiwvM3WlmTvooB0= +github.com/golang-jwt/jwt/v5 v5.2.3 h1:kkGXqQOBSDDWRhWNXTFpqGSCMyh/PLnqUvMGJPDJDs0= +github.com/golang-jwt/jwt/v5 v5.2.3/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -281,8 +326,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -297,12 +340,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -313,119 +352,77 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-replayers/grpcreplay v0.1.0 h1:eNb1y9rZFmY4ax45uEEECSa8fsxGRU+8Bil52ASAwic= -github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= -github.com/google/go-replayers/httpreplay v0.1.0 h1:AX7FUb4BjrrzNvblr/OlgwrmFiep6soj5K2QSDW7BGk= -github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/go-replayers/grpcreplay v1.3.0 h1:1Keyy0m1sIpqstQmgz307zhiJ1pV4uIlFds5weTmxbo= +github.com/google/go-replayers/grpcreplay v1.3.0/go.mod h1:v6NgKtkijC0d3e3RW8il6Sy5sqRVUwoQa4mHOGEy8DI= +github.com/google/go-replayers/httpreplay v1.2.0 h1:VM1wEyyjaoU53BwrOnaf9VhAyQQEEioJvFYxYcLRKzk= +github.com/google/go-replayers/httpreplay v1.2.0/go.mod h1:WahEFFZZ7a1P4VM1qEeHy+tME4bwyqPcwWbNlUI1Mcg= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible h1:xmapqc1AyLoB+ddYT6r04bD9lIjlOqGaREovi0SzFaE= -github.com/google/martian v2.1.1-0.20190517191504-25dcb96d9e51+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= -github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc= +github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 h1:z2ogiKUYzX5Is6zr/vP9vJGqPwcdqsWjOt+V8J7+bTc= +github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/wire v0.4.0 h1:kXcsA/rIGzJImVqPdhfnr6q0xsS9gU0515q1EPpJ9fE= -github.com/google/wire v0.4.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/gax-go v2.0.2+incompatible h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww= -github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/google/wire v0.7.0 h1:JxUKI6+CVBgCO2WToKy/nQk0sS+amI9z9EjVmdaocj4= +github.com/google/wire v0.7.0/go.mod h1:n6YbUQD9cPKTnHXEBN2DXlOp/mVADhVErcMFb0v3J18= +github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= +github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/csrf v1.6.0/go.mod h1:7tSf8kmjNYr7IWDCYhd3U8Ck34iQ/Yw5CJu7bAkHEGI= -github.com/gorilla/handlers v1.4.1/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8= +github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/hairyhenderson/go-codeowners v0.7.0 h1:s0W4wF8bdsBEjTWzwzSlsatSthWtTAF2xLgo4a4RwAo= +github.com/hairyhenderson/go-codeowners v0.7.0/go.mod h1:wUlNgQ3QjqC4z8DnM5nnCYVq/icpqXJyJOukKx5U8/Q= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= -github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= +github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jdkato/prose v1.2.1 h1:Fp3UnJmLVISmlc57BgKUzdjr0lOtjqTZicL3PaYy6cU= github.com/jdkato/prose v1.2.1/go.mod h1:AiRHgVagnEx2JbQRQowVBKjG0bcs/vtkGCH1dYAL1rA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a h1:FaWFmfWdAUKbSCtOU2QjDaorUexogfaMgbipgYATUMU= -github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU= -github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/karrick/godirwalk v1.17.0 h1:b4kY7nqDdioR/6qnbHQyDvmA17u5G1cZ6J+CZXwSWoI= -github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= +github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -438,69 +435,32 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/kyokomi/emoji/v2 v2.2.8 h1:jcofPxjHWEkJtkIbcLHvZhxKgCPl6C7MyjTrD4KDqUE= -github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= -github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/kyokomi/emoji/v2 v2.2.13 h1:GhTfQa67venUUvmleTNFnb+bi7S3aocF7ZCXU9fSO7U= +github.com/kyokomi/emoji/v2 v2.2.13/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= -github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a h1:weJVJJRzAJBFRlAiJQROKQs8oC9vOxvm4rZmBBk0ONw= -github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/magefile/mage v1.11.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/manifoldco/promptui v0.8.0 h1:R95mMF+McvXZQ7j1g8ucVZE1gLP3Sv6j9vlF9kyRqQo= -github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEXGwov2nIKuGQ= -github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= -github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= -github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= -github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= -github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqfI= -github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/mmark v1.3.6 h1:t47x5vThdwgLJzofNsbsAl7gmIiJ7kbDQN5BxwBmwvY= -github.com/miekg/mmark v1.3.6/go.mod h1:w7r9mkTvpS55jlfyn22qJ618itLryxXBhA7Jp3FIlkw= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/makeworld-the-better-one/dither/v2 v2.4.0 h1:Az/dYXiTcwcRSe59Hzw4RI1rSnAZns+1msaCXetrMFE= +github.com/makeworld-the-better-one/dither/v2 v2.4.0/go.mod h1:VBtN8DXO7SNtyGmLiGA7IsFeKrBkQPze1/iAeM95arc= +github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= +github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= +github.com/marekm4/color-extractor v1.2.1 h1:3Zb2tQsn6bITZ8MBVhc33Qn1k5/SEuZ18mrXGUqIwn0= +github.com/marekm4/color-extractor v1.2.1/go.mod h1:90VjmiHI6M8ez9eYUaXLdcKnS+BAOp7w+NpwBdkJmpA= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk= +github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9kmUZPXP+H0= -github.com/mitchellh/hashstructure v1.1.0/go.mod h1:xUDAozZz0Wmdiufv0uyhnHkUTN6/6d8ulp4AwfLKrmA= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= -github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE= +github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/montanaflynn/stats v0.6.3/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= @@ -509,9 +469,8 @@ github.com/muesli/smartcrop v0.3.0/go.mod h1:i2fCI/UorTfgEpPPLWiFBv4pye+YAG78Rwc github.com/neurosnap/sentences v1.0.6/go.mod h1:pg1IapvYpWCJJm/Etxeh0+gtMf1rI1STY9S7eUCPbDc= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= -github.com/niklasfasching/go-org v1.5.0 h1:V8IwoSPm/d61bceyWFxxnQLtlvNT+CjiYIhtZLdnMF0= -github.com/niklasfasching/go-org v1.5.0/go.mod h1:sSb8ylwnAG+h8MGFDB3R1D5bxf8wA08REfhjShg3kjA= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= +github.com/niklasfasching/go-org v1.9.1 h1:/3s4uTPOF06pImGa2Yvlp24yKXZoTYM+nsIlMzfpg/0= +github.com/niklasfasching/go-org v1.9.1/go.mod h1:ZAGFFkWvUQcpazmi/8nHqwvARpr1xpb+Es67oUGX/48= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -519,158 +478,176 @@ github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037 h1:G7ERwszslrBzRxj//J github.com/oasdiff/yaml v0.0.0-20250309154309-f31be36b4037/go.mod h1:2bpvgLBZEtENV5scfDFEtB/5+1M4hkQhDQrccEJ/qGw= github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90 h1:bQx3WeLcUWy+RletIKwUIt4x3t8n2SxavmoclizMb8c= github.com/oasdiff/yaml3 v0.0.0-20250309153720-d2182401db90/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o= -github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc= +github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0= +github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM= +github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y= +github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0 h1:jrYnow5+hy3WRDCBypUFvVKNSPPCdqgSXIE9eJDD8LM= +github.com/olekukonko/ll v0.1.4-0.20260115111900-9e59c2286df0/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew= +github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA= +github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo/v2 v2.28.0 h1:Rrf+lVLmtlBIKv6KrIGJCjyY8N36vDVcutbGJkyqjJc= +github.com/onsi/ginkgo/v2 v2.28.0/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= -github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= -github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= -github.com/otiai10/mint v1.3.1 h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc= -github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= -github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.0-beta.3.0.20210727221244-fa0796069526 h1:o8tGfr0zuKDD+3qIdzD1pK78melGepDQMb55F4Q6qlo= -github.com/pelletier/go-toml/v2 v2.0.0-beta.3.0.20210727221244-fa0796069526/go.mod h1:aNseLYu/uKskg0zpr/kbr2z8yGuWtotWf/0BpGIAL2Y= +github.com/onsi/gomega v1.39.1 h1:1IJLAad4zjPn2PsnhH70V4DKRFlrCzGBNrNaru+Vf28= +github.com/onsi/gomega v1.39.1/go.mod h1:hL6yVALoTOxeWudERyfppUcZXjMwIMLnuSfruD2lcfg= +github.com/otiai10/copy v1.14.1 h1:5/7E6qsUMBaH5AnQ0sSLzzTg1oTECmcCmT6lvF45Na8= +github.com/otiai10/copy v1.14.1/go.mod h1:oQwrEDDOci3IM8dJF0d8+jnbfPDllW6vUjNc3DoZm9I= +github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs= +github.com/otiai10/mint v1.6.3/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s= github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= +github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6 h1:tlXG832s5pa9x9Gs3Rp2rTvEqjiDEuETUOSfBEiTcns= -github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sanity-io/litter v1.5.1 h1:dwnrSypP6q56o3lFxTU+t2fwQ9A+U5qrXVO4Qg9KwVU= -github.com/sanity-io/litter v1.5.1/go.mod h1:5Z71SvaYy5kcGtyglXOC9rrUi3c1E8CamFWjQsazTh0= +github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc= +github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik= github.com/scylladb/go-set v1.0.2 h1:SkvlMCKhP0wyyct6j+0IHJkBkSZL+TDzZ4E7f7BCcRE= github.com/scylladb/go-set v1.0.2/go.mod h1:DkpGd78rljTxKAnTDPFqXSGxvETQnJyuSOQwsHycqfs= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sebdah/goldie/v2 v2.8.0 h1:dZb9wR8q5++oplmEiJT+U/5KyotVD+HNGCAc5gNr8rc= +github.com/sebdah/goldie/v2 v2.8.0/go.mod h1:oZ9fp0+se1eapSRjfYbsV/0Hqhbuu3bJVvKI/NNtssI= +github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= +github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shogo82148/go-shuffle v0.0.0-20180218125048-27e6095f230d/go.mod h1:2htx6lmL0NGLHlO8ZCf+lQBGBHIbEujyywxJArf+2Yc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= -github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= -github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= -github.com/spf13/fsync v0.9.0 h1:f9CEt3DOB2mnHxZaftmEOFWjABEvKM/xpf3cUwJrGOY= -github.com/spf13/fsync v0.9.0/go.mod h1:fNtJEfG3HiltN3y4cPOz6MLjos9+2pIEqLIgszqhp/0= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/spf13/viper v1.10.0 h1:mXH0UwHS4D2HwWZa75im4xIQynLfblmWV7qcWpfv0yk= -github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= +github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= +github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= +github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= +github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/fsync v0.10.1 h1:JRnB7G72b+gIBaBcpn5ibJSd7ww1iEahXSX2B8G6dSE= +github.com/spf13/fsync v0.10.1/go.mod h1:y+B41vYq5i6Boa3Z+BVoPbDeOvxVkNU5OBXhoT8i4TQ= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= +github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= +github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1-0.20210427113832-6241f9ab9942/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tdewolff/minify/v2 v2.9.21 h1:nO4s1PEMy7aRjlIlbr3Jgr+bJby8QYuifa2Vs2f9lh4= -github.com/tdewolff/minify/v2 v2.9.21/go.mod h1:PoDBts2L7sCwUT28vTAlozGeD6qxjrrihtin4bR/RMM= -github.com/tdewolff/parse/v2 v2.5.19 h1:Kjaj3KQOx/4elIxlBSglus4E2oMfdROphvbq2b+OBZ0= -github.com/tdewolff/parse/v2 v2.5.19/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho= -github.com/tdewolff/test v1.0.6 h1:76mzYJQ83Op284kMT+63iCNCI7NEERsIN8dLM+RiKr4= -github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/tdewolff/minify/v2 v2.24.8 h1:58/VjsbevI4d5FGV0ZSuBrHMSSkH4MCH0sIz/eKIauE= +github.com/tdewolff/minify/v2 v2.24.8/go.mod h1:0Ukj0CRpo/sW/nd8uZ4ccXaV1rEVIWA3dj8U7+Shhfw= +github.com/tdewolff/parse/v2 v2.8.5 h1:ZmBiA/8Do5Rpk7bDye0jbbDUpXXbCdc3iah4VeUvwYU= +github.com/tdewolff/parse/v2 v2.8.5/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo= +github.com/tdewolff/test v1.0.11 h1:FdLbwQVHxqG16SlkGveC0JVyrJN62COWTRyUFzfbtBE= +github.com/tdewolff/test v1.0.11/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8= +github.com/tetratelabs/wazero v1.11.0 h1:+gKemEuKCTevU4d7ZTzlsvgd1uaToIDtlQlmNbwqYhA= +github.com/tetratelabs/wazero v1.11.0/go.mod h1:eV28rsN8Q+xwjogd7f4/Pp4xFxO7uOGbLcD/LzB1wiU= github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/yuin/goldmark v1.1.22/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/woodsbury/decimal128 v1.3.0 h1:8pffMNWIlC0O5vbyHWFZAt5yWvWcrHA+3ovIIjVWss0= +github.com/woodsbury/decimal128 v1.3.0/go.mod h1:C5UTmyTjW3JftjUFzOVhC20BEQa2a4ZKOB5I6Zjb+ds= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1 h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 h1:VWSxtAiQNh3zgHJpdpkpVYjTPqRE3P6UZCOPa1nRDio= -github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691/go.mod h1:YLF3kDffRfUH/bTxOxHhV6lxwIB3Vfj91rEwNMS9MXo= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE= +github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= +github.com/yuin/goldmark-emoji v1.0.6 h1:QWfF2FYaXwL74tfGOW5izeiZepUDroDJfWubQI9HTHs= +github.com/yuin/goldmark-emoji v1.0.6/go.mod h1:ukxJDKFpdFb5x0a5HqbdlcKtebh086iJpI31LTKmWuA= +github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= +github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -gocloud.dev v0.20.0 h1:mbEKMfnyPV7W1Rj35R1xXfjszs9dXkwSOq2KoFr25g8= -gocloud.dev v0.20.0/go.mod h1:+Y/RpSXrJthIOM8uFNzWp6MRu9pFPNFEEZrQMxpkfIc= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/detectors/gcp v1.37.0 h1:B+WbN9RPsvobe6q4vP6KgM8/9plR/HNjgGBrfcOlweA= +go.opentelemetry.io/contrib/detectors/gcp v1.37.0/go.mod h1:K5zQ3TT7p2ru9Qkzk0bKtCql0RGkPj9pRjpXgZJZ+rU= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 h1:rbRJ8BBoVMsQShESYZ0FkvcITu8X8QNwJogcLUmDNNw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0/go.mod h1:ru6KHrNtNHxM4nD/vd6QrLVWgKhxPYgblq4VAtNawTQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 h1:Hf9xI/XLML9ElpiHVDNwvqI0hIFlzV8dgIr35kV1kRU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0/go.mod h1:NfchwuyNoMcZ5MLHwPrODwUF1HWCXWrL31s8gSAdIKY= +go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ= +go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0 h1:6VjV6Et+1Hd2iLZEPtdV7vie80Yyqf7oikJLjQ/myi0= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0/go.mod h1:u8hcp8ji5gaM/RfcOo8z9NMnf1pVLfVY7lBY2VOGuUU= +go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE= +go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E= +go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI= +go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg= +go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc= +go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps= +go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4= +go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0= +go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= +go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +gocloud.dev v0.44.0 h1:iVyMAqFl2r6xUy7M4mfqwlN+21UpJoEtgHEcfiLMUXs= +gocloud.dev v0.44.0/go.mod h1:ZmjROXGdC/eKZLF1N+RujDlFRx3D+4Av2thREKDMVxY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -683,9 +660,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ= -golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E= +golang.org/x/image v0.35.0 h1:LKjiHdgMtO8z7Fh18nGY6KDcoEtVfsgLDPeLyguqb7I= +golang.org/x/image v0.35.0/go.mod h1:MwPLTVgvxSASsxdLzKrl8BRFuyqMyGhLwmC+TO1Sybk= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -697,7 +673,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -709,14 +684,16 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= +golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -724,12 +701,9 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -742,27 +716,27 @@ golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -770,13 +744,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= -golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= +golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -788,14 +757,17 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -807,28 +779,21 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200317113312-5766fd39f98d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -837,50 +802,61 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190422233926-fe54fb35175b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -890,7 +866,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -908,17 +883,11 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200601175630-2caf76543d99/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200606014950-c42cb6316fb6/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200608174601-1b747fd94509/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= @@ -928,23 +897,24 @@ golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= +golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= +golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -957,37 +927,26 @@ google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/ google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.26.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.255.0 h1:OaF+IbRwOottVCYV2wZan7KUq7UeNUQn1BcPc4K7lE4= +google.golang.org/api v0.255.0/go.mod h1:d1/EtvCLdtiWEV4rAEHDHGh2bCnqsWhw+M8y2ECN4a8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -1003,16 +962,11 @@ google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200317114155-1f3552e48f24/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200325114520-5b2d0af7952b/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200603110839-e855014d5736/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1023,24 +977,15 @@ google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20250715232539-7130f93afb79 h1:Nt6z9UHqSlIdIGJdz6KhTIs2VRx/iOsA5iE8bmQNcxs= +google.golang.org/genproto v0.0.0-20250715232539-7130f93afb79/go.mod h1:kTmlBHMPqR5uCZPBvwa2B18mvubkjyY3CRLI0c6fj0s= +google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c h1:AtEkQdl5b6zsybXcbz00j1LwNodDuH6hVifIaNqk7NQ= +google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c/go.mod h1:ea2MjsO70ssTfCjiwHgI0ZFqcw45Ksuk2ckf9G468GA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda h1:i/Q+bfisr7gq6feoJnS/DlpdwEL4ihp41fvRiM3Ork0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -1052,19 +997,11 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= -google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= +google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1075,33 +1012,24 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= -gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/neurosnap/sentences.v1 v1.0.6/go.mod h1:YlK+SN+fLQZj+kY3r8DkGDhDr91+S3JmTb5LSxFRQo0= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1111,6 +1039,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM= +howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY= +rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +software.sslmate.com/src/go-pkcs12 v0.2.0 h1:nlFkj7bTysH6VkC4fGphtjXRbezREPgrHuJG20hBGPE= +software.sslmate.com/src/go-pkcs12 v0.2.0/go.mod h1:23rNcYsMabIc1otwLpTkCCPwUq6kQsTyowttG/as0kQ= diff --git a/main.go b/main.go index 480644d5..cf9250fa 100644 --- a/main.go +++ b/main.go @@ -2,8 +2,12 @@ package main import ( "github.com/SPANDigital/presidium-hugo/cmd" + "github.com/SPANDigital/presidium-hugo/pkg/domain/service/template" + "github.com/SPANDigital/presidium-hugo/pkg/domain/service/themes" ) func main() { + template.SetFS(templatesFS) + themes.SetFS(themesFS) cmd.Execute() } diff --git a/pkg/configtranslation/configfile.go b/pkg/configtranslation/configfile.go index 8295a0b6..02e1fec4 100644 --- a/pkg/configtranslation/configfile.go +++ b/pkg/configtranslation/configfile.go @@ -8,7 +8,7 @@ import ( "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors" "github.com/SPANDigital/presidium-hugo/pkg/log" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" ) type JekyllShow struct { @@ -18,7 +18,7 @@ type JekyllShow struct { } type JekyllExternal struct { - AuthorsUrl string `yaml:"authors-url:` + AuthorsUrl string `yaml:"authors-url"` } type JekyllSectionItem struct { @@ -56,14 +56,15 @@ func (j *JekyllConfig) reparsedShowOptionsAsSequenceDictionaries() bool { for k, v := range values { if name, ok = k.(string); ok { if flagged, ok = v.(bool); ok { - if name == "roles" { + switch name { + case "roles": parsed.Roles = flagged - } else if name == "author" { + case "author": parsed.Author = flagged - } else if name == "status" { + case "status": parsed.Status = flagged - } else { - log.Debug(fmt.Sprintf("unsupported shop option: [%s:%v]", name, flagged)) + default: + log.Debug(fmt.Sprintf("unsupported show option: [%s:%v]", name, flagged)) } } } @@ -89,13 +90,14 @@ func (j *JekyllConfig) reparsedShowOptionsAsDictionary() bool { var flagged bool if option, ok = k.(string); ok { if flagged, ok = v.(bool); ok { - if option == "author" { + switch option { + case "author": parsed.Author = flagged - } else if option == "roles" { + case "roles": parsed.Roles = flagged - } else if option == "status" { + case "status": parsed.Status = flagged - } else { + default: log.Debug(fmt.Sprintf("unsupported: [%s:%v]", option, flagged)) } } @@ -189,7 +191,7 @@ type HugoFrontmatter struct { type Roles struct { Label string `yaml:"label"` All string `yaml:"all"` - Options []string `yaml:options` + Options []string `yaml:"options"` } func ReadJekyllConfig(path string) (*JekyllConfig, error) { diff --git a/pkg/domain/model/generator/model.go b/pkg/domain/model/generator/model.go index 211912d3..28203d77 100644 --- a/pkg/domain/model/generator/model.go +++ b/pkg/domain/model/generator/model.go @@ -17,6 +17,8 @@ const ( OnBoardingTemplate DesignTemplate BlogTemplate + RequirementsTemplate + RunbookTemplate ) const ( @@ -30,6 +32,8 @@ var ( OnBoardingTemplate, DesignTemplate, BlogTemplate, + RequirementsTemplate, + RunbookTemplate, } ) @@ -95,6 +99,8 @@ func (t Template) Name() string { "SPAN On-boarding Template", "SPAN Design Template", "SPAN Blog Template", + "SPAN Requirements Template", + "SPAN Runbook Template", }[t] } @@ -104,6 +110,8 @@ func (t Template) Description() string { "SPAN's on-boarding template", "SPAN's design template", "SPAN's blog template", + "SPAN's requirements template", + "SPAN's runbook template", }[t] } @@ -113,6 +121,8 @@ func (t Template) Code() string { "onboarding", "design", "blog", + "requirements", + "runbook", }[t] } @@ -126,6 +136,10 @@ func GetTemplate(code string) (Template, error) { return DesignTemplate, nil case BlogTemplate.Code(): return BlogTemplate, nil + case RequirementsTemplate.Code(): + return RequirementsTemplate, nil + case RunbookTemplate.Code(): + return RunbookTemplate, nil default: return 0, presidiumerr.GenericError{Code: presidiumerr.UnsupportedTemplate} } diff --git a/pkg/domain/service/conversion/conversion.go b/pkg/domain/service/conversion/conversion.go index 5ce77012..5a61c4db 100644 --- a/pkg/domain/service/conversion/conversion.go +++ b/pkg/domain/service/conversion/conversion.go @@ -3,9 +3,6 @@ package conversion import ( "errors" "fmt" - "github.com/SPANDigital/presidium-hugo/pkg/config" - "github.com/SPANDigital/presidium-hugo/pkg/domain/service/hugo" - "github.com/SPANDigital/presidium-hugo/pkg/utils" "io" "io/fs" "log" @@ -13,6 +10,10 @@ import ( "path/filepath" "strings" + "github.com/SPANDigital/presidium-hugo/pkg/config" + "github.com/SPANDigital/presidium-hugo/pkg/domain/service/hugo" + "github.com/SPANDigital/presidium-hugo/pkg/utils" + "github.com/SPANDigital/presidium-hugo/pkg/configtranslation" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources" @@ -286,7 +287,7 @@ func (c *Converter) prepareStaging() { } err := c.fs.CopyWithOptions(c.sourceRepoContentDir, c.stagingContentDir, copy.Options{ - Skip: func(src string) (bool, error) { + Skip: func(srcinfo os.FileInfo, src, dest string) (bool, error) { _, file := filepath.Split(src) if strings.HasPrefix(file, ".") { return true, nil @@ -408,10 +409,14 @@ func (c *Converter) generateHugoModule() { } c.messageUser(infoMessage("Adding Hugo GO module to site").withContentStyle(colors.Labels.Wanted)) - hugo.New().Execute("--source", c.stagingDir, "mod", "init", c.moduleName()) + if err := hugo.New().Execute("--source", c.stagingDir, "mod", "init", c.moduleName()); err != nil { + log.Fatalf("failed to initialize Hugo Go module in staging directory %q: %v", c.stagingDir, err) + } srcModFile := filepath.Join(c.stagingDir, "go.mod") dstModFile := filepath.Join(c.destinationRepoDir, "go.mod") - _ = c.fs.Copy(srcModFile, dstModFile, fs.ModePerm) + if err := c.fs.Copy(srcModFile, dstModFile, fs.ModePerm); err != nil { + log.Fatalf("failed to copy generated go.mod from %q to %q: %v", srcModFile, dstModFile, err) + } c.messageUser(infoMessage("Copied over hugo mod file")) } diff --git a/pkg/domain/service/conversion/fileactions/fileactions.go b/pkg/domain/service/conversion/fileactions/fileactions.go index 3ec46b25..c3a06162 100644 --- a/pkg/domain/service/conversion/fileactions/fileactions.go +++ b/pkg/domain/service/conversion/fileactions/fileactions.go @@ -1,6 +1,7 @@ package fileactions import ( + "errors" "fmt" "github.com/SPANDigital/presidium-hugo/pkg/config" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors" @@ -8,7 +9,6 @@ import ( "github.com/SPANDigital/presidium-hugo/pkg/filesystem" "github.com/SPANDigital/presidium-hugo/pkg/log" "github.com/SPANDigital/presidium-hugo/pkg/utils" - "github.com/pkg/errors" "github.com/spf13/viper" "io/fs" "os" @@ -61,7 +61,7 @@ func SetRootUrl(contentPath string) error { } func CheckForDirIndex(stagingDir, contentPath string) error { - return filesystem.AFS.Walk(contentPath, func(path string, info os.FileInfo, err error) error { + return filesystem.AFS.Walk(contentPath, func(path string, info os.FileInfo, _ error) error { fmt.Println("Walking", colors.Labels.Info(path)) if isContentPath(path, stagingDir) { return nil @@ -69,8 +69,7 @@ func CheckForDirIndex(stagingDir, contentPath string) error { if filepath.Base(path) == "index.md" { newPath := filepath.Join(filepath.Dir(path), "_index.md") - err = filesystem.AFS.Rename(path, newPath) - if err != nil { + if err := filesystem.AFS.Rename(path, newPath); err != nil { return err } return nil @@ -81,7 +80,7 @@ func CheckForDirIndex(stagingDir, contentPath string) error { } indexPath := filepath.Join(path, "_index.md") - fmt.Println(fmt.Sprintf("Checking %s for _index.md...\n", colors.Labels.Wanted(indexPath))) + fmt.Printf("Checking %s for _index.md...\n", colors.Labels.Wanted(indexPath)) if utils.FileExists(indexPath) { return nil } @@ -93,11 +92,11 @@ func CheckForDirIndex(stagingDir, contentPath string) error { func AddFrontMatter(stagingDir, contentPath string) error { pm, err := buildWeightMap(contentPath) if err != nil { - return errors.Wrap(err, "path map") + return fmt.Errorf("path map: %w", err) } dirUrls = map[string]string{} - return filesystem.AFS.Walk(contentPath, func(path string, info fs.FileInfo, err error) error { + return filesystem.AFS.Walk(contentPath, func(path string, info fs.FileInfo, _ error) error { if isIndex(path) || isContentPath(path, stagingDir) { return nil } @@ -110,8 +109,8 @@ func AddFrontMatter(stagingDir, contentPath string) error { return nil } - md, err := markdownForPath(path) - if err != nil { + md, mdErr := markdownForPath(path) + if mdErr != nil { return nil } @@ -121,8 +120,7 @@ func AddFrontMatter(stagingDir, contentPath string) error { if config.Flags.AddSlugAndUrl { fm.Slug, fm.URL = getSlugAndUrl(stagingDir, md.FrontMatter.Title, path) } - err = markdown.AddFrontMatter(path, fm) - if err != nil { + if err := markdown.AddFrontMatter(path, fm); err != nil { return err } @@ -131,7 +129,7 @@ func AddFrontMatter(stagingDir, contentPath string) error { } func CheckForTitles(contentPath string) error { - return filesystem.AFS.Walk(contentPath, func(path string, info os.FileInfo, err error) error { + return filesystem.AFS.Walk(contentPath, func(path string, info os.FileInfo, _ error) error { if info.IsDir() || !isMdFile(path) { return nil } @@ -148,9 +146,6 @@ func CheckForTitles(contentPath string) error { if isIndex(path) { dir := filepath.Dir(path) md.FrontMatter.Title = titleFromPath(dir) - if err != nil { - return err - } } else { md.FrontMatter.Title = titleFromPath(path) } @@ -221,11 +216,7 @@ func buildWeightMap(contentPath string) (directoryMap, error) { } dir := filepath.Dir(path) - if _, ok := dirMap[dir]; ok { - dirMap[dir] = append(dirMap[dir], path) - } else { - dirMap[dir] = []string{path} - } + dirMap[dir] = append(dirMap[dir], path) return nil }) return dirMap, err @@ -285,7 +276,7 @@ func removeWeightFromFilePath(content string) error { func getDirectorySlug(path string) (string, error) { indexPath := filepath.Join(path, "_index.md") if !utils.FileExists(indexPath) { - return "", errors.New("Index file not found") + return "", errors.New("index file not found") } md, err := markdownForPath(indexPath) @@ -294,7 +285,7 @@ func getDirectorySlug(path string) (string, error) { } if len(md.FrontMatter.Title) == 0 { - return "", errors.Errorf("path has no title: %s", path) + return "", fmt.Errorf("path has no title: %s", path) } return utils.TitleToSlug(md.FrontMatter.Title), nil diff --git a/pkg/domain/service/conversion/fileactions/fileactions_test.go b/pkg/domain/service/conversion/fileactions/fileactions_test.go index 10901d42..0331545c 100644 --- a/pkg/domain/service/conversion/fileactions/fileactions_test.go +++ b/pkg/domain/service/conversion/fileactions/fileactions_test.go @@ -239,8 +239,12 @@ func mockFrontMatter(path string, fm markdown.FrontMatter) error { Fail("") } - filesystem.FS.Create(path) - markdown.AddFrontMatter(path, fm) + if _, err := filesystem.FS.Create(path); err != nil { + Fail("failed to create file") + } + if err := markdown.AddFrontMatter(path, fm); err != nil { + return err + } return nil } diff --git a/pkg/domain/service/conversion/html/html.go b/pkg/domain/service/conversion/html/html.go index d482b1bc..762fd801 100644 --- a/pkg/domain/service/conversion/html/html.go +++ b/pkg/domain/service/conversion/html/html.go @@ -5,5 +5,5 @@ import ( ) func ContainsHTML(content string) bool { - return strings.Index(content, "<") > -1 && strings.Index(content, ">") > -1 + return strings.Contains(content, "<") && strings.Contains(content, ">") } diff --git a/pkg/domain/service/conversion/markdown/frontmatter.go b/pkg/domain/service/conversion/markdown/frontmatter.go index e164985a..b4d0f261 100644 --- a/pkg/domain/service/conversion/markdown/frontmatter.go +++ b/pkg/domain/service/conversion/markdown/frontmatter.go @@ -2,7 +2,7 @@ package markdown import ( "fmt" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" "io" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors" @@ -19,7 +19,7 @@ type FrontMatter struct { Author string `yaml:"author,omitempty"` Github string `yaml:"github,omitempty"` Status string `yaml:"status,omitempty"` - Roles string `yaml:"roles,omitempty"` + Roles string `yaml:"roles,omitempty"` } // SetupExcludes initialize excludes from Viper @@ -38,7 +38,7 @@ func AddFrontMatter(path string, fm FrontMatter) error { return err } - _, err = io.WriteString(w, string(out)) + _, err = w.Write(out) if err != nil { return err } diff --git a/pkg/domain/service/conversion/markdown/frontmatter_test.go b/pkg/domain/service/conversion/markdown/frontmatter_test.go index 85650d24..5e77a787 100644 --- a/pkg/domain/service/conversion/markdown/frontmatter_test.go +++ b/pkg/domain/service/conversion/markdown/frontmatter_test.go @@ -11,7 +11,7 @@ var _ = Describe("AddFrontMatter", func() { filesystem.SetFileSystem(afero.NewMemMapFs()) BeforeEach(func() { - filesystem.FS.Remove("test.md") + _ = filesystem.FS.Remove("test.md") }) When("adding front matter", func() { diff --git a/pkg/domain/service/conversion/markdown/manipulate.go b/pkg/domain/service/conversion/markdown/manipulate.go index 7ec61fcf..a86f8210 100644 --- a/pkg/domain/service/conversion/markdown/manipulate.go +++ b/pkg/domain/service/conversion/markdown/manipulate.go @@ -2,9 +2,10 @@ package markdown import ( "fmt" - . "github.com/SPANDigital/presidium-hugo/pkg/filesystem" "io" "os" + + "github.com/SPANDigital/presidium-hugo/pkg/filesystem" ) // WriteFrontMatterFunc are for callbacks which allow you to customize @@ -21,7 +22,7 @@ type WriteContentFunc func(content []byte, w io.Writer) error func IsRecognizableMarkdown(path string) bool { fmt.Println("Validating", path) - b, err := AFS.ReadFile(path) // just pass the file name + b, err := filesystem.AFS.ReadFile(path) // just pass the file name if err != nil { return false } @@ -31,9 +32,9 @@ func IsRecognizableMarkdown(path string) bool { // Checks if a markdown file exists, if it doesn't create an empty one func touch(path string) error { - _, err := AFS.Stat(path) + _, err := filesystem.AFS.Stat(path) if os.IsNotExist(err) { - f, err := AFS.Create(path) + f, err := filesystem.AFS.Create(path) if err == nil { _, err = f.WriteString("---\n---\n") if err == nil { @@ -57,7 +58,7 @@ func ManipulateMarkdown(path string, matterFunc WriteFrontMatterFunc, contentFun return err } - b, err := AFS.ReadFile(path) // just pass the file name + b, err := filesystem.AFS.ReadFile(path) // just pass the file name if err != nil { return err } @@ -66,35 +67,40 @@ func ManipulateMarkdown(path string, matterFunc WriteFrontMatterFunc, contentFun if matches == nil { matches = [][]byte{ // we don't care about matches[0] - []byte{}, + {}, []byte("---\n"), - []byte{}, + {}, []byte("---\n"), b, } } - f, err := FS.Create(path) + f, err := filesystem.FS.Create(path) if err != nil { return err } - f.Write(matches[1]) + if _, err := f.Write(matches[1]); err != nil { + return err + } if matterFunc != nil { - err := matterFunc(matches[2], f) - if err != nil { + if err := matterFunc(matches[2], f); err != nil { return err } } else { - f.Write(matches[2]) + if _, err := f.Write(matches[2]); err != nil { + return err + } + } + if _, err := f.Write(matches[3]); err != nil { + return err } - f.Write(matches[3]) if contentFunc != nil { - err := contentFunc(matches[4], f) - if err != nil { + if err := contentFunc(matches[4], f); err != nil { return err } } else { - f.Write(matches[4]) + if _, err := f.Write(matches[4]); err != nil { + return err + } } return f.Close() - } diff --git a/pkg/domain/service/conversion/markdown/markdown_test.go b/pkg/domain/service/conversion/markdown/markdown_test.go index eacc853f..bcb176eb 100644 --- a/pkg/domain/service/conversion/markdown/markdown_test.go +++ b/pkg/domain/service/conversion/markdown/markdown_test.go @@ -2,12 +2,12 @@ package markdown import ( "fmt" - "github.com/Masterminds/goutils" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors" "github.com/SPANDigital/presidium-hugo/pkg/filesystem" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/spf13/afero" + "math/rand/v2" "os" "path/filepath" "testing" @@ -159,8 +159,7 @@ func mustHaveDir(path string) { } func mustHaveMarkdownInputFile(dir string, content string) string { - fileId, fileIdErr := goutils.RandomAlphaNumeric(4) - Expect(fileIdErr).ShouldNot(HaveOccurred()) + fileId := fmt.Sprintf("%04d", rand.IntN(10000)) mustHaveDir(dir) name := fmt.Sprintf("contentOf-%s.md", fileId) path := filepath.Join(dir, name) diff --git a/pkg/domain/service/conversion/markdown/operations.go b/pkg/domain/service/conversion/markdown/operations.go index c3bce7ba..1850025e 100644 --- a/pkg/domain/service/conversion/markdown/operations.go +++ b/pkg/domain/service/conversion/markdown/operations.go @@ -9,9 +9,10 @@ import ( "regexp" "strings" + "net/url" + "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/html" - "github.com/gohugoio/hugo/common/paths" "github.com/spf13/viper" ) @@ -152,11 +153,17 @@ func fixFigureCaptions(path string) error { }) } +// isAbsURL returns true if the given string is an absolute URL. +func isAbsURL(in string) bool { + u, err := url.Parse(in) + return err == nil && u.IsAbs() +} + // shortcodes in strings are not supported atm // https://github.com/gohugoio/hugo/issues/6703 func parseSource(path string, dir string, filename string, rawSource bool) string { src := dir + filename - if paths.IsAbsURL(src) { + if isAbsURL(src) { return src } if imgIsInSameDir(path, filename) { @@ -289,7 +296,7 @@ func simpleReplaceContentInMarkdown(path string, finds []string, replace string) for _, find := range finds { err := ManipulateMarkdown(path, nil, func(content []byte, w io.Writer) error { strContent := string(content) - if strings.Index(strContent, find) > -1 { + if strings.Contains(strContent, find) { if replace == "" { fmt.Println("Blanking", colors.Labels.Unwanted(find), "in", path) } else { @@ -313,7 +320,7 @@ func replaceContentInMarkdown(path string, replacements []replacement) error { for _, replacement := range replacements { err := ManipulateMarkdown(path, nil, func(content []byte, w io.Writer) error { strContent := string(content) - if strings.Index(strContent, replacement.Find) > -1 { + if strings.Contains(strContent, replacement.Find) { if replacement.Replace == "" { fmt.Println("Blanking", colors.Labels.Unwanted(replacement.Find), "in", path) } else { @@ -401,15 +408,10 @@ func replaceTooltips(path string) error { func ensureCamelCase(input string) string { var snake = regexp.MustCompile("_([A-Za-z])") return snake.ReplaceAllStringFunc(input, func(s string) string { - return strings.ToUpper(strings.Replace(s, "_", "", -1)) + return strings.ToUpper(strings.ReplaceAll(s, "_", "")) }) } -func stripTooltips(strContent string) string { - var TooltipRe = regexp.MustCompile(`(?ms){{< tooltip "(.*?)" >}}`) - return TooltipRe.ReplaceAllString(strContent, "$1") -} - func parseIfStatements(strContent string) string { replacements := []replacement{} allMatches := IfVariablesRe.FindAllStringSubmatch(strContent, -1) diff --git a/pkg/domain/service/conversion/markdown/parse.go b/pkg/domain/service/conversion/markdown/parse.go index 21a67cb2..f2472356 100644 --- a/pkg/domain/service/conversion/markdown/parse.go +++ b/pkg/domain/service/conversion/markdown/parse.go @@ -2,7 +2,7 @@ package markdown import ( "github.com/SPANDigital/presidium-hugo/pkg/filesystem" - "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" ) type Markdown struct { diff --git a/pkg/domain/service/conversion/markdown/parse_test.go b/pkg/domain/service/conversion/markdown/parse_test.go index 37ff9397..0d86c90f 100644 --- a/pkg/domain/service/conversion/markdown/parse_test.go +++ b/pkg/domain/service/conversion/markdown/parse_test.go @@ -30,7 +30,7 @@ var _ = Describe("Parse", func() { filesystem.SetFileSystem(afero.NewMemMapFs()) BeforeEach(func() { - filesystem.AFS.Remove("test.md") + _ = filesystem.AFS.Remove("test.md") }) When("parsing markdown file", func() { diff --git a/pkg/domain/service/generator/generaror_test.go b/pkg/domain/service/generator/generaror_test.go index 956a12e1..f492e72a 100644 --- a/pkg/domain/service/generator/generaror_test.go +++ b/pkg/domain/service/generator/generaror_test.go @@ -8,12 +8,12 @@ import ( "strings" "testing" - "github.com/Masterminds/goutils" model "github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator" "github.com/SPANDigital/presidium-hugo/pkg/filesystem" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/spf13/afero" + "math/rand/v2" ) func TestGeneratorImpl(t *testing.T) { @@ -43,7 +43,9 @@ var _ = Describe("Site generation behaviour:", func() { AfterSuite(func() { _ = filesystem.AFS.RemoveAll(workDir) }) BeforeEach(func() { - g = New() + var newErr error + g, newErr = New() + Expect(newErr).ShouldNot(HaveOccurred()) t = model.InitialSiteTarget{ SiteTargetDirectory: filepath.Join(workDir, "testSite"), SiteName: "Test Site", @@ -67,7 +69,7 @@ var _ = Describe("Site generation behaviour:", func() { }) It("should overwrite the existing site if so configured.", func() { - pathId, _ := goutils.RandomNumeric(6) + pathId := fmt.Sprintf("%06d", rand.IntN(1000000)) up := func(s string) string { return strings.Replace(s, "*", pathId, 1) } // making a unique path here removablePats := mustMakeTree("will be removed", []string{ up("content-*/introduction/_index.md"), diff --git a/pkg/domain/service/generator/generator.go b/pkg/domain/service/generator/generator.go index b5003123..e885fbed 100644 --- a/pkg/domain/service/generator/generator.go +++ b/pkg/domain/service/generator/generator.go @@ -1,8 +1,8 @@ package generator import ( - "errors" "fmt" + model "github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/template" "github.com/SPANDigital/presidium-hugo/pkg/filesystem" @@ -13,11 +13,15 @@ type SiteGenerator interface { Run(target model.InitialSiteTarget) error } -func New() SiteGenerator { +func New() (SiteGenerator, error) { + tmplSvc, err := template.New() + if err != nil { + return nil, fmt.Errorf("initializing template service: %w", err) + } return &gen{ FsUtil: filesystem.New(), - Service: template.New(), - } + Service: tmplSvc, + }, nil } type gen struct { @@ -51,7 +55,7 @@ func (g gen) prepareSiteTarget(t model.InitialSiteTarget) error { } else { switch t.WhenSiteExists { case model.AbortWhenTargetSiteExists: - return errors.New(fmt.Sprintf("site already exists here: %s", t.SiteTargetDirectory)) + return fmt.Errorf("site already exists here: %s", t.SiteTargetDirectory) case model.ReplaceTargetSiteIfExists: if err := g.EmptyDir(t.SiteTargetDirectory); err != nil { return err diff --git a/pkg/domain/service/hugo/hugo.go b/pkg/domain/service/hugo/hugo.go index 69aedc1d..350bccf1 100644 --- a/pkg/domain/service/hugo/hugo.go +++ b/pkg/domain/service/hugo/hugo.go @@ -1,6 +1,14 @@ package hugo -import "github.com/gohugoio/hugo/commands" +import ( + "fmt" + "os" + + "github.com/SPANDigital/presidium-hugo/pkg/domain/service/themes" + "github.com/SPANDigital/presidium-hugo/pkg/filesystem" + "github.com/SPANDigital/presidium-hugo/pkg/log" + "github.com/gohugoio/hugo/commands" +) type Service struct { } @@ -9,6 +17,37 @@ func New() Service { return Service{} } -func (s Service) Execute(args ...string) { - commands.Execute(args) +func (s Service) Execute(args ...string) error { + // Initialize themes service + themesService, err := themes.New() + if err != nil { + log.Warn(fmt.Sprintf("Failed to initialize themes service, falling back to remote theme fetch: %v", err)) + return commands.Execute(args) + } + + // Extract embedded themes to temp directory + tmpDir, replacements, err := themesService.Extract() + if err != nil { + log.Warn(fmt.Sprintf("Failed to extract embedded themes, falling back to remote theme fetch: %v", err)) + return commands.Execute(args) + } + + // Capture the previous value (if any) so we can restore it after execution + prevReplacements, hadPrevReplacements := os.LookupEnv("HUGO_MODULE_REPLACEMENTS") + + // Ensure cleanup happens regardless of how Hugo execution ends + defer func() { + _ = filesystem.AFS.RemoveAll(tmpDir) + if hadPrevReplacements { + os.Setenv("HUGO_MODULE_REPLACEMENTS", prevReplacements) + } else { + os.Unsetenv("HUGO_MODULE_REPLACEMENTS") + } + }() + + // Set environment variable to point Hugo to local themes + os.Setenv("HUGO_MODULE_REPLACEMENTS", replacements) + + // Execute Hugo with local themes - return the error to preserve Hugo's exit behavior + return commands.Execute(args) } diff --git a/pkg/domain/service/hugo/hugo_test.go b/pkg/domain/service/hugo/hugo_test.go new file mode 100644 index 00000000..56e5cf9b --- /dev/null +++ b/pkg/domain/service/hugo/hugo_test.go @@ -0,0 +1,185 @@ +package hugo + +import ( + "os" + "reflect" + "testing" + "unsafe" + + "github.com/SPANDigital/presidium-hugo/pkg/domain/service/themes" +) + +func TestExecute_WithoutThemes(t *testing.T) { + // Save original themesFS + originalFS := themes.GetThemesFS() + defer func() { + if originalFS != nil { + themes.SetFS(originalFS) + } + }() + + // Set themes FS to nil to simulate no embedded themes + themes.SetFS(nil) + + svc := New() + + // Test with version command (should work even without themes) + err := svc.Execute("version") + + // We expect Hugo to execute, error or not depends on Hugo installation + // The test just ensures our code doesn't panic + _ = err // Hugo might return error if not in a Hugo project directory +} + +func TestExecute_CleansUpEnvironment(t *testing.T) { + // This test verifies that environment variables are cleaned up + // even if set during execution + + const envVarName = "HUGO_MODULE_REPLACEMENTS" + + // Save original env var if it exists + originalValue, hadOriginal := os.LookupEnv(envVarName) + defer func() { + if hadOriginal { + os.Setenv(envVarName, originalValue) + } else { + os.Unsetenv(envVarName) + } + }() + + svc := New() + + // Execute a command that will quickly fail (invalid command) + _ = svc.Execute("nonexistent-command-xyz") + + // Check that the environment variable was cleaned up or restored appropriately + value, exists := os.LookupEnv(envVarName) + if hadOriginal { + if !exists { + t.Errorf("HUGO_MODULE_REPLACEMENTS was not restored; expected it to exist with original value %q", originalValue) + } else if value != originalValue { + t.Errorf("HUGO_MODULE_REPLACEMENTS value was not restored; got %q, want %q", value, originalValue) + } + } else { + if exists { + t.Errorf("HUGO_MODULE_REPLACEMENTS was not cleaned up; expected it to be unset, got value: %q", value) + } + } +} + +func TestExecute_HandlesDifferentArguments(t *testing.T) { + tests := []struct { + name string + args []string + }{ + { + name: "no arguments", + args: []string{}, + }, + { + name: "help flag", + args: []string{"--help"}, + }, + { + name: "version command", + args: []string{"version"}, + }, + { + name: "multiple arguments", + args: []string{"--logLevel", "error", "version"}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + svc := New() + + // Execute the command - we don't check the error because + // Hugo might error for various valid reasons (not in a project, etc.) + // We're just ensuring our wrapper doesn't panic or fail unexpectedly + _ = svc.Execute(tt.args...) + }) + } +} + +func TestExecute_PropagatesErrors(t *testing.T) { + svc := New() + + // Execute with an intentionally invalid command + err := svc.Execute("this-is-not-a-real-hugo-command-12345") + + if err == nil { + // Hugo should return an error for an invalid command + // If it doesn't, that's okay - Hugo's behavior might vary + t.Log("Warning: Expected error from invalid Hugo command, but got nil") + } +} + +func TestService_IsZeroSized(t *testing.T) { + // Verify that Service struct has no fields (stateless) + if numFields := reflect.TypeOf(Service{}).NumField(); numFields != 0 { + t.Errorf("Service should be a zero-field struct, but has %d fields", numFields) + } + if size := unsafe.Sizeof(Service{}); size != 0 { + t.Errorf("Service should be zero-sized, but has size %d", size) + } +} + +// TestExecute_Integration is an integration test that requires a real Hugo project +// and embedded themes. It's skipped by default unless explicitly enabled. +func TestExecute_Integration(t *testing.T) { + if testing.Short() { + t.Skip("Skipping integration test in short mode") + } + + // Check if we're in a Hugo project directory + if _, err := os.Stat("config.yml"); os.IsNotExist(err) { + if _, err := os.Stat("config.yaml"); os.IsNotExist(err) { + if _, err := os.Stat("hugo.toml"); os.IsNotExist(err) { + t.Skip("Not in a Hugo project directory, skipping integration test") + } + } + } + + svc := New() + + // Try to run a simple Hugo command that should work in any Hugo project + err := svc.Execute("env") + + if err != nil { + t.Logf("Hugo env command returned error: %v (this may be expected)", err) + } +} + +// TestExecute_WithThemesExtraction tests the full flow with themes +// This is a more comprehensive test that verifies theme extraction works +func TestExecute_WithThemesExtraction(t *testing.T) { + if testing.Short() { + t.Skip("Skipping themes extraction test in short mode") + } + + // Check if themes directory exists (we're in the project root) + if _, err := os.Stat("themes"); os.IsNotExist(err) { + t.Skip("Themes directory not found, skipping themes extraction test") + } + + svc := New() + + // Execute version command - should work and use themes if available + err := svc.Execute("version") + + // Version command should always work + if err != nil { + t.Logf("Hugo version command error: %v", err) + } +} + +// BenchmarkExecute benchmarks the Execute function +func BenchmarkExecute(b *testing.B) { + svc := New() + + b.ResetTimer() + for i := 0; i < b.N; i++ { + _ = svc.Execute("version") + } +} diff --git a/pkg/domain/service/searchmapvalidation/searchmapvalidation.go b/pkg/domain/service/searchmapvalidation/searchmapvalidation.go index 00bbe5fa..2246b2de 100644 --- a/pkg/domain/service/searchmapvalidation/searchmapvalidation.go +++ b/pkg/domain/service/searchmapvalidation/searchmapvalidation.go @@ -65,7 +65,7 @@ func (v validation) FindUndeclaredFiles(projectDir string) (*validate.FilesRepor return &validate.FilesReport{ Files: missing, - Found: missing != nil && len(missing) > 0, + Found: len(missing) > 0, }, nil } diff --git a/pkg/domain/service/template/template.go b/pkg/domain/service/template/template.go index 8480a245..e842c7fd 100644 --- a/pkg/domain/service/template/template.go +++ b/pkg/domain/service/template/template.go @@ -2,53 +2,109 @@ package template import ( "bytes" - "github.com/Masterminds/sprig" - "github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator" - "github.com/SPANDigital/presidium-hugo/pkg/filesystem" - "github.com/gobuffalo/packd" - "github.com/gobuffalo/packr/v2" + "fmt" + "io/fs" "os" "path" "path/filepath" "strings" "text/template" + + "github.com/Masterminds/sprig/v3" + "github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator" + "github.com/SPANDigital/presidium-hugo/pkg/filesystem" ) +// templatesFS holds the embedded filesystem set from main via SetFS. +var templatesFS fs.FS + +// SetFS sets the embedded filesystem used to read templates. +func SetFS(fsys fs.FS) { + templatesFS = fsys +} + type Service struct { - templates packd.Box + templates fs.FS } -func New() Service { - box := packr.New("templatesBox", "../../../../templates") +func New() (Service, error) { + fsys := templatesFS + if fsys == nil { + // Fallback for tests: read templates from the module root filesystem. + root, err := findModuleRoot() + if err != nil { + return Service{}, fmt.Errorf("locating module root: %w", err) + } + fsys = os.DirFS(root) + } + // Sub-FS into "templates" so callers can use template names directly (e.g. "default"). + sub, err := fs.Sub(fsys, "templates") + if err != nil { + return Service{}, fmt.Errorf("templates directory not found: %w", err) + } return Service{ - templates: box, + templates: sub, + }, nil +} + +// findModuleRoot walks up from the working directory to find the module root. +func findModuleRoot() (string, error) { + dir, err := os.Getwd() + if err != nil { + return "", fmt.Errorf("unable to determine working directory: %w", err) + } + for { + if _, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil { + return dir, nil + } + parent := filepath.Dir(dir) + if parent == dir { + return ".", nil + } + dir = parent } } -// GetListing returns a list of files by a given template +// GetListing returns a list of files under a given template directory. func (s Service) GetListing(templateDir string) ([]string, error) { - listing := make([]string, 0) - return listing, s.templates.WalkPrefix(templateDir, func(templateName string, file packd.File) error { - listing = append(listing, templateName) + var listing []string + err := fs.WalkDir(s.templates, templateDir, func(p string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + if !d.IsDir() { + listing = append(listing, p) + } return nil }) + return listing, err } func (s Service) ProcessDirTemplates(templateDir string, outputDir string, model generator.TemplateParameters) error { - err := s.templates.WalkPrefix(templateDir, func(templateName string, file packd.File) error { - relativePath := strings.TrimPrefix(filepath.Dir(templateName), templateDir) + return fs.WalkDir(s.templates, templateDir, func(p string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + if d.IsDir() { + return nil + } + relativePath := strings.TrimPrefix(filepath.Dir(p), templateDir) outputPath := path.Join(outputDir, relativePath) - return s.ProcessTemplate(outputPath, templateName, model) + return s.ProcessTemplate(outputPath, p, model) }) - return err } func (s Service) ProcessTemplate(dir, theTemplate string, model generator.TemplateParameters) error { filename := filepath.Base(theTemplate) - templateString, err := s.templates.FindString(theTemplate) + // Strip .tmpl suffix so e.g. "go.mod.tmpl" becomes "go.mod" + filename = strings.TrimSuffix(filename, ".tmpl") + + data, err := fs.ReadFile(s.templates, theTemplate) if err != nil { return err } + templateString := string(data) + finalPath := path.Join(dir, filename) err = filesystem.AFS.MkdirAll(dir, os.ModePerm) if err != nil { diff --git a/pkg/domain/service/template/template_test.go b/pkg/domain/service/template/template_test.go new file mode 100644 index 00000000..a1f47386 --- /dev/null +++ b/pkg/domain/service/template/template_test.go @@ -0,0 +1,25 @@ +package template + +import ( + "testing" + + model "github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator" +) + +func TestNew_CanLocateTemplates(t *testing.T) { + svc, err := New() + if err != nil { + t.Fatalf("New() returned error: %v", err) + } + + for _, tmpl := range model.SupportedTemplates { + listing, err := svc.GetListing(tmpl.Code()) + if err != nil { + t.Errorf("GetListing(%q) returned error: %v", tmpl.Code(), err) + continue + } + if len(listing) == 0 { + t.Errorf("GetListing(%q) returned no files", tmpl.Code()) + } + } +} diff --git a/pkg/domain/service/themes/themes.go b/pkg/domain/service/themes/themes.go new file mode 100644 index 00000000..cf2e0604 --- /dev/null +++ b/pkg/domain/service/themes/themes.go @@ -0,0 +1,161 @@ +package themes + +import ( + "fmt" + "io/fs" + "os" + "path/filepath" + "sort" + "strings" + + "github.com/SPANDigital/presidium-hugo/pkg/filesystem" +) + +// themesFS holds the embedded filesystem set from main via SetFS. +var themesFS fs.FS + +// SetFS sets the embedded filesystem used to read themes. +func SetFS(fsys fs.FS) { + themesFS = fsys +} + +// GetThemesFS returns the current themes filesystem (useful for testing). +func GetThemesFS() fs.FS { + return themesFS +} + +// moduleMap maps Hugo module paths to their corresponding theme directory names. +var moduleMap = map[string]string{ + "github.com/spandigital/presidium-styling-base": "presidium-styling-base", + "github.com/spandigital/presidium-layouts-base": "presidium-layouts-base", + "github.com/spandigital/presidium-layouts-blog": "presidium-layouts-blog", +} + +type Service struct { + themes fs.FS +} + +func New() (Service, error) { + fsys := themesFS + if fsys == nil { + // Fallback for tests: read themes from the module root filesystem. + root, err := findModuleRoot() + if err != nil { + return Service{}, fmt.Errorf("locating module root: %w", err) + } + fsys = os.DirFS(root) + } + // Sub-FS into "themes" so callers can use theme names directly. + sub, err := fs.Sub(fsys, "themes") + if err != nil { + return Service{}, fmt.Errorf("themes directory not found: %w", err) + } + return Service{ + themes: sub, + }, nil +} + +// findModuleRoot walks up from the working directory to find the module root. +func findModuleRoot() (string, error) { + dir, err := os.Getwd() + if err != nil { + return "", fmt.Errorf("unable to determine working directory: %w", err) + } + startDir := dir + for { + if _, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil { + return dir, nil + } + parent := filepath.Dir(dir) + if parent == dir { + return "", fmt.Errorf("no go.mod found when searching upwards from %s", startDir) + } + dir = parent + } +} + +// Extract extracts all embedded themes to a temporary directory and returns: +// - tmpDir: the temporary directory path (caller must clean up) +// - replacements: comma-separated string for HUGO_MODULE_REPLACEMENTS env var +// - err: any error encountered during extraction +func (s Service) Extract() (tmpDir string, replacements string, err error) { + // Create a temporary directory for themes + tmpDir, err = filesystem.AFS.TempDir("", "presidium-themes-*") + if err != nil { + return "", "", fmt.Errorf("creating temp directory: %w", err) + } + + // Extract each theme (sorted for deterministic output) + modulePaths := make([]string, 0, len(moduleMap)) + for modulePath := range moduleMap { + modulePaths = append(modulePaths, modulePath) + } + sort.Strings(modulePaths) + + var replacementPairs []string + for _, modulePath := range modulePaths { + themeName := moduleMap[modulePath] + // Create the theme directory in temp + themeDir := filepath.Join(tmpDir, themeName) + if err := filesystem.AFS.MkdirAll(themeDir, 0755); err != nil { + _ = filesystem.AFS.RemoveAll(tmpDir) + return "", "", fmt.Errorf("creating theme directory %s: %w", themeName, err) + } + + // Copy theme files from embedded FS to temp directory + err := fs.WalkDir(s.themes, themeName, func(p string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + + // Calculate destination path + destPath := filepath.Join(tmpDir, p) + + if d.IsDir() { + return filesystem.AFS.MkdirAll(destPath, 0755) + } + + // Read file from embedded FS + content, err := fs.ReadFile(s.themes, p) + if err != nil { + return fmt.Errorf("reading %s: %w", p, err) + } + + // Handle go.mod.tmpl -> go.mod and go.sum.tmpl -> go.sum renaming + if strings.HasSuffix(destPath, "go.mod.tmpl") || strings.HasSuffix(destPath, "go.sum.tmpl") { + destPath = strings.TrimSuffix(destPath, ".tmpl") + } + + // Ensure parent directory exists + if err := filesystem.AFS.MkdirAll(filepath.Dir(destPath), 0755); err != nil { + return fmt.Errorf("creating directory for %s: %w", destPath, err) + } + + // Write file to temp directory + f, err := filesystem.AFS.Create(destPath) + if err != nil { + return fmt.Errorf("creating file %s: %w", destPath, err) + } + defer f.Close() + + if _, err := f.Write(content); err != nil { + return fmt.Errorf("writing %s: %w", destPath, err) + } + + return nil + }) + + if err != nil { + _ = filesystem.AFS.RemoveAll(tmpDir) + return "", "", fmt.Errorf("extracting theme %s: %w", themeName, err) + } + + // Add to replacements: "modulePath -> localPath" + replacementPairs = append(replacementPairs, fmt.Sprintf("%s -> %s", modulePath, themeDir)) + } + + // Join all replacements with commas for HUGO_MODULE_REPLACEMENTS + replacements = strings.Join(replacementPairs, ",") + + return tmpDir, replacements, nil +} diff --git a/pkg/domain/service/themes/themes_test.go b/pkg/domain/service/themes/themes_test.go new file mode 100644 index 00000000..4dd0b65f --- /dev/null +++ b/pkg/domain/service/themes/themes_test.go @@ -0,0 +1,188 @@ +package themes + +import ( + "os" + "path/filepath" + "strings" + "testing" + "testing/fstest" + + "github.com/SPANDigital/presidium-hugo/pkg/filesystem" +) + +func TestNew_WithEmbeddedFS(t *testing.T) { + // Create a mock embedded FS with a themes directory + mockFS := fstest.MapFS{ + "themes/presidium-styling-base/config.yml": &fstest.MapFile{Data: []byte("name: test")}, + } + SetFS(mockFS) + defer SetFS(nil) + + svc, err := New() + if err != nil { + t.Fatalf("New() returned unexpected error: %v", err) + } + if svc.themes == nil { + t.Fatal("New() returned service with nil themes FS") + } +} + +func TestNew_WithNilFS_NoModuleRoot(t *testing.T) { + // Ensure themesFS is nil + originalFS := GetThemesFS() + SetFS(nil) + defer func() { + if originalFS != nil { + SetFS(originalFS) + } + }() + + // Change to a temp dir with no go.mod above it + origDir, _ := os.Getwd() + tmpDir := t.TempDir() + if err := os.Chdir(tmpDir); err != nil { + t.Fatal(err) + } + defer func() { _ = os.Chdir(origDir) }() + + _, err := New() + if err == nil { + t.Fatal("New() should return error when no go.mod found and no embedded FS") + } + if !strings.Contains(err.Error(), "no go.mod found") { + t.Errorf("expected 'no go.mod found' error, got: %v", err) + } +} + +func TestExtract_WritesFilesAndProducesReplacements(t *testing.T) { + // Create a mock FS with theme files including go.mod.tmpl and go.sum.tmpl + mockFS := fstest.MapFS{ + "presidium-styling-base/config.yml": &fstest.MapFile{Data: []byte("name: styling")}, + "presidium-styling-base/go.mod.tmpl": &fstest.MapFile{Data: []byte("module github.com/spandigital/presidium-styling-base")}, + "presidium-styling-base/go.sum.tmpl": &fstest.MapFile{Data: []byte("some-dep v1.0.0 h1:abc=")}, + "presidium-layouts-base/config.yml": &fstest.MapFile{Data: []byte("name: layouts-base")}, + "presidium-layouts-base/go.mod.tmpl": &fstest.MapFile{Data: []byte("module github.com/spandigital/presidium-layouts-base")}, + "presidium-layouts-blog/config.yml": &fstest.MapFile{Data: []byte("name: layouts-blog")}, + "presidium-layouts-blog/go.mod.tmpl": &fstest.MapFile{Data: []byte("module github.com/spandigital/presidium-layouts-blog")}, + } + + svc := Service{themes: mockFS} + + tmpDir, replacements, err := svc.Extract() + if err != nil { + t.Fatalf("Extract() returned unexpected error: %v", err) + } + defer func() { _ = filesystem.AFS.RemoveAll(tmpDir) }() + + // Verify go.mod.tmpl was renamed to go.mod on disk + goModPath := filepath.Join(tmpDir, "presidium-styling-base", "go.mod") + if exists, _ := filesystem.AFS.Exists(goModPath); !exists { + t.Error("Expected go.mod.tmpl to be extracted as go.mod, but file does not exist") + } + + // Verify go.sum.tmpl was renamed to go.sum on disk + goSumPath := filepath.Join(tmpDir, "presidium-styling-base", "go.sum") + if exists, _ := filesystem.AFS.Exists(goSumPath); !exists { + t.Error("Expected go.sum.tmpl to be extracted as go.sum, but file does not exist") + } + + // Verify config.yml was extracted + configPath := filepath.Join(tmpDir, "presidium-styling-base", "config.yml") + if exists, _ := filesystem.AFS.Exists(configPath); !exists { + t.Error("Expected config.yml to be extracted, but file does not exist") + } + + // Verify replacements string contains all three modules + for _, mod := range []string{ + "github.com/spandigital/presidium-styling-base", + "github.com/spandigital/presidium-layouts-base", + "github.com/spandigital/presidium-layouts-blog", + } { + if !strings.Contains(replacements, mod) { + t.Errorf("Expected replacements to contain %q, got: %s", mod, replacements) + } + } + + // Verify replacements are in sorted order (deterministic) + parts := strings.Split(replacements, ",") + if len(parts) != 3 { + t.Fatalf("Expected 3 replacement pairs, got %d: %s", len(parts), replacements) + } + for i := 1; i < len(parts); i++ { + if parts[i-1] > parts[i] { + t.Errorf("Replacement pairs are not sorted: %q > %q", parts[i-1], parts[i]) + } + } +} + +func TestExtract_EmptyTheme(t *testing.T) { + // Test with a theme that has no files (just a directory entry) + mockFS := fstest.MapFS{ + "presidium-styling-base/config.yml": &fstest.MapFile{Data: []byte("name: test")}, + "presidium-layouts-base/config.yml": &fstest.MapFile{Data: []byte("name: test")}, + "presidium-layouts-blog/config.yml": &fstest.MapFile{Data: []byte("name: test")}, + } + + svc := Service{themes: mockFS} + + tmpDir, replacements, err := svc.Extract() + if err != nil { + t.Fatalf("Extract() returned unexpected error: %v", err) + } + defer func() { _ = filesystem.AFS.RemoveAll(tmpDir) }() + + if replacements == "" { + t.Error("Expected non-empty replacements string") + } +} + +func TestFindModuleRoot(t *testing.T) { + // Save and restore working directory + origDir, _ := os.Getwd() + defer func() { _ = os.Chdir(origDir) }() + + // Create a temp directory structure with go.mod + tmpDir := t.TempDir() + subDir := filepath.Join(tmpDir, "a", "b", "c") + if err := os.MkdirAll(subDir, 0755); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(filepath.Join(tmpDir, "go.mod"), []byte("module test"), 0644); err != nil { + t.Fatal(err) + } + + // Change to the deeply nested directory + if err := os.Chdir(subDir); err != nil { + t.Fatal(err) + } + + root, err := findModuleRoot() + if err != nil { + t.Fatalf("findModuleRoot() returned unexpected error: %v", err) + } + // Resolve symlinks for comparison (macOS /var -> /private/var) + wantResolved, _ := filepath.EvalSymlinks(tmpDir) + gotResolved, _ := filepath.EvalSymlinks(root) + if gotResolved != wantResolved { + t.Errorf("findModuleRoot() = %q, want %q", gotResolved, wantResolved) + } +} + +func TestFindModuleRoot_NotFound(t *testing.T) { + origDir, _ := os.Getwd() + defer func() { _ = os.Chdir(origDir) }() + + // Use a temp directory with no go.mod anywhere above + tmpDir := t.TempDir() + if err := os.Chdir(tmpDir); err != nil { + t.Fatal(err) + } + + _, err := findModuleRoot() + if err == nil { + t.Fatal("findModuleRoot() should return error when no go.mod found") + } + if !strings.Contains(err.Error(), "no go.mod found") { + t.Errorf("expected 'no go.mod found' error, got: %v", err) + } +} diff --git a/pkg/domain/service/validate/impl.go b/pkg/domain/service/validate/impl.go index 022ade37..fb5642b8 100644 --- a/pkg/domain/service/validate/impl.go +++ b/pkg/domain/service/validate/impl.go @@ -2,7 +2,6 @@ package validate import ( "container/list" - "errors" "fmt" "io/fs" "net/url" @@ -48,14 +47,6 @@ func (v validation) hasSeen(f string) bool { return seen } -func (v validation) cleanUp() { - v.seen.Clear() - for k, val := range v.tracked { - val.Init() - delete(v.tracked, k) - } -} - func (v validation) Validate() (model.Report, error) { v.seen.Clear() @@ -78,9 +69,8 @@ func (v validation) Validate() (model.Report, error) { if err != nil { return model.Report{}, err - } else { - return v.newReport(), err } + return v.newReport(), nil } func (v validation) newReport() model.Report { @@ -110,16 +100,12 @@ func (v validation) newReport() model.Report { switch s { case model.Valid: report.Valid = countedLinks - break case model.Broken: report.Broken = countedLinks - break case model.Warning: report.Warning = countedLinks - break case model.External: report.External = countedLinks - break } } @@ -142,11 +128,7 @@ func (v validation) process(path string) error { IsExternal: false, }) - for { - if v.queue.Len() == 0 { - break - } - + for v.queue.Len() > 0 { todo := v.queue.Front() v.queue.Remove(todo) link := todo.Value.(model.Link) @@ -200,8 +182,7 @@ func (v validation) process(path string) error { continue } - var doc *goquery.Document - doc, err = goquery.NewDocumentFromReader(file) + doc, err := goquery.NewDocumentFromReader(file) if err != nil { v.reportLink(link, model.Broken, fmt.Sprintf("file %s is propably not a valid HTML file: %s", link.Uri, err.Error())) } else { @@ -228,9 +209,9 @@ func (v validation) process(path string) error { return } - parsedLinkUrl, err := url.Parse(href) - if err != nil { - link.Message = fmt.Sprintf("%v", err.Error()) + parsedLinkUrl, parseErr := url.Parse(href) + if parseErr != nil { + link.Message = parseErr.Error() return } @@ -257,7 +238,7 @@ func (v validation) process(path string) error { func (v validation) validateAnchor(doc *goquery.Document, link model.Link, anchor string) { link.Uri = strings.Replace(link.Uri, "index.html", anchor, 1) - anchor = strings.Replace(anchor, ".", "\\.", -1) + anchor = strings.ReplaceAll(anchor, ".", "\\.") if len(doc.Find(anchor).Nodes) == 0 { v.reportLink(link, model.Broken, "broken anchor reference") return @@ -287,24 +268,12 @@ func (v validation) validateRemoteAnchor(link model.Link) error { defer file.Close() - doc, err := goquery.NewDocumentFromReader(file) + doc, _ := goquery.NewDocumentFromReader(file) v.validateAnchor(doc, link, anchor) return nil } -func fileOnPath(path string, name string) (string, error) { - file := fmt.Sprintf("%s/%s", path, name) - info, err := filesystem.AFS.Stat(file) - if err != nil { - return file, err - } - if info.IsDir() { - return file, errors.New(fmt.Sprintf("expected file but found directory: %s", file)) - } - return file, nil -} - func (v validation) reportLink(link model.Link, status model.Status, message string) { link.Status = status diff --git a/pkg/domain/service/validation/validation.go b/pkg/domain/service/validation/validation.go index 36938306..cef17f20 100644 --- a/pkg/domain/service/validation/validation.go +++ b/pkg/domain/service/validation/validation.go @@ -2,16 +2,16 @@ package validation import ( "container/list" - "errors" "fmt" + "io/fs" + "net/url" + "os" + "strings" + "github.com/PuerkitoBio/goquery" "github.com/SPANDigital/presidium-hugo/pkg/filesystem" "github.com/SPANDigital/presidium-hugo/pkg/log" "github.com/scylladb/go-set/strset" - "io/fs" - "net/url" - "os" - strings "strings" ) type LinkListener = func(link Link) @@ -56,8 +56,8 @@ type validation struct { tracked map[Status]*list.List // Keep track of collected links per status } -func (validation validation) IsLocal() bool { - return validation.isLocal +func (v validation) IsLocal() bool { + return v.isLocal } func New(path string) Validator { @@ -70,26 +70,18 @@ func New(path string) Validator { } } -func (validation validation) hasSeen(f string) bool { - seen := validation.seen.Has(f) +func (v validation) hasSeen(f string) bool { + seen := v.seen.Has(f) if !seen { - validation.seen.Add(f) + v.seen.Add(f) } return seen } -func (validation validation) cleanUp() { - validation.seen.Clear() - for k, v := range validation.tracked { - v.Init() - delete(validation.tracked, k) - } -} - -func (validation validation) Validate() (Report, error) { - validation.seen.Clear() +func (v validation) Validate() (Report, error) { + v.seen.Clear() - err := filesystem.AFS.Walk(validation.path, func(path string, info fs.FileInfo, err error) error { + err := filesystem.AFS.Walk(v.path, func(path string, info fs.FileInfo, err error) error { if err != nil { log.ErrorWithFields(err, log.Fields{"validation_path": path}) @@ -98,7 +90,7 @@ func (validation validation) Validate() (Report, error) { if !info.IsDir() { log.DebugWithFields("validation started", log.Fields{"validation_path": path}) - err = validation.process(path) + err = v.process(path) if err != nil { log.ErrorWithFields(err, log.Fields{"validation_path": path}) return err @@ -110,13 +102,11 @@ func (validation validation) Validate() (Report, error) { if err != nil { return Report{}, err - } else { - return validation.newReport(), err } - + return v.newReport(), nil } -func (validation validation) newReport() Report { +func (v validation) newReport() Report { report := Report{ Data: make(map[Status][]Link), @@ -127,7 +117,7 @@ func (validation validation) newReport() Report { TotalLinks: 0, } - for s, links := range validation.tracked { + for s, links := range v.tracked { countedLinks := links.Len() report.TotalLinks += countedLinks @@ -145,27 +135,23 @@ func (validation validation) newReport() Report { switch s { case Valid: report.Valid = countedLinks - break case Broken: report.Broken = countedLinks - break case Warning: report.Warning = countedLinks - break case External: report.External = countedLinks - break } } return report } -func (validation validation) process(path string) error { +func (v validation) process(path string) error { s := strings.TrimSpace(strings.ToLower(path)) - if validation.hasSeen(s) { + if v.hasSeen(s) { return nil } @@ -173,23 +159,19 @@ func (validation validation) process(path string) error { return nil } - validation.queue.PushFront(Link{ + v.queue.PushFront(Link{ Uri: path, Location: path, IsExternal: false, }) - for { + for v.queue.Len() > 0 { - if validation.queue.Len() == 0 { - break - } - - todo := validation.queue.Front() - validation.queue.Remove(todo) + todo := v.queue.Front() + v.queue.Remove(todo) link := todo.Value.(Link) - if validation.hasSeen(link.Uri) { + if v.hasSeen(link.Uri) { continue } @@ -198,7 +180,7 @@ func (validation validation) process(path string) error { } if link.IsExternal { - validation.reportLink(link, External, "") + v.reportLink(link, External, "") continue } @@ -225,16 +207,15 @@ func (validation validation) process(path string) error { file, err := filesystem.AFS.OpenFile(link.Uri, os.O_RDONLY, 0666) if err != nil { - validation.reportLink(link, Broken, fmt.Sprintf("Unable to open file %s: %s", link.Uri, err.Error())) + v.reportLink(link, Broken, fmt.Sprintf("Unable to open file %s: %s", link.Uri, err.Error())) continue } - var doc *goquery.Document - doc, err = goquery.NewDocumentFromReader(file) + doc, err := goquery.NewDocumentFromReader(file) if err != nil { - validation.reportLink(link, Broken, fmt.Sprintf("file %s is propably not a valid HTML file: %s", link.Uri, err.Error())) + v.reportLink(link, Broken, fmt.Sprintf("file %s is propably not a valid HTML file: %s", link.Uri, err.Error())) } else { - validation.reportLink(link, Valid, "") + v.reportLink(link, Valid, "") // Find all links referenced by this page! doc.Find("a[href]").Each(func(i int, item *goquery.Selection) { href, ok := item.Attr("href") @@ -245,25 +226,25 @@ func (validation validation) process(path string) error { validationHref = strings.TrimSpace(validationHref) if strings.HasPrefix(validationHref, "mailto:") || strings.HasPrefix(validationHref, "tel:") { - validation.reportLink(link, Warning, fmt.Sprintf("Unhandled url scheme: %s", href)) + v.reportLink(link, Warning, fmt.Sprintf("Unhandled url scheme: %s", href)) } else if strings.Contains(validationHref, "#") { return } - parsedLinkUrl, err := url.Parse(href) + parsedLinkUrl, parseErr := url.Parse(href) - if err != nil { - link.Message = fmt.Sprintf("%v", err.Error()) + if parseErr != nil { + link.Message = parseErr.Error() return } link.IsExternal = len(parsedLinkUrl.Scheme) > 0 - finalUri := fmt.Sprintf("%s%s", validation.path, href) + finalUri := fmt.Sprintf("%s%s", v.path, href) - validation.reportLink(link, Valid, "") + v.reportLink(link, Valid, "") - validation.queue.PushFront(Link{ + v.queue.PushFront(Link{ Uri: finalUri, Location: link.Uri, Label: strings.TrimSpace(item.Text()), @@ -278,28 +259,16 @@ func (validation validation) process(path string) error { return nil } -func fileOnPath(path string, name string) (string, error) { - file := fmt.Sprintf("%s/%s", path, name) - info, err := filesystem.AFS.Stat(file) - if err != nil { - return file, err - } - if info.IsDir() { - return file, errors.New(fmt.Sprintf("expected file but foun directory: %s", file)) - } - return file, nil -} - -func (validation validation) reportLink(link Link, status Status, message string) { +func (v validation) reportLink(link Link, status Status, message string) { link.Status = status link.Message = message - collection, found := validation.tracked[status] + collection, found := v.tracked[status] if !found { collection = list.New() - validation.tracked[status] = collection + v.tracked[status] = collection } collection.PushBack(link) diff --git a/pkg/domain/versioning/versioning.go b/pkg/domain/versioning/versioning.go index 215c77a2..bf5a4dac 100644 --- a/pkg/domain/versioning/versioning.go +++ b/pkg/domain/versioning/versioning.go @@ -27,7 +27,6 @@ Workflow is the following: 5. If the user wants to go back he can either reclaim the last version before the update, or restore a previous 1st, 2nd, 3rd, or 4th version - */ type Versioning interface { IsEnabled() bool // check if the versioning has been enabled or not @@ -127,8 +126,8 @@ func (v *versioning) persist() { panic(err) } defer file.Close() - _, _ = file.WriteString(fmt.Sprintf("%s\n", strconv.FormatBool(v.enabled))) - _, _ = file.WriteString(fmt.Sprintf("%d\n", v.versionNo)) + _, _ = fmt.Fprintf(file, "%s\n", strconv.FormatBool(v.enabled)) + _, _ = fmt.Fprintf(file, "%d\n", v.versionNo) _ = file.Sync() } @@ -153,12 +152,10 @@ func (v *versioning) load() { if b, err := strconv.ParseBool(scanner.Text()); err == nil { v.enabled = b } - break case 1: if i, err := strconv.ParseInt(scanner.Text(), 10, 16); err == nil { v.versionNo = int(i) } - break } } } diff --git a/pkg/domain/wizard/initwzd/impl.go b/pkg/domain/wizard/initwzd/impl.go index 3981411a..2e45a076 100644 --- a/pkg/domain/wizard/initwzd/impl.go +++ b/pkg/domain/wizard/initwzd/impl.go @@ -4,7 +4,7 @@ import ( "strings" "github.com/SPANDigital/presidium-hugo/pkg/config" - . "github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator" + model "github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator" "github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator" "github.com/SPANDigital/presidium-hugo/pkg/domain/wizard" "github.com/SPANDigital/presidium-hugo/pkg/log" @@ -42,7 +42,11 @@ func (i initWizard) Run() { return } - g := generator.New() + g, err := generator.New() + if err != nil { + log.Error(err) + return + } siteModel := generateSiteModel() err = g.Run(siteModel) @@ -52,11 +56,11 @@ func (i initWizard) Run() { } -func generateSiteModel() InitialSiteTarget { +func generateSiteModel() model.InitialSiteTarget { - mustHaveTemplate := func() Template { + mustHaveTemplate := func() model.Template { templateName := viper.GetString(config.TemplateNameKey) - template, err := GetTemplate(templateName) + template, err := model.GetTemplate(templateName) if err != nil { log.FatalWithFields(err, log.Fields{ "template_name": templateName, @@ -65,13 +69,13 @@ func generateSiteModel() InitialSiteTarget { return template } - return InitialSiteTarget{ + return model.InitialSiteTarget{ SiteTargetDirectory: viper.GetString(config.ProjectNameKey), SiteName: viper.GetString(config.ProjectNameKey), SiteTitle: viper.GetString(config.TitleKey), BrandingModelUrl: viper.GetString(config.BrandKey), Template: mustHaveTemplate(), - WhenSiteExists: AbortWhenTargetSiteExists, + WhenSiteExists: model.AbortWhenTargetSiteExists, } } @@ -127,9 +131,9 @@ func askBrandRepo() error { } func promptSupportedTemplates() { - items := make([]ItemSelection, 0) - for _, item := range SupportedTemplates { - items = append(items, ItemSelection{ + items := make([]model.ItemSelection, 0) + for _, item := range model.SupportedTemplates { + items = append(items, model.ItemSelection{ Name: item.Name(), Description: item.Description(), }) @@ -144,6 +148,6 @@ func promptSupportedTemplates() { if err != nil { log.FatalWithFields("error selecting template", log.Fields{"error": err}) } - selected := SupportedTemplates[idx] + selected := model.SupportedTemplates[idx] viper.Set(config.TemplateNameKey, selected.Code()) } diff --git a/pkg/filesystem/fsutil.go b/pkg/filesystem/fsutil.go index e4649390..8414c1f5 100644 --- a/pkg/filesystem/fsutil.go +++ b/pkg/filesystem/fsutil.go @@ -1,7 +1,6 @@ package filesystem import ( - "errors" "fmt" "github.com/otiai10/copy" "github.com/spf13/afero" @@ -107,7 +106,7 @@ func (f fsUtil) EmptyDir(dir string) error { } if !info.IsDir() { - return errors.New(fmt.Sprintf("path is not a directory: %s", dir)) + return fmt.Errorf("path is not a directory: %s", dir) } parentDirs, err := FS.Open(dir) diff --git a/pkg/filesystem/fsutil_test.go b/pkg/filesystem/fsutil_test.go index 25ccc7d5..cf4a5ac4 100644 --- a/pkg/filesystem/fsutil_test.go +++ b/pkg/filesystem/fsutil_test.go @@ -33,8 +33,8 @@ var _ = Describe("Filesystem", func() { dstFileName := "testfile.md" testDir := "/home/testuser/testdata/copy/test" BeforeEach(func() { - FS.MkdirAll(testDir, 0755) - AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, srcFileName), []byte("Hello World!"), 0644) + _ = FS.MkdirAll(testDir, 0755) + _ = AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, srcFileName), []byte("Hello World!"), 0644) }) AfterEach(func() { // no need to clean up - memory mapped filesystem will just go away @@ -68,10 +68,10 @@ var _ = Describe("Filesystem", func() { testDir := "/home/testuser/testdata/copydir/test" file1, file2, file3 := "file1.md", "file2.md", "file3.md" BeforeEach(func() { - FS.MkdirAll(testDir, 0755) - AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, file1), []byte("Hello World!"), 0644) - AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, file2), []byte("Hello World!"), 0644) - AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, file3), []byte("Hello World!"), 0644) + _ = FS.MkdirAll(testDir, 0755) + _ = AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, file1), []byte("Hello World!"), 0644) + _ = AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, file2), []byte("Hello World!"), 0644) + _ = AFS.WriteFile(fmt.Sprintf("%s/%s", testDir, file3), []byte("Hello World!"), 0644) }) AfterEach(func() { // no need to clean up - memory mapped filesystem will just go away diff --git a/pkg/utils/fs.go b/pkg/utils/fs.go index 9c398d6a..db0d1f05 100644 --- a/pkg/utils/fs.go +++ b/pkg/utils/fs.go @@ -21,10 +21,10 @@ func WalkRename(path string, rename func(path string, info os.FileInfo) (*string } var renames []Rename - err := filesystem.AFS.Walk(path, func(path string, info os.FileInfo, err error) error { - newPath, err := rename(path, info) - if err != nil { - return err + err := filesystem.AFS.Walk(path, func(path string, info os.FileInfo, _ error) error { + newPath, renameErr := rename(path, info) + if renameErr != nil { + return renameErr } if newPath != nil { diff --git a/pkg/utils/slug.go b/pkg/utils/slug.go index 82008564..3bbb85eb 100644 --- a/pkg/utils/slug.go +++ b/pkg/utils/slug.go @@ -3,6 +3,9 @@ package utils import ( "regexp" "strings" + + "golang.org/x/text/cases" + "golang.org/x/text/language" ) // UnSlugify turns "something-like_this" into "Something Like This" @@ -10,7 +13,7 @@ func UnSlugify(name string) string { re := regexp.MustCompile(`(([\d.]+)\s)?(.+)?`) reDividers := regexp.MustCompile(`[\-_]+`) name = reDividers.ReplaceAllString(name, " ") - name = strings.Title(name) + name = cases.Title(language.English).String(name) matches := re.FindStringSubmatch(name) if matches != nil { return strings.TrimSpace(matches[3]) @@ -29,7 +32,7 @@ func Slugify(name string) string { // TitleToSlug Take a capitalized title and turn it into a slug func TitleToSlug(title string) string { title = strings.ToLower(title) - title = strings.Replace(title, "&", "and", -1) + title = strings.ReplaceAll(title, "&", "and") title = Slugify(title) return title } diff --git a/docs/.hugo_build.lock b/reports/.gitkeep similarity index 100% rename from docs/.hugo_build.lock rename to reports/.gitkeep diff --git a/reports/tests-cov.out b/reports/tests-cov.out deleted file mode 100644 index e1fba6c5..00000000 --- a/reports/tests-cov.out +++ /dev/null @@ -1,1113 +0,0 @@ -mode: set -github.com/SPANDigital/presidium-hugo/main.go:7.13,9.2 1 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:19.47,30.17 7 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:30.17,32.4 1 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:36.13,41.16 4 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:41.16,43.3 1 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:43.8,45.17 2 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:45.17,47.4 1 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:47.9,49.4 1 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:52.2,53.16 2 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:53.16,55.3 1 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:56.2,91.16 34 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:91.16,93.3 1 0 -github.com/SPANDigital/presidium-hugo/cmd/convert.go:95.2,96.26 2 0 -github.com/SPANDigital/presidium-hugo/cmd/hugo.go:14.48,17.4 2 0 -github.com/SPANDigital/presidium-hugo/cmd/hugo.go:21.13,23.2 1 0 -github.com/SPANDigital/presidium-hugo/cmd/init.go:12.48,15.4 2 0 -github.com/SPANDigital/presidium-hugo/cmd/init.go:19.13,21.2 1 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:20.48,22.29 2 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:22.29,24.19 2 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:24.19,26.6 1 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:27.5,27.36 1 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:30.4,31.18 2 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:31.18,35.5 3 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:37.4,49.44 12 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:54.72,58.12 2 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:58.12,60.3 1 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:62.2,65.29 3 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:65.29,67.28 2 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:67.28,69.4 1 0 -github.com/SPANDigital/presidium-hugo/cmd/pagelinks.go:71.3,74.167 3 0 -github.com/SPANDigital/presidium-hugo/cmd/report.go:12.13,16.2 3 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:27.16,28.42 1 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:28.42,31.3 2 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:34.13,39.2 4 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:42.19,43.19 1 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:43.19,46.3 1 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:46.8,51.3 3 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:53.2,57.45 3 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:57.45,61.3 1 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:63.2,63.36 1 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:63.36,65.3 1 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:65.8,67.25 2 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:67.25,69.4 1 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:69.9,71.18 2 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:71.18,74.5 2 0 -github.com/SPANDigital/presidium-hugo/cmd/root.go:74.10,76.5 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:25.48,28.21 2 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:28.21,30.5 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:32.4,33.18 2 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:33.18,35.5 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:37.4,41.18 3 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:41.18,43.5 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:45.4,45.29 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:45.29,49.63 4 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:49.63,51.6 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:52.5,52.27 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:52.27,54.6 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:55.5,55.29 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:56.10,58.5 1 0 -github.com/SPANDigital/presidium-hugo/cmd/searchmap.go:63.13,66.2 2 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:8.13,10.2 1 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:12.38,17.48 2 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:17.48,18.16 1 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:18.16,20.23 2 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:20.23,22.6 1 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:26.2,28.12 3 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:32.50,36.48 1 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:36.48,39.4 2 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:44.41,48.48 1 0 -github.com/SPANDigital/presidium-hugo/cmd/versioning.go:48.48,51.4 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:44.73,46.47 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:46.47,52.31 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:52.31,53.59 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:53.59,56.30 3 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:56.30,57.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:57.35,58.37 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:58.37,59.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:59.27,61.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:61.14,61.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:61.35,63.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:63.14,63.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:63.35,65.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:65.14,67.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:73.3,74.14 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:77.2,77.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:79.63,81.62 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:81.62,87.30 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:87.30,90.35 3 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:90.35,91.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:91.35,92.28 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:92.28,94.7 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:94.12,94.34 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:94.34,96.7 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:96.12,96.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:96.35,98.7 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:98.12,100.7 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:104.3,105.14 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:108.2,108.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:111.45,113.51 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:113.51,115.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:117.2,117.41 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:117.41,119.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:121.2,121.66 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:195.59,198.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:198.16,200.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:202.2,204.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:204.16,206.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:207.2,208.20 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:211.61,213.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:213.16,215.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:216.2,216.48 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:222.65,224.41 2 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:224.41,227.3 2 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:228.2,231.46 3 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:234.120,236.47 2 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:236.47,243.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:245.2,289.38 2 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:289.38,292.3 2 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:294.2,294.29 1 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:294.29,296.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:297.2,310.19 11 1 -github.com/SPANDigital/presidium-hugo/pkg/configtranslation/configfile.go:313.46,328.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:21.14,23.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:25.38,36.2 3 1 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:15.38,17.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:20.50,22.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:25.33,26.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:26.39,30.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:34.47,35.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:35.39,39.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:43.48,45.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:48.32,49.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:49.38,53.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:57.46,58.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:58.38,62.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:66.32,67.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:67.38,71.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:75.46,76.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:76.38,80.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:84.33,85.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:85.39,89.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:93.47,94.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:94.39,98.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:102.33,103.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:103.39,107.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:111.47,112.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:112.39,116.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:120.33,121.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:121.39,125.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:129.47,130.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:130.39,134.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:137.32,139.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:139.9,142.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:143.2,143.41 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:54.48,56.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:58.49,60.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:62.72,64.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:64.35,65.18 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:65.18,67.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:67.9,69.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:72.2,80.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:92.33,99.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:101.40,108.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:110.33,117.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:119.49,120.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:121.27,122.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:123.33,124.33 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:125.29,126.29 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:127.27,128.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:129.10,130.78 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:82.38,84.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:86.43,88.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:90.41,92.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:94.59,95.61 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:95.61,97.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:97.8,97.26 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:97.26,99.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:101.2,102.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:102.16,104.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:106.2,111.12 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:114.69,115.26 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:115.26,117.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:119.2,120.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:120.16,122.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:124.2,124.63 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:124.63,125.70 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:125.70,127.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:130.2,136.12 6 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:146.61,153.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:155.51,160.2 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:162.84,165.2 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:167.86,170.2 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:172.51,174.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:176.53,178.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:180.63,182.49 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:182.49,184.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:186.2,186.29 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:186.29,188.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:191.69,193.15 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:193.15,195.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:196.2,196.40 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:196.40,198.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:199.2,199.51 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:199.51,201.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:202.2,202.54 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:202.54,204.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:206.2,221.12 9 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:224.41,227.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:227.16,230.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:232.2,234.52 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:234.52,237.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:239.2,239.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:243.23,270.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:274.38,275.30 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:275.30,277.45 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:277.45,278.62 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:278.62,280.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:284.2,284.52 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:284.52,286.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:288.2,289.40 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:289.40,291.36 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:291.36,293.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:294.4,294.21 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:298.2,298.16 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:298.16,300.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:302.2,305.83 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:309.39,310.71 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:310.71,312.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:315.42,317.83 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:317.83,319.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:321.2,322.88 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:322.88,324.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:326.2,327.72 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:327.72,329.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:331.2,332.86 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:332.86,334.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:336.2,337.93 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:337.93,339.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:341.2,342.68 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:342.68,344.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:346.2,347.63 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:347.63,349.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:351.2,352.80 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:352.80,354.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:356.2,357.101 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:357.101,359.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:362.42,364.41 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:364.41,366.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:368.2,368.44 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:368.44,370.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:372.2,373.65 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:377.37,379.40 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:379.40,381.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:383.2,386.16 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:386.16,388.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:390.2,390.28 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:393.32,402.2 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:404.42,406.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:406.27,408.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:410.2,415.57 6 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:419.41,421.30 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:421.30,423.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:424.2,424.23 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:430.51,432.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:432.16,434.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:435.2,439.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:439.16,441.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:442.2,444.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/conversion.go:444.16,446.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:21.14,23.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:25.38,36.2 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:21.14,23.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:25.38,36.2 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:24.54,26.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:26.16,28.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:29.2,29.29 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:29.29,30.58 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:30.58,35.18 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:35.18,37.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:40.2,40.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:43.43,45.27 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:45.27,47.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:49.2,50.60 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:50.60,52.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:54.2,55.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:55.16,57.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:59.2,60.54 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:63.61,64.95 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:64.95,66.38 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:66.38,68.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:70.3,70.40 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:70.40,73.18 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:73.18,75.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:76.4,76.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:79.3,79.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:79.20,81.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:83.3,85.34 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:85.34,87.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:89.3,89.68 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:93.59,95.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:95.16,97.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:99.2,100.95 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:100.95,101.55 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:101.55,103.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:105.3,105.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:105.19,107.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:109.3,109.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:109.22,111.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:113.3,114.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:114.17,116.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:118.3,121.33 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:121.33,123.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:124.3,125.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:125.17,127.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:129.3,129.32 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:133.47,134.95 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:134.95,135.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:135.38,137.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:139.3,140.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:140.17,142.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:144.3,144.36 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:144.36,146.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:148.3,148.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:148.20,151.18 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:151.18,153.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:154.9,156.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:158.3,158.55 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:162.56,163.92 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:163.92,164.49 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:164.49,166.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:169.3,169.46 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:169.46,171.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:173.3,174.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:174.17,176.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:178.3,178.34 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:178.34,181.4 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:182.3,182.18 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:186.74,188.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:190.92,194.37 4 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:194.37,196.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:197.2,199.19 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:199.19,201.39 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:201.39,202.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:202.39,204.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:206.3,206.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:208.2,208.18 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:211.63,213.95 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:213.95,214.39 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:214.39,216.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:218.3,219.47 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:219.47,221.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:223.3,224.31 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:224.31,226.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:226.9,228.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:229.3,229.13 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:231.2,231.20 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:234.57,235.19 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:235.19,237.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:239.2,240.30 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:240.30,241.27 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:241.27,242.17 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:242.17,244.5 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:247.2,247.11 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:250.63,251.44 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:251.44,254.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:255.2,255.29 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:258.44,261.2 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:263.53,265.88 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:265.88,267.43 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:267.43,269.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:271.3,273.16 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:273.16,275.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:277.3,277.43 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:277.43,280.4 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:281.3,281.23 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:285.52,287.34 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:287.34,289.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:291.2,292.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:292.16,294.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:296.2,296.36 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:296.36,298.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:300.2,300.53 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:304.32,306.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:309.33,311.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:314.40,318.2 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:321.37,324.19 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:324.19,326.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/fileactions/fileactions.go:327.2,327.12 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/html/html.go:7.40,9.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:15.38,17.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:20.50,22.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:25.33,26.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:26.39,30.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:34.47,35.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:35.39,39.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:43.48,45.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:48.32,49.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:49.38,53.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:57.46,58.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:58.38,62.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:66.32,67.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:67.38,71.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:75.46,76.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:76.38,80.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:84.33,85.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:85.39,89.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:93.47,94.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:94.39,98.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:102.33,103.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:103.39,107.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:111.47,112.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:112.39,116.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:120.33,121.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:121.39,125.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:129.47,130.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:130.39,134.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:137.32,139.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:139.9,142.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:143.2,143.41 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/html/html.go:7.40,9.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:21.14,23.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/colors/labels.go:25.38,36.2 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/html/html.go:7.40,9.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/frontmatter.go:26.22,30.2 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/frontmatter.go:33.56,35.78 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/frontmatter.go:35.78,37.17 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/frontmatter.go:37.17,39.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/frontmatter.go:41.3,42.17 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/frontmatter.go:42.17,44.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/frontmatter.go:46.3,46.13 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:22.47,25.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:25.16,27.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:28.2,29.23 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:33.31,35.24 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:35.24,37.17 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:37.17,39.18 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:39.18,41.5 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:43.3,43.13 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:45.2,45.12 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:53.107,56.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:56.16,58.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:60.2,61.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:61.16,63.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:64.2,66.20 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:66.20,75.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:76.2,77.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:77.16,79.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:80.2,81.23 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:81.23,83.17 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:83.17,85.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:86.8,88.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:89.2,90.24 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:90.24,92.17 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:92.17,94.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:95.8,97.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/manipulate.go:98.2,98.18 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:52.33,53.51 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:53.51,55.26 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:55.26,56.36 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:56.36,58.19 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:58.19,60.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:64.2,64.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:67.52,68.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:68.35,71.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:72.2,72.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:76.51,79.24 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:79.24,81.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:82.2,82.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:85.39,86.79 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:86.79,89.32 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:89.32,95.4 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:97.3,98.44 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:98.44,101.4 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:102.3,103.13 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:107.35,108.79 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:108.79,111.32 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:111.32,114.15 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:114.15,116.5 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:116.10,118.5 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:121.3,122.44 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:122.44,125.4 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:126.3,127.13 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:132.43,133.79 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:133.79,136.34 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:136.34,143.4 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:145.3,146.44 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:146.44,149.4 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:150.3,151.13 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:157.83,159.25 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:159.25,161.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:162.2,162.36 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:162.36,163.16 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:163.16,165.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:166.3,166.50 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:169.2,170.14 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:170.14,172.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:173.2,173.15 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:173.15,175.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:176.2,176.65 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:179.68,182.22 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:182.22,184.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:185.2,185.50 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:188.65,193.81 5 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:193.81,195.37 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:195.37,197.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:197.9,199.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:202.2,202.20 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:202.20,204.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:206.2,206.22 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:206.22,208.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:210.2,210.21 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:210.21,212.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:214.2,215.59 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:218.46,219.24 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:219.24,220.15 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:220.15,222.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:224.2,224.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:228.41,229.79 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:229.79,233.32 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:233.32,235.44 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:235.44,238.5 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:241.3,242.44 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:242.44,244.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:246.3,247.13 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:251.60,254.50 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:254.50,256.36 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:256.36,258.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:261.2,263.19 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:263.19,265.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:266.2,266.58 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:270.40,272.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:274.50,276.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:279.43,285.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:288.88,289.29 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:289.29,290.80 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:290.80,292.44 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:292.44,293.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:293.22,295.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:295.11,297.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:298.5,299.15 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:300.10,303.5 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:305.3,305.17 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:305.17,307.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:309.2,309.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:312.78,313.43 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:313.43,314.80 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:314.80,316.56 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:316.56,317.34 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:317.34,319.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:319.11,321.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:322.5,323.15 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:324.10,327.5 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:329.3,329.17 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:329.17,331.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:333.2,333.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:336.39,338.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:341.53,343.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:345.51,346.32 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:346.32,348.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:348.8,350.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:353.41,354.79 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:354.79,358.24 4 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:358.24,360.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:361.3,361.38 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:361.38,368.4 6 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:369.3,369.36 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:369.36,371.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:372.3,373.13 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:377.41,378.79 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:378.79,382.24 4 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:382.24,384.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:386.3,386.38 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:386.38,392.4 5 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:393.3,393.36 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:393.36,395.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:396.3,397.13 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:401.43,403.65 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:403.65,405.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:408.46,411.2 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:413.50,416.23 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:416.23,418.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:419.2,419.37 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:419.37,429.24 7 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:429.24,431.24 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:431.24,435.5 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:436.4,436.24 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:436.24,439.5 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:440.9,442.24 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:442.24,446.5 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:447.4,447.24 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:447.24,450.5 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:451.4,453.139 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:455.3,455.92 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:457.2,457.35 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:457.35,459.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:461.2,461.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:464.49,466.24 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:466.24,468.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:469.2,469.108 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:472.46,475.37 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:475.37,476.23 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:476.23,478.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:479.3,479.54 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:481.2,481.34 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:484.55,487.37 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:487.37,489.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:490.2,490.34 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:493.44,494.79 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:494.79,499.3 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:502.46,504.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:506.41,507.79 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/operations.go:507.79,512.3 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/parse.go:13.44,15.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/parse.go:15.16,17.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/parse.go:19.2,20.20 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/parse.go:20.20,23.17 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/parse.go:23.17,25.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/parse.go:27.3,30.9 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/markdown/parse.go:32.2,32.25 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:17.41,18.88 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:18.88,19.55 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:19.55,23.4 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:24.3,24.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:28.44,30.20 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:30.20,32.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:33.2,33.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:36.44,38.31 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:38.31,40.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/conversion/resources/resources.go:41.2,41.32 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:54.48,56.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:58.49,60.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:62.72,64.35 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:64.35,65.18 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:65.18,67.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:67.9,69.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:72.2,80.3 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:92.33,99.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:101.40,108.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:110.33,117.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:119.49,120.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:121.27,122.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:123.33,124.33 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:125.29,126.29 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:127.27,128.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/model/generator/model.go:129.10,130.78 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:16.26,21.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:28.57,29.52 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:29.52,31.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:32.2,32.35 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:35.70,41.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:43.65,47.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:47.16,48.59 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:48.59,50.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:51.8,52.27 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:53.40,54.89 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:55.40,56.60 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:56.60,58.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:62.2,62.50 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:62.50,64.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/generator/generator.go:66.2,66.12 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:21.20,26.2 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:29.67,31.103 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:31.103,34.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:37.118,38.94 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:38.94,42.3 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:43.2,43.12 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:46.101,49.16 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:49.16,51.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:52.2,54.16 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:54.16,56.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:57.2,58.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:58.16,60.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:61.2,64.16 4 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:64.16,66.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:67.2,68.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:68.16,70.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:71.2,71.12 1 1 -github.com/SPANDigital/presidium-hugo/pkg/presidiumerr/error.go:14.38,16.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/hugo/hugo.go:8.20,10.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/hugo/hugo.go:12.42,14.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:24.32,28.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:34.91,36.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:36.16,38.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:40.2,44.51 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:44.51,46.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:48.2,48.48 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:48.48,50.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:52.2,52.62 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:52.62,54.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:56.2,57.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:57.16,59.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:61.2,62.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:62.16,64.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:66.2,69.8 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:72.83,74.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:74.16,76.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:78.2,81.63 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:81.63,83.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:85.2,86.29 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:86.29,90.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:92.2,92.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:95.110,97.94 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:97.94,98.30 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:98.30,103.69 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:103.69,105.15 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:105.15,107.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:110.3,110.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/searchmapvalidation/searchmapvalidation.go:112.2,112.21 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:21.20,26.2 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:29.67,31.103 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:31.103,34.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:37.118,38.94 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:38.94,42.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:43.2,43.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:46.101,49.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:49.16,51.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:52.2,54.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:54.16,56.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:57.2,58.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:58.16,60.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:61.2,64.16 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:64.16,66.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:67.2,68.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:68.16,70.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/template/template.go:71.2,71.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:29.36,31.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:33.33,41.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:43.44,45.11 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:45.11,47.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:48.2,48.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:51.31,53.32 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:53.32,56.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:59.54,62.90 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:62.90,63.17 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:63.17,66.4 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:68.3,68.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:68.20,71.18 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:71.18,74.5 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:76.3,76.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:79.2,79.16 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:79.16,81.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:81.8,83.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:86.46,96.34 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:96.34,102.46 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:102.46,106.4 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:108.3,110.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:111.20,113.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:114.21,116.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:117.22,119.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:120.23,122.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:126.2,126.15 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:129.48,131.18 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:131.18,133.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:135.2,135.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:135.38,137.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:139.2,145.6 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:145.6,146.25 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:146.25,147.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:150.3,154.26 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:154.26,155.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:158.3,158.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:158.22,159.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:162.3,162.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:162.22,164.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:167.3,167.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:167.38,168.44 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:168.44,170.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:172.4,172.55 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:172.55,173.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:175.4,175.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:178.3,179.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:179.17,181.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:184.3,184.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:184.19,187.18 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:187.18,188.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:190.4,190.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:190.20,192.13 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:194.4,194.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:197.3,198.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:198.17,200.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:203.3,205.17 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:205.17,207.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:207.9,210.81 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:210.81,216.45 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:216.45,218.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:219.5,222.48 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:222.48,224.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:226.5,226.37 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:226.37,229.6 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:231.5,232.19 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:232.19,235.6 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:237.5,238.20 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:238.20,240.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:242.5,248.7 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:252.3,252.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:255.2,255.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:258.91,261.38 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:261.38,264.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:265.2,265.37 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:268.65,272.49 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:272.49,275.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:278.2,278.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:278.19,280.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:282.2,283.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:283.16,286.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:288.2,293.12 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:296.59,299.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:299.16,301.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:302.2,302.18 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:302.18,304.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:305.2,305.18 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:308.86,315.12 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:315.12,318.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validate/impl.go:320.2,320.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:59.45,61.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:63.33,71.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:73.53,75.11 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:75.11,77.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:78.2,78.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:81.40,83.39 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:83.39,86.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:89.57,92.99 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:92.99,94.17 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:94.17,97.4 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:99.3,99.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:99.20,102.18 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:102.18,105.5 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:108.3,108.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:111.2,111.16 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:111.16,113.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:113.8,115.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:119.49,130.43 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:130.43,137.46 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:137.46,141.4 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:143.3,145.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:146.14,148.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:149.15,151.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:152.16,154.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:155.17,157.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:161.2,161.15 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:164.57,168.27 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:168.27,170.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:172.2,172.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:172.38,174.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:176.2,182.6 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:182.6,184.34 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:184.34,185.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:188.3,192.35 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:192.35,193.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:196.3,196.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:196.22,197.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:200.3,200.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:200.22,202.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:205.3,207.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:207.17,209.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:212.3,212.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:212.19,215.18 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:215.18,216.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:218.4,218.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:218.20,220.13 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:222.4,222.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:225.3,227.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:227.17,229.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:232.3,234.17 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:234.17,236.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:236.9,239.66 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:239.66,241.45 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:241.45,243.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:244.5,247.48 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:247.48,249.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:249.11,249.53 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:249.53,251.6 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:253.5,255.19 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:255.19,258.6 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:260.5,270.7 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:274.3,274.19 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:278.2,278.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:281.59,284.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:284.16,286.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:287.2,287.18 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:287.18,289.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:290.2,290.18 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:293.83,300.12 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:300.12,303.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/service/validation/validation.go:305.2,305.27 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:53.47,55.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:57.41,59.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:66.39,73.41 5 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:73.41,75.72 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:75.72,80.9 5 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:84.2,84.13 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:84.13,86.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:89.41,101.75 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:101.75,104.3 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:106.2,106.10 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:109.39,111.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:113.51,116.2 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:118.32,119.75 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:119.75,120.81 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:120.81,121.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:125.2,126.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:126.16,127.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:129.2,132.17 4 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:135.29,139.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:139.16,140.25 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:140.25,142.4 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:143.3,143.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:146.2,150.43 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:150.43,151.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:152.10,153.63 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:153.63,155.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:156.4,156.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:157.10,158.70 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:158.70,160.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:161.4,161.9 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:166.36,168.18 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:168.18,170.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:172.2,177.21 4 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:177.21,180.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:182.2,184.13 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:187.35,188.31 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:188.31,190.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:191.2,191.17 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:194.49,195.51 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:195.51,197.21 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:197.21,199.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:199.9,202.4 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:206.36,209.2 2 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:211.55,212.28 1 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/versioning/versioning.go:212.28,216.3 3 1 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:19.99,26.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:26.16,28.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:29.2,29.20 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:32.77,34.18 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:34.18,36.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:37.2,43.40 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:43.40,45.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:45.8,47.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/wizard.go:50.52,57.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:21.26,23.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:25.27,28.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:28.16,30.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:32.2,33.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:33.16,35.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:37.2,40.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:40.16,43.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:45.2,49.16 4 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:49.16,51.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:55.44,57.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:57.38,60.17 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:60.17,64.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:65.3,65.18 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:68.2,75.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:78.23,79.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:79.39,80.22 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:80.22,82.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:83.3,83.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:85.2,86.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:86.16,88.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:89.2,90.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:93.29,94.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:94.39,95.54 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:95.54,97.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:98.3,98.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:100.2,101.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:101.16,103.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:104.2,105.12 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:108.27,111.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:111.16,114.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:116.2,116.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:116.13,117.40 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:117.40,119.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:120.3,121.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:121.17,123.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:124.3,124.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:126.2,126.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:129.33,131.42 2 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:131.42,136.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:137.2,144.16 3 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:144.16,146.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/domain/wizard/initwzd/impl.go:147.2,148.52 2 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fs.go:10.13,12.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:29.33,32.2 2 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:36.19,38.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:40.46,42.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:42.16,44.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:46.2,46.26 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:46.26,48.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:50.2,50.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:53.55,55.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:55.16,57.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:59.2,59.30 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:59.30,61.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:63.2,63.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:66.45,68.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:70.44,72.16 2 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:72.16,74.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:75.2,75.14 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:78.49,80.2 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:82.79,84.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:86.59,87.26 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:87.26,89.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:91.2,91.27 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:94.45,96.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:98.54,100.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:103.44,105.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:105.16,107.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:109.2,109.19 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:109.19,111.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:113.2,114.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:114.16,116.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:118.2,120.16 3 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:120.16,122.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:124.2,124.32 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:124.32,125.63 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:125.63,127.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:130.2,130.12 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:133.64,135.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:135.16,137.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:138.2,138.41 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:141.49,144.16 2 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:144.16,146.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:148.2,148.76 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:148.76,149.17 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:149.17,151.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:152.3,155.20 4 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:155.20,157.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:159.3,159.19 1 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:159.19,161.18 2 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:161.18,163.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:164.9,166.18 2 1 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:166.18,168.5 1 0 -github.com/SPANDigital/presidium-hugo/pkg/filesystem/fsutil.go:170.3,170.13 1 1 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:15.38,17.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:20.50,22.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:25.33,26.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:26.39,30.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:34.47,35.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:35.39,39.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:43.48,45.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:48.32,49.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:49.38,53.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:57.46,58.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:58.38,62.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:66.32,67.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:67.38,71.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:75.46,76.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:76.38,80.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:84.33,85.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:85.39,89.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:93.47,94.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:94.39,98.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:102.33,103.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:103.39,107.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:111.47,112.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:112.39,116.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:120.33,121.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:121.39,125.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:129.47,130.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:130.39,134.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:137.32,139.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:139.9,142.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:143.2,143.41 1 0 -github.com/SPANDigital/presidium-hugo/pkg/presidiumerr/error.go:14.38,16.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:15.38,17.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:20.50,22.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:25.33,26.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:26.39,30.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:34.47,35.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:35.39,39.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:43.48,45.2 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:48.32,49.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:49.38,53.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:57.46,58.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:58.38,62.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:66.32,67.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:67.38,71.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:75.46,76.38 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:76.38,80.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:84.33,85.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:85.39,89.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:93.47,94.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:94.39,98.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:102.33,103.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:103.39,107.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:111.47,112.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:112.39,116.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:120.33,121.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:121.39,125.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:129.47,130.39 1 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:130.39,134.3 3 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:137.32,139.9 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:139.9,142.3 2 0 -github.com/SPANDigital/presidium-hugo/pkg/log/logger.go:143.2,143.41 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:9.35,10.61 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:10.61,12.3 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:13.2,13.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:17.97,24.88 3 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:24.88,26.17 2 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:26.17,28.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:30.3,30.21 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:30.21,35.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:36.3,36.13 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:39.2,39.41 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:39.41,42.62 3 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:42.62,44.4 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/fs.go:47.2,47.12 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/slug.go:9.36,15.20 6 1 -github.com/SPANDigital/presidium-hugo/pkg/utils/slug.go:15.20,17.3 1 1 -github.com/SPANDigital/presidium-hugo/pkg/utils/slug.go:18.2,18.32 1 0 -github.com/SPANDigital/presidium-hugo/pkg/utils/slug.go:23.34,27.2 3 1 -github.com/SPANDigital/presidium-hugo/pkg/utils/slug.go:30.39,35.2 4 1 diff --git a/templates/design/go.mod b/templates/blog/go.mod.tmpl similarity index 86% rename from templates/design/go.mod rename to templates/blog/go.mod.tmpl index 16c5412e..2d7afb21 100644 --- a/templates/design/go.mod +++ b/templates/blog/go.mod.tmpl @@ -1,3 +1,3 @@ module github.com/spandigital/{{ .ProjectName }} -go 1.23 +go 1.25 diff --git a/templates/default/Makefile b/templates/default/Makefile index 62f4a2b6..533b7c0b 100644 --- a/templates/default/Makefile +++ b/templates/default/Makefile @@ -1,25 +1,36 @@ default: - hugo mod get - hugo --templateMetrics --ignoreCache --logLevel info + make serve hugo: hugo mod get - hugo --templateMetrics --ignoreCache --logLevel info + hugo --templateMetrics --ignoreCache --logLevel info + +drafts: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info --buildDrafts tidy: go mod tidy hugo mod tidy -refresh: +refresh: + rm -rf public resources go.sum .hugo_build.lock themes hugo mod clean make tidy make hugo serve: - hugo server -w --ignoreCache --logLevel info + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info + +serve-drafts: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info --buildDrafts serve-a: - hugo server -w --ignoreCache --logLevel info -p 6060 + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 6060 serve-b: - hugo server -w --ignoreCache --logLevel info -p 7070 \ No newline at end of file + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 7070 \ No newline at end of file diff --git a/templates/default/config.yaml b/templates/default/config.yaml index 5820337b..8a28732d 100644 --- a/templates/default/config.yaml +++ b/templates/default/config.yaml @@ -5,14 +5,14 @@ pluralizelisttitles: false params: _merge: deep sortByFilePath: true - enterprise_key: {{ .Uuid }} + enterprise_key: frontmatter: - - key: author - type: email - strict: false - - key: title - type: text - strict: true + - key: author + type: email + strict: false + - key: title + type: text + strict: true markup: goldmark: renderer: diff --git a/templates/onboarding/go.mod b/templates/default/go.mod.tmpl similarity index 86% rename from templates/onboarding/go.mod rename to templates/default/go.mod.tmpl index 16c5412e..2d7afb21 100644 --- a/templates/onboarding/go.mod +++ b/templates/default/go.mod.tmpl @@ -1,3 +1,3 @@ module github.com/spandigital/{{ .ProjectName }} -go 1.23 +go 1.25 diff --git a/templates/design/Makefile b/templates/design/Makefile index 62f4a2b6..533b7c0b 100644 --- a/templates/design/Makefile +++ b/templates/design/Makefile @@ -1,25 +1,36 @@ default: - hugo mod get - hugo --templateMetrics --ignoreCache --logLevel info + make serve hugo: hugo mod get - hugo --templateMetrics --ignoreCache --logLevel info + hugo --templateMetrics --ignoreCache --logLevel info + +drafts: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info --buildDrafts tidy: go mod tidy hugo mod tidy -refresh: +refresh: + rm -rf public resources go.sum .hugo_build.lock themes hugo mod clean make tidy make hugo serve: - hugo server -w --ignoreCache --logLevel info + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info + +serve-drafts: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info --buildDrafts serve-a: - hugo server -w --ignoreCache --logLevel info -p 6060 + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 6060 serve-b: - hugo server -w --ignoreCache --logLevel info -p 7070 \ No newline at end of file + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 7070 \ No newline at end of file diff --git a/templates/design/config.yml b/templates/design/config.yml index ce682281..0fbb73a0 100755 --- a/templates/design/config.yml +++ b/templates/design/config.yml @@ -5,14 +5,14 @@ pluralizelisttitles: false params: _merge: deep sortByFilePath: true - enterprise_key: {{ .Uuid }} + enterprise_key: frontmatter: - - key: author - type: email - strict: false - - key: title - type: text - strict: true + - key: author + type: email + strict: false + - key: title + type: text + strict: true markup: goldmark: renderer: @@ -24,58 +24,58 @@ markup: style: github menu: Main: - - identifier: introduction - name: Introduction - url: / - weight: 1 - - identifier: design-principles - name: Design Principles - url: /design-principles/ - weight: 2 - - identifier: visual-elements - name: Visual Elements - url: /visual-elements/ - weight: 3 - - identifier: typography - name: Typography - url: /typography/ - weight: 4 - - identifier: components - name: Components - url: /components/ - weight: 5 - - identifier: motion - name: Motion - url: /motion/ - weight: 6 - - identifier: design-tokens - name: Design Tokens - url: /design-tokens/ - weight: 7 - - identifier: resources - name: Resources - url: /resources/ - weight: 8 - - identifier: accessibility - name: Accessibility - url: /accessibility/ - weight: 9 - - identifier: contributing - name: Contributing - url: /contributing/ - weight: 10 - - identifier: reference - name: Reference - url: /reference/ - weight: 11 - - identifier: faqs - name: FAQs - url: /faqs/ - weight: 12 - - identifier: updates - name: Updates - url: /updates/ - weight: 13 + - identifier: introduction + name: Introduction + url: / + weight: 1 + - identifier: design-principles + name: Design Principles + url: /design-principles/ + weight: 2 + - identifier: visual-elements + name: Visual Elements + url: /visual-elements/ + weight: 3 + - identifier: typography + name: Typography + url: /typography/ + weight: 4 + - identifier: components + name: Components + url: /components/ + weight: 5 + - identifier: motion + name: Motion + url: /motion/ + weight: 6 + - identifier: design-tokens + name: Design Tokens + url: /design-tokens/ + weight: 7 + - identifier: resources + name: Resources + url: /resources/ + weight: 8 + - identifier: accessibility + name: Accessibility + url: /accessibility/ + weight: 9 + - identifier: contributing + name: Contributing + url: /contributing/ + weight: 10 + - identifier: reference + name: Reference + url: /reference/ + weight: 11 + - identifier: faqs + name: FAQs + url: /faqs/ + weight: 12 + - identifier: updates + name: Updates + url: /updates/ + weight: 13 outputFormats: MenuIndex: baseName: menu @@ -85,23 +85,18 @@ outputFormats: mediaType: application/json outputs: home: - - HTML - - RSS - - MenuIndex - - SearchMap + - HTML + - RSS + - MenuIndex + - SearchMap module: _merge: shallow imports: - path: github.com/spandigital/presidium-styling-base - mounts: - - source: assets - target: assets - - source: static - target: static - path: github.com/spandigital/presidium-layouts-base enableInlineShortcodes: true frontmatter: lastmod: - lastmod - :fileModTime - - :default \ No newline at end of file + - :default diff --git a/templates/blog/go.mod b/templates/design/go.mod.tmpl similarity index 86% rename from templates/blog/go.mod rename to templates/design/go.mod.tmpl index 16c5412e..2d7afb21 100644 --- a/templates/blog/go.mod +++ b/templates/design/go.mod.tmpl @@ -1,3 +1,3 @@ module github.com/spandigital/{{ .ProjectName }} -go 1.23 +go 1.25 diff --git a/templates/onboarding/Makefile b/templates/onboarding/Makefile index 62f4a2b6..533b7c0b 100644 --- a/templates/onboarding/Makefile +++ b/templates/onboarding/Makefile @@ -1,25 +1,36 @@ default: - hugo mod get - hugo --templateMetrics --ignoreCache --logLevel info + make serve hugo: hugo mod get - hugo --templateMetrics --ignoreCache --logLevel info + hugo --templateMetrics --ignoreCache --logLevel info + +drafts: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info --buildDrafts tidy: go mod tidy hugo mod tidy -refresh: +refresh: + rm -rf public resources go.sum .hugo_build.lock themes hugo mod clean make tidy make hugo serve: - hugo server -w --ignoreCache --logLevel info + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info + +serve-drafts: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info --buildDrafts serve-a: - hugo server -w --ignoreCache --logLevel info -p 6060 + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 6060 serve-b: - hugo server -w --ignoreCache --logLevel info -p 7070 \ No newline at end of file + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 7070 \ No newline at end of file diff --git a/templates/onboarding/config.yml b/templates/onboarding/config.yml index bd4403c6..8a132e4a 100755 --- a/templates/onboarding/config.yml +++ b/templates/onboarding/config.yml @@ -5,14 +5,14 @@ pluralizelisttitles: false params: _merge: deep sortByFilePath: true - enterprise_key: {{ .Uuid }} + enterprise_key: frontmatter: - - key: author - type: email - strict: false - - key: title - type: text - strict: true + - key: author + type: email + strict: false + - key: title + type: text + strict: true markup: goldmark: renderer: @@ -24,38 +24,38 @@ markup: style: github menu: Main: - - identifier: organization-overview - name: Organization Overview - url: / - weight: 1 - - identifier: solution-overview - name: Solution Overview - url: /solution-overview/ - weight: 2 - - identifier: technology-stack - name: Technology Stack - url: /technology-stack/ - weight: 3 - - identifier: tool-chain - name: Tool Chain - url: /tool-chain/ - weight: 4 - - identifier: dev-environment-setup - name: Dev Environment Setup - url: /dev-environment-setup/ - weight: 5 - - identifier: getting-started - name: Getting Started - url: /getting-started/ - weight: 6 - - identifier: reference - name: Reference - url: /reference/ - weight: 7 - - identifier: updates - name: Updates - url: /updates/ - weight: 8 + - identifier: organization-overview + name: Organization Overview + url: / + weight: 1 + - identifier: solution-overview + name: Solution Overview + url: /solution-overview/ + weight: 2 + - identifier: technology-stack + name: Technology Stack + url: /technology-stack/ + weight: 3 + - identifier: tool-chain + name: Tool Chain + url: /tool-chain/ + weight: 4 + - identifier: dev-environment-setup + name: Dev Environment Setup + url: /dev-environment-setup/ + weight: 5 + - identifier: getting-started + name: Getting Started + url: /getting-started/ + weight: 6 + - identifier: reference + name: Reference + url: /reference/ + weight: 7 + - identifier: updates + name: Updates + url: /updates/ + weight: 8 outputFormats: MenuIndex: baseName: menu @@ -65,10 +65,10 @@ outputFormats: mediaType: application/json outputs: home: - - HTML - - RSS - - MenuIndex - - SearchMap + - HTML + - RSS + - MenuIndex + - SearchMap module: _merge: shallow imports: diff --git a/templates/default/go.mod b/templates/onboarding/go.mod.tmpl similarity index 86% rename from templates/default/go.mod rename to templates/onboarding/go.mod.tmpl index 16c5412e..2d7afb21 100644 --- a/templates/default/go.mod +++ b/templates/onboarding/go.mod.tmpl @@ -1,3 +1,3 @@ module github.com/spandigital/{{ .ProjectName }} -go 1.23 +go 1.25 diff --git a/templates/requirements/Makefile b/templates/requirements/Makefile new file mode 100644 index 00000000..533b7c0b --- /dev/null +++ b/templates/requirements/Makefile @@ -0,0 +1,36 @@ +default: + make serve + +hugo: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info + +drafts: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info --buildDrafts + +tidy: + go mod tidy + hugo mod tidy + +refresh: + rm -rf public resources go.sum .hugo_build.lock themes + hugo mod clean + make tidy + make hugo + +serve: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info + +serve-drafts: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info --buildDrafts + +serve-a: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 6060 + +serve-b: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 7070 \ No newline at end of file diff --git a/templates/requirements/config.yaml b/templates/requirements/config.yaml index 9ec4572c..999713d3 100644 --- a/templates/requirements/config.yaml +++ b/templates/requirements/config.yaml @@ -3,7 +3,16 @@ title: "{{ .Title }}" copyright: Template Footer pluralizelisttitles: false params: - sortByFilePath: true + _merge: deep + sortByFilePath: true + enterprise_key: + frontmatter: + - key: author + type: email + strict: false + - key: title + type: text + strict: true markup: goldmark: renderer: @@ -66,15 +75,8 @@ outputs: - SearchMap module: imports: - {{ if .Brand -}} - - path: {{ .Brand }} - mounts: - - source: assets - target: assets - - source: static - target: static - {{- end }} - - path: {{ .Theme }} + - path: github.com/spandigital/presidium-styling-base + - path: github.com/spandigital/presidium-layouts-base enableInlineShortcodes: true frontmatter: lastmod: diff --git a/templates/requirements/go.mod b/templates/requirements/go.mod deleted file mode 100644 index f10f43a2..00000000 --- a/templates/requirements/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/spandigital/{{ .ProjectName }} - -go 1.16 diff --git a/templates/requirements/go.mod.tmpl b/templates/requirements/go.mod.tmpl new file mode 100644 index 00000000..2d7afb21 --- /dev/null +++ b/templates/requirements/go.mod.tmpl @@ -0,0 +1,3 @@ +module github.com/spandigital/{{ .ProjectName }} + +go 1.25 diff --git a/templates/runbook/Makefile b/templates/runbook/Makefile new file mode 100644 index 00000000..533b7c0b --- /dev/null +++ b/templates/runbook/Makefile @@ -0,0 +1,36 @@ +default: + make serve + +hugo: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info + +drafts: + hugo mod get + hugo --templateMetrics --ignoreCache --logLevel info --buildDrafts + +tidy: + go mod tidy + hugo mod tidy + +refresh: + rm -rf public resources go.sum .hugo_build.lock themes + hugo mod clean + make tidy + make hugo + +serve: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info + +serve-drafts: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info --buildDrafts + +serve-a: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 6060 + +serve-b: + make refresh + hugo server -w --ignoreCache --disableFastRender --logLevel info -p 7070 \ No newline at end of file diff --git a/templates/runbook/config.yaml b/templates/runbook/config.yaml index d65b5308..cf2a6a69 100644 --- a/templates/runbook/config.yaml +++ b/templates/runbook/config.yaml @@ -3,7 +3,16 @@ title: "{{ .Title }}" copyright: Template Footer pluralizelisttitles: false params: - sortByFilePath: true + _merge: deep + sortByFilePath: true + enterprise_key: + frontmatter: + - key: author + type: email + strict: false + - key: title + type: text + strict: true markup: goldmark: renderer: @@ -50,15 +59,8 @@ outputs: - SearchMap module: imports: - {{ if .Brand -}} - - path: {{ .Brand }} - mounts: - - source: assets - target: assets - - source: static - target: static - {{- end }} - - path: {{ .Theme }} + - path: github.com/spandigital/presidium-styling-base + - path: github.com/spandigital/presidium-layouts-base enableInlineShortcodes: true frontmatter: lastmod: diff --git a/templates/runbook/go.mod b/templates/runbook/go.mod deleted file mode 100644 index f10f43a2..00000000 --- a/templates/runbook/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/spandigital/{{ .ProjectName }} - -go 1.16 diff --git a/templates/runbook/go.mod.tmpl b/templates/runbook/go.mod.tmpl new file mode 100644 index 00000000..2d7afb21 --- /dev/null +++ b/templates/runbook/go.mod.tmpl @@ -0,0 +1,3 @@ +module github.com/spandigital/{{ .ProjectName }} + +go 1.25 diff --git a/test-embedded-themes.sh b/test-embedded-themes.sh new file mode 100755 index 00000000..82fb9087 --- /dev/null +++ b/test-embedded-themes.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# Test script to verify presidium works with embedded themes (no network access) + +set -e + +echo "╔═══════════════════════════════════════════════════════════════╗" +echo "║ Testing Presidium with Embedded Themes (Offline Mode) ║" +echo "╚═══════════════════════════════════════════════════════════════╝" +echo "" + +# Check if docs site exists +if [ ! -d "docs" ]; then + echo "❌ Error: Documentation site not found at docs/" + echo " Please ensure the docs directory exists." + exit 1 +fi + +echo "✓ Found docs directory" +echo "" + +# Clean previous build artifacts +echo "🧹 Cleaning previous build artifacts..." +rm -rf docs/public \ + docs/.hugo_build.lock \ + docs/resources + +# Build the Docker image (builds presidium binary and tests it) +echo "🐋 Building Docker image (compiling presidium for Linux)..." +docker build -f Dockerfile.test -t presidium-offline-test . + +echo "" +echo "🔒 Running test with network disabled..." +echo "" + +# Run the container with network disabled to prove themes work offline +# The --network=none flag ensures absolutely no network access +docker run --rm --network=none presidium-offline-test + +echo "" +echo "═══════════════════════════════════════════════════════════════" +echo "✅ SUCCESS! Presidium works with embedded themes (no network) " +echo "═══════════════════════════════════════════════════════════════" diff --git a/themes/presidium-layouts-base b/themes/presidium-layouts-base new file mode 160000 index 00000000..c27322f3 --- /dev/null +++ b/themes/presidium-layouts-base @@ -0,0 +1 @@ +Subproject commit c27322f34e2e1e0830c1be174e65660b65fd52be diff --git a/themes/presidium-layouts-blog b/themes/presidium-layouts-blog new file mode 160000 index 00000000..1a9fccd2 --- /dev/null +++ b/themes/presidium-layouts-blog @@ -0,0 +1 @@ +Subproject commit 1a9fccd2f6a632ef45e7c45bbfcd193e35b79daf diff --git a/themes/presidium-styling-base b/themes/presidium-styling-base new file mode 160000 index 00000000..2f128289 --- /dev/null +++ b/themes/presidium-styling-base @@ -0,0 +1 @@ +Subproject commit 2f1282897a168cf81d831eebedb9a0df23a2c7ed diff --git a/tools/hugo b/tools/hugo new file mode 160000 index 00000000..3f9d0ad2 --- /dev/null +++ b/tools/hugo @@ -0,0 +1 @@ +Subproject commit 3f9d0ad2b6045849cbafe133cb9fb82ed5f5ee06