@cloudcannon/editable-regions 0.0.18 → 0.0.20-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/helpers/checks.ts +0 -22
  2. package/helpers/hydrate-editable-regions.ts +2 -1
  3. package/integrations/astro/react-renderer.mjs +94 -19
  4. package/integrations/astro/svelte-renderer.mjs +72 -15
  5. package/integrations/astro/vue-renderer.mjs +61 -0
  6. package/integrations/eleventy/browser/collect-config.mjs +69 -8
  7. package/integrations/eleventy/browser/inert.mjs +35 -0
  8. package/integrations/eleventy/browser/process-shim.mjs +32 -0
  9. package/integrations/eleventy/browser/stub-mode.mjs +61 -0
  10. package/integrations/eleventy/index.cjs +28 -1
  11. package/integrations/eleventy/index.mjs +82 -30
  12. package/integrations/hugo/browser/entry.js +13 -0
  13. package/integrations/hugo/browser/errors.ts +41 -0
  14. package/integrations/hugo/browser/index.ts +344 -0
  15. package/integrations/hugo/browser/logger.ts +42 -0
  16. package/integrations/hugo/browser/wasm_exec.js +575 -0
  17. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/find-config-files.html +14 -0
  18. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/find-dep-template-files.html +66 -0
  19. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/find-files-with-extension.html +27 -0
  20. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/find-template-files.html +51 -0
  21. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/load-deps.html +5 -0
  22. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/normalize-extensions.html +9 -0
  23. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/resources.html +87 -0
  24. package/integrations/hugo/hugo-module/layouts/partials/editable-regions/wasm-url.html +28 -0
  25. package/integrations/hugo/hugo-module/layouts/partials/editable-regions.html +6 -0
  26. package/integrations/hugo/renderer/build.sh +24 -0
  27. package/integrations/hugo/renderer/go.mod +100 -0
  28. package/integrations/hugo/renderer/go.sum +241 -0
  29. package/integrations/hugo/renderer/main.go +412 -0
  30. package/integrations/liquid/README.md +92 -3
  31. package/integrations/liquid/errors.mjs +3 -1
  32. package/integrations/liquid/fs.mjs +11 -1
  33. package/integrations/liquid/globals.mjs +131 -26
  34. package/integrations/liquid/index.mjs +5 -2
  35. package/integrations/vue.mjs +28 -0
  36. package/nodes/editable-array-item.ts +6 -1
  37. package/nodes/editable-component.ts +2 -3
  38. package/nodes/editable-text.ts +6 -0
  39. package/nodes/editable.ts +6 -1
  40. package/package.json +132 -90
  41. package/types/astro.d.ts +4 -0
  42. package/types/eleventy.d.ts +11 -4
  43. package/types/hugo.d.ts +69 -0
  44. package/types/liquid.d.ts +0 -1
  45. package/types/vue.d.ts +40 -0
@@ -0,0 +1,51 @@
1
+ {{- $files := dict -}}
2
+ {{- $subDirs := slice "partials" "shortcodes" -}}
3
+
4
+ {{- $deps := .deps -}}
5
+ {{- $exts := .exts -}}
6
+ {{- $ignore := .ignore | default slice -}}
7
+ {{- $dir := .dir | default "." -}}
8
+
9
+ {{- if os.FileExists $dir -}}
10
+ {{- range $entry := readDir $dir -}}
11
+ {{- if not $entry.IsDir -}}
12
+ {{ continue }}
13
+ {{- end -}}
14
+
15
+ {{- $path := path.Join $dir $entry.Name -}}
16
+
17
+ {{- range $dep := $deps -}}
18
+ {{- $resolved := path.Clean (path.Join $dir $dep) -}}
19
+ {{- if and (not (strings.HasPrefix $resolved "..")) (os.FileExists $resolved) -}}
20
+ {{- $files = merge $files (partial "editable-regions/find-dep-template-files.html" (dict "dir" $resolved "exts" $exts "ignore" $ignore)) -}}
21
+ {{- end -}}
22
+ {{- end -}}
23
+
24
+ {{- $isDep := false -}}
25
+ {{- range $dep := $deps -}}
26
+ {{- if strings.HasSuffix $path (printf "/%s" $dep) -}}
27
+ {{- $files = merge $files (partial "editable-regions/find-dep-template-files.html" (dict "dir" $path "exts" $exts "ignore" $ignore)) -}}
28
+ {{- $isDep = true -}}
29
+ {{- break -}}
30
+ {{- end -}}
31
+ {{- end -}}
32
+
33
+ {{- if or $isDep (in $ignore $entry.Name) -}}
34
+ {{ continue }}
35
+ {{- end -}}
36
+
37
+ {{- if in $subDirs $entry.Name -}}
38
+ {{- $files = merge $files (partial "editable-regions/find-files-with-extension.html" (dict "dir" $path "exts" $exts "ignore" $ignore)) -}}
39
+ {{- else if eq $entry.Name "_default" -}}
40
+ {{- range $defaultEntry := readDir $path -}}
41
+ {{- if eq $defaultEntry.Name "_markup" -}}
42
+ {{- $files = merge $files (partial "editable-regions/find-files-with-extension.html" (dict "dir" (path.Join $path "_markup") "exts" $exts "ignore" $ignore)) -}}
43
+ {{- end -}}
44
+ {{- end -}}
45
+ {{- end -}}
46
+
47
+ {{- $files = merge $files (partial "editable-regions/find-template-files.html" (dict "dir" $path "deps" $deps "exts" $exts "ignore" $ignore)) -}}
48
+ {{- end -}}
49
+ {{- end -}}
50
+
51
+ {{- return $files -}}
@@ -0,0 +1,5 @@
1
+ {{- $deps := slice -}}
2
+ {{- range $dep := hugo.Deps -}}
3
+ {{- $deps = $deps | append $dep.Path -}}
4
+ {{- end -}}
5
+ {{- return $deps -}}
@@ -0,0 +1,9 @@
1
+ {{- /* Normalizes extension candidates to the dotted form path.Ext produces */ -}}
2
+ {{- $dotted := slice -}}
3
+ {{- range $ext := . -}}
4
+ {{- if not (strings.HasPrefix $ext ".") -}}
5
+ {{- $ext = printf ".%s" $ext -}}
6
+ {{- end -}}
7
+ {{- $dotted = $dotted | append $ext -}}
8
+ {{- end -}}
9
+ {{- return $dotted -}}
@@ -0,0 +1,87 @@
1
+ {{- $cfg := site.Params.editable_regions | default dict -}}
2
+ {{- $templateExts := partial "editable-regions/normalize-extensions.html"
3
+ ($cfg.template_extensions | default (slice ".html" ".htm")) -}}
4
+ {{- $configExts := slice ".toml" ".yaml" ".yml" ".json" -}}
5
+ {{- $ignoreDirs := $cfg.ignore_directories | default (slice ".git" "node_modules" "public" "resources") -}}
6
+ {{- $overrides := $cfg.templates_overrides | default dict -}}
7
+
8
+ {{- $wasmUrl := $cfg.wasm_url -}}
9
+ {{- if not $wasmUrl -}}
10
+ {{- $wasmUrl = partialCached "editable-regions/wasm-url.html" (dict
11
+ "override_version" ($cfg._version | default "")
12
+ "base_url" ($cfg.wasm_base_url | default "https://github.com/CloudCannon/editable-regions/releases/download")
13
+ ) -}}
14
+ {{- end -}}
15
+
16
+ {{- $templateFiles := dict -}}
17
+ {{- if $cfg.template_dirs -}}
18
+ {{- range $td := $cfg.template_dirs -}}
19
+ {{- $templateFiles = merge $templateFiles (partial "editable-regions/find-files-with-extension.html" (dict "dir" $td "exts" $templateExts "ignore" $ignoreDirs)) -}}
20
+ {{- end -}}
21
+ {{- else -}}
22
+ {{- $deps := partial "editable-regions/load-deps.html" -}}
23
+ {{- $templateFiles = partial "editable-regions/find-template-files.html" (dict "deps" $deps "exts" $templateExts "ignore" $ignoreDirs) -}}
24
+
25
+ {{- if os.FileExists "_vendor/modules.txt" -}}
26
+ {{- $templateFiles = merge $templateFiles (dict "_vendor/modules.txt" (readFile "_vendor/modules.txt")) -}}
27
+ {{- end -}}
28
+ {{- end -}}
29
+
30
+ {{- $configFiles := dict -}}
31
+ {{- if or $cfg.config_paths $cfg.config_dirs -}}
32
+ {{- range $configPath := $cfg.config_paths | default slice -}}
33
+ {{- if os.FileExists $configPath -}}
34
+ {{- $configFiles = merge $configFiles (dict $configPath (readFile $configPath)) -}}
35
+ {{- end -}}
36
+ {{- end -}}
37
+ {{- range $configDir := $cfg.config_dirs | default slice -}}
38
+ {{- $configFiles = merge $configFiles (partial "editable-regions/find-files-with-extension.html" (dict "dir" $configDir "exts" $configExts)) -}}
39
+ {{- end -}}
40
+ {{- else -}}
41
+ {{- $configFiles = partial "editable-regions/find-config-files.html" -}}
42
+ {{- end -}}
43
+
44
+ {{- if $cfg.i18n_dirs -}}
45
+ {{- range $i18nDir := $cfg.i18n_dirs -}}
46
+ {{- $configFiles = merge $configFiles (partial "editable-regions/find-files-with-extension.html" (dict "dir" $i18nDir "exts" $configExts "ignore" $ignoreDirs)) -}}
47
+ {{- end -}}
48
+ {{- else -}}
49
+ {{- $configFiles = merge $configFiles (partial "editable-regions/find-files-with-extension.html" (dict "dir" "i18n" "exts" $configExts "ignore" $ignoreDirs)) -}}
50
+ {{- end -}}
51
+
52
+ {{- $additionalFiles := dict -}}
53
+ {{- range $additionalPath := $cfg.additional_paths | default slice -}}
54
+ {{- if os.FileExists $additionalPath -}}
55
+ {{- $additionalFiles = merge $additionalFiles (dict $additionalPath (readFile $additionalPath)) -}}
56
+ {{- end -}}
57
+ {{- end -}}
58
+ {{- range $dir, $exts := $cfg.additional_dirs | default dict -}}
59
+ {{- $additionalFiles = merge $additionalFiles (partial "editable-regions/find-files-with-extension.html" (dict
60
+ "dir" $dir
61
+ "exts" (partial "editable-regions/normalize-extensions.html" $exts)
62
+ )) -}}
63
+ {{- end -}}
64
+
65
+ {{- /* Template overrides: key path -> source path; source contents replace
66
+ what discovery captured at the key path, rendering via Hugo's normal
67
+ partial lookup. */ -}}
68
+ {{- range $keyPath, $valuePath := $overrides -}}
69
+ {{- if os.FileExists $valuePath -}}
70
+ {{- $templateFiles = merge $templateFiles (dict $keyPath (readFile $valuePath)) -}}
71
+ {{- end -}}
72
+ {{- end -}}
73
+
74
+ {{- $ctx := dict
75
+ "meta" (dict
76
+ "generator" (printf "Hugo %s" hugo.Version)
77
+ "wasmUrl" $wasmUrl
78
+ "verbose" ($cfg.verbose | default false)
79
+ "env" (hugo.Environment | default "production")
80
+ )
81
+ "files" (merge $templateFiles $configFiles $additionalFiles)
82
+ -}}
83
+ {{- $entry := resources.Get "integrations/hugo/browser/entry.js" -}}
84
+ {{- if not $entry -}}
85
+ {{- errorf "editable-regions: integrations/hugo/browser/entry.js not found in assets — is the editable-regions module imported and mounted?" -}}
86
+ {{- end -}}
87
+ {{- return ($entry | resources.ExecuteAsTemplate "_cloudcannon/live-editing.js" $ctx | js.Build (dict "minify" (not hugo.IsDevelopment)) | fingerprint) -}}
@@ -0,0 +1,28 @@
1
+ {{- $version := .override_version -}}
2
+ {{- if not $version -}}
3
+ {{- range hugo.Deps -}}
4
+ {{- if eq (lower .Path) "github.com/cloudcannon/editable-regions" -}}
5
+ {{- $version = .Version -}}
6
+ {{- end -}}
7
+ {{- end -}}
8
+ {{- end -}}
9
+
10
+ {{- $version = strings.TrimSuffix "+incompatible" $version -}}
11
+ {{- $version = strings.TrimPrefix "v" $version -}}
12
+ {{- $result := "" -}}
13
+ {{- if and $version (ne $version "0.0.0-dev") -}}
14
+ {{- $url := printf "%s/v%s/hugo_renderer.wasm.gz" .base_url $version -}}
15
+ {{- $remote := resources.GetRemote $url -}}
16
+ {{- if not $remote -}}
17
+ {{- errorf "editable-regions: no renderer WASM at %s — the resolved version %q has no release asset. Pin the module to a release tag (not a commit), or set params.editable_regions._version / .wasm_url" $url (printf "v%s" $version) -}}
18
+ {{- else -}}
19
+ {{- $result = (resources.Copy "_cloudcannon/hugo_renderer.wasm.gz" $remote | fingerprint).RelPermalink -}}
20
+ {{- end -}}
21
+ {{- else -}}
22
+ {{- with resources.Get "_cloudcannon/hugo_renderer.wasm.gz" -}}
23
+ {{- $result = (. | fingerprint).RelPermalink -}}
24
+ {{- else -}}
25
+ {{- errorf "editable-regions: no renderer WASM available. Publish a tagged release of the module, or set params.editable_regions.wasm_url, or build the renderer locally with integrations/hugo/renderer/build.sh" -}}
26
+ {{- end -}}
27
+ {{- end -}}
28
+ {{- return $result -}}
@@ -0,0 +1,6 @@
1
+ {{- $bundle := partialCached "editable-regions/resources.html" . -}}
2
+ <script type="module" crossorigin="anonymous" defer>
3
+ if (window.inEditorMode) {
4
+ await import("{{ $bundle.RelPermalink }}");
5
+ }
6
+ </script>
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+ # Builds the Hugo renderer WASM and installs it (gzipped) into the Hugo
3
+ # module's assets directory, where the bundle pipeline fingerprints and
4
+ # publishes it for sites consuming the module.
5
+ set -e
6
+
7
+ cd "$(dirname "$0")"
8
+
9
+ OUTPUT="hugo_renderer.wasm"
10
+ ASSETS_DIR="../hugo-module/assets/_cloudcannon"
11
+
12
+ # -trimpath and -buildvcs=false strip checkout-specific paths and VCS
13
+ # state, so the release asset is reproducible across build machines.
14
+ GOOS=js GOARCH=wasm go build -tags nodeploy -trimpath -buildvcs=false -ldflags="-s -w" -o "$OUTPUT"
15
+ printf "Built Hugo renderer WASM: "
16
+ ls -lh "$OUTPUT" | awk '{print $5}'
17
+
18
+ mkdir -p "$ASSETS_DIR"
19
+ # -n: no embedded timestamp, so identical builds produce identical bytes and
20
+ # the fingerprinted URL only changes when the renderer actually changes.
21
+ gzip --keep --force -n "$OUTPUT"
22
+ mv "$OUTPUT.gz" "$ASSETS_DIR/hugo_renderer.wasm.gz"
23
+ printf "Compressed renderer installed at $ASSETS_DIR/hugo_renderer.wasm.gz: "
24
+ ls -lh "$ASSETS_DIR/hugo_renderer.wasm.gz" | awk '{print $5}'
@@ -0,0 +1,100 @@
1
+ module hugo-editor-renderer
2
+
3
+ go 1.26.0
4
+
5
+ require (
6
+ github.com/fsnotify/fsnotify v1.9.0
7
+ github.com/goccy/go-yaml v1.19.2
8
+ github.com/gohugoio/hugo v0.164.0
9
+ github.com/spf13/afero v1.15.0
10
+ )
11
+
12
+ require (
13
+ github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69 // indirect
14
+ github.com/JohannesKaufmann/dom v0.3.1 // indirect
15
+ github.com/JohannesKaufmann/html-to-markdown/v2 v2.5.2 // indirect
16
+ github.com/alecthomas/chroma/v2 v2.27.0 // indirect
17
+ github.com/aymerick/douceur v0.2.0 // indirect
18
+ github.com/bep/clocks v0.5.0 // indirect
19
+ github.com/bep/debounce v1.2.0 // indirect
20
+ github.com/bep/gitmap v1.9.0 // indirect
21
+ github.com/bep/goat v0.5.0 // indirect
22
+ github.com/bep/godartsass/v2 v2.5.0 // indirect
23
+ github.com/bep/golibsass v1.2.0 // indirect
24
+ github.com/bep/golocales v0.2.0 // indirect
25
+ github.com/bep/goportabletext v0.2.0 // indirect
26
+ github.com/bep/helpers v0.12.0 // indirect
27
+ github.com/bep/imagemeta v0.17.2 // indirect
28
+ github.com/bep/lazycache v0.8.1 // indirect
29
+ github.com/bep/logg v0.4.0 // indirect
30
+ github.com/bep/overlayfs v0.11.0 // indirect
31
+ github.com/bep/textandbinarywriter v0.1.0 // indirect
32
+ github.com/bep/tmc v0.6.0 // indirect
33
+ github.com/bits-and-blooms/bitset v1.24.5 // indirect
34
+ github.com/cespare/xxhash/v2 v2.3.0 // indirect
35
+ github.com/clbanning/mxj/v2 v2.7.0 // indirect
36
+ github.com/clipperhouse/displaywidth v0.10.0 // indirect
37
+ github.com/clipperhouse/uax29/v2 v2.6.0 // indirect
38
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
39
+ github.com/dlclark/regexp2/v2 v2.2.1 // indirect
40
+ github.com/evanw/esbuild v0.28.1 // indirect
41
+ github.com/fatih/color v1.18.0 // indirect
42
+ github.com/frankban/quicktest v1.14.6 // indirect
43
+ github.com/getkin/kin-openapi v0.140.0 // indirect
44
+ github.com/go-openapi/jsonpointer v0.22.5 // indirect
45
+ github.com/go-openapi/swag/jsonname v0.25.5 // indirect
46
+ github.com/gobuffalo/flect v1.0.3 // indirect
47
+ github.com/gobwas/glob v0.2.3 // indirect
48
+ github.com/gohugoio/gift v0.2.0 // indirect
49
+ github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6 // indirect
50
+ github.com/gohugoio/go-radix v1.2.0 // indirect
51
+ github.com/gohugoio/hashstructure v0.6.0 // indirect
52
+ github.com/gohugoio/httpcache v0.8.0 // indirect
53
+ github.com/gohugoio/hugo-goldmark-extensions/extras v0.7.0 // indirect
54
+ github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.5.0 // indirect
55
+ github.com/google/go-cmp v0.7.0 // indirect
56
+ github.com/gorilla/css v1.0.1 // indirect
57
+ github.com/hairyhenderson/go-codeowners v0.7.0 // indirect
58
+ github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
59
+ github.com/jdkato/prose v1.2.1 // indirect
60
+ github.com/kr/pretty v0.3.1 // indirect
61
+ github.com/kr/text v0.2.0 // indirect
62
+ github.com/kyokomi/emoji/v2 v2.2.13 // indirect
63
+ github.com/makeworld-the-better-one/dither/v2 v2.4.0 // indirect
64
+ github.com/marekm4/color-extractor v1.2.1 // indirect
65
+ github.com/mattn/go-colorable v0.1.14 // indirect
66
+ github.com/mattn/go-isatty v0.0.22 // indirect
67
+ github.com/mattn/go-runewidth v0.0.19 // indirect
68
+ github.com/microcosm-cc/bluemonday v1.0.27 // indirect
69
+ github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect
70
+ github.com/muesli/smartcrop v0.3.0 // indirect
71
+ github.com/niklasfasching/go-org v1.9.1 // indirect
72
+ github.com/oasdiff/yaml v0.1.0 // indirect
73
+ github.com/oasdiff/yaml3 v0.0.13 // indirect
74
+ github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
75
+ github.com/olekukonko/errors v1.2.0 // indirect
76
+ github.com/olekukonko/ll v0.1.6 // indirect
77
+ github.com/olekukonko/tablewriter v1.1.4 // indirect
78
+ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
79
+ github.com/pelletier/go-toml/v2 v2.4.3 // indirect
80
+ github.com/pkg/errors v0.9.1 // indirect
81
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
82
+ github.com/rogpeppe/go-internal v1.15.0 // indirect
83
+ github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
84
+ github.com/spf13/cast v1.10.0 // indirect
85
+ github.com/stretchr/testify v1.11.1 // indirect
86
+ github.com/tdewolff/minify/v2 v2.24.13 // indirect
87
+ github.com/tdewolff/parse/v2 v2.8.12 // indirect
88
+ github.com/tetratelabs/wazero v1.12.0 // indirect
89
+ github.com/yuin/goldmark v1.8.2 // indirect
90
+ github.com/yuin/goldmark-emoji v1.0.6 // indirect
91
+ golang.org/x/image v0.43.0 // indirect
92
+ golang.org/x/mod v0.37.0 // indirect
93
+ golang.org/x/net v0.56.0 // indirect
94
+ golang.org/x/sync v0.21.0 // indirect
95
+ golang.org/x/sys v0.46.0 // indirect
96
+ golang.org/x/text v0.38.0 // indirect
97
+ golang.org/x/tools v0.47.0 // indirect
98
+ google.golang.org/protobuf v1.36.11 // indirect
99
+ rsc.io/qr v0.2.0 // indirect
100
+ )
@@ -0,0 +1,241 @@
1
+ github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69 h1:+tu3HOoMXB7RXEINRVIpxJCT+KdYiI7LAEAUrOw3dIU=
2
+ github.com/BurntSushi/locker v0.0.0-20171006230638-a6e239ea1c69/go.mod h1:L1AbZdiDllfyYH5l5OkAaZtk7VkWe89bPJFmnDBNHxg=
3
+ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
4
+ github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
5
+ github.com/JohannesKaufmann/dom v0.3.1 h1:J16l9JAHWgkFPR3VIPbQ1gvS0cWab6laK1q7PFL3qh0=
6
+ github.com/JohannesKaufmann/dom v0.3.1/go.mod h1:BZPkf8ZeYrBgABjwJn9iiKt8aiCtkxpHkevms+Yp2DE=
7
+ github.com/JohannesKaufmann/html-to-markdown/v2 v2.5.2 h1:XFJZFWESIWlUEHHjzBuv8RvrtCWnSGlimEX17ysSDb8=
8
+ github.com/JohannesKaufmann/html-to-markdown/v2 v2.5.2/go.mod h1:BHWO8lJzttJLqwuV8Rb1B3OG2OSzLbssZDI1FRg2eAA=
9
+ github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
10
+ github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
11
+ github.com/alecthomas/chroma/v2 v2.27.0 h1:FodwmyOBgJULFYmDqibcp9pvfDLWdtPRh9v/r5BXYZs=
12
+ github.com/alecthomas/chroma/v2 v2.27.0/go.mod h1:NjJ3ciIgrqBNeIkWZ4e46nseoLDslxU1LmfCoL+wcY8=
13
+ github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs=
14
+ github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
15
+ github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
16
+ github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
17
+ github.com/bep/clocks v0.5.0 h1:hhvKVGLPQWRVsBP/UB7ErrHYIO42gINVbvqxvYTPVps=
18
+ github.com/bep/clocks v0.5.0/go.mod h1:SUq3q+OOq41y2lRQqH5fsOoxN8GbxSiT6jvoVVLCVhU=
19
+ github.com/bep/debounce v1.2.0 h1:wXds8Kq8qRfwAOpAxHrJDbCXgC5aHSzgQb/0gKsHQqo=
20
+ github.com/bep/debounce v1.2.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
21
+ github.com/bep/gitmap v1.9.0 h1:2pyb1ex+cdwF6c4tsrhEgEKfyNfxE34d5K+s2sa9byc=
22
+ github.com/bep/gitmap v1.9.0/go.mod h1:Juq6e1qqCRvc1W7nzgadPGI9IGV13ZncEebg5atj4Vo=
23
+ github.com/bep/goat v0.5.0 h1:S8jLXHCVy/EHIoCY+btKkmcxcXFd34a0Q63/0D4TKeA=
24
+ github.com/bep/goat v0.5.0/go.mod h1:Md9x7gRxiWKs85yHlVTvHQw9rg86Bm+Y4SuYE8CTH7c=
25
+ github.com/bep/godartsass/v2 v2.5.0 h1:tKRvwVdyjCIr48qgtLa4gHEdtRkPF8H1OeEhJAEv7xg=
26
+ github.com/bep/godartsass/v2 v2.5.0/go.mod h1:rjsi1YSXAl/UbsGL85RLDEjRKdIKUlMQHr6ChUNYOFU=
27
+ github.com/bep/golibsass v1.2.0 h1:nyZUkKP/0psr8nT6GR2cnmt99xS93Ji82ZD9AgOK6VI=
28
+ github.com/bep/golibsass v1.2.0/go.mod h1:DL87K8Un/+pWUS75ggYv41bliGiolxzDKWJAq3eJ1MA=
29
+ github.com/bep/golocales v0.2.0 h1:4H1H5UPw3ainpj5zykeEfiMRQngyaIC/t+I4Dvn+fvE=
30
+ github.com/bep/golocales v0.2.0/go.mod h1:Hl78nje8mNL3LzLeJvYN9NsIZgyFJGrGfvgO9r1+mwE=
31
+ github.com/bep/goportabletext v0.2.0 h1:CZ9f8jADBWqHwBymQiJJPCTSV/tHSA+PYzlUf86Yze0=
32
+ github.com/bep/goportabletext v0.2.0/go.mod h1:xDeA5+qcgKzJq6Q6XjAiBKtxLD3Yn7f6XP4joD3J3qU=
33
+ github.com/bep/helpers v0.12.0 h1:tD6V2DQW0B+FUynF2etR/106S/TO9akm+vA/Hk24GxY=
34
+ github.com/bep/helpers v0.12.0/go.mod h1:PfE7MGdA8sSQ19nyDh4tYbs5rAlStlJaDI21f/fnNps=
35
+ github.com/bep/imagemeta v0.17.2 h1:fDyXM1eAqCfBeqGLqS6UsN4OfuLM0cdu70KuLCehjOg=
36
+ github.com/bep/imagemeta v0.17.2/go.mod h1:+Hlp195TfZpzsqCxtDKTG6eWdyz2+F2V/oCYfr3CZKA=
37
+ github.com/bep/lazycache v0.8.1 h1:ko6ASLjkPxyV5DMWoNNZ8B2M0weyjqXX8IZkjBoBtvg=
38
+ github.com/bep/lazycache v0.8.1/go.mod h1:pbEiFsZoq7cLXvrTll0AHOPEurB1aGGxx4jKjOtlx9w=
39
+ github.com/bep/logg v0.4.0 h1:luAo5mO4ZkhA5M1iDVDqDqnBBnlHjmtZF6VAyTp+nCQ=
40
+ github.com/bep/logg v0.4.0/go.mod h1:Ccp9yP3wbR1mm++Kpxet91hAZBEQgmWgFgnXX3GkIV0=
41
+ github.com/bep/overlayfs v0.11.0 h1:aymHDGC0CHpvn0XvTfgpK6skCp16oMi+tdUF32l6pPs=
42
+ github.com/bep/overlayfs v0.11.0/go.mod h1:L+ggdoKm+Y7Xb4a1osd+/LOPG4qsY62snqRqJH5Mspc=
43
+ github.com/bep/textandbinarywriter v0.1.0 h1:KXmXsRN2Uhwhm1G3e/snM8+5SPQBJrCEpIosdIBR3po=
44
+ github.com/bep/textandbinarywriter v0.1.0/go.mod h1:dAcHveajlWWU7PXhp6Dn4PIAYDg2H13Huif9xMS2w8w=
45
+ github.com/bep/tmc v0.6.0 h1:5zWy4L+3gS+Kk8czzLC4g7ETaC3wkX9ZtTRdAdL8V4s=
46
+ github.com/bep/tmc v0.6.0/go.mod h1:SNHxc3o2WSNMAYqJcAO0rxFY+pbhZzMwjIHe5xaAue0=
47
+ github.com/bits-and-blooms/bitset v1.24.5 h1:654xBVHc23gJMAgOTkPNoCVfiRxuIOAUnAZFtopqJ4w=
48
+ github.com/bits-and-blooms/bitset v1.24.5/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
49
+ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
50
+ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
51
+ github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
52
+ github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
53
+ github.com/clipperhouse/displaywidth v0.10.0 h1:GhBG8WuerxjFQQYeuZAeVTuyxuX+UraiZGD4HJQ3Y8g=
54
+ github.com/clipperhouse/displaywidth v0.10.0/go.mod h1:XqJajYsaiEwkxOj4bowCTMcT1SgvHo9flfF3jQasdbs=
55
+ github.com/clipperhouse/uax29/v2 v2.6.0 h1:z0cDbUV+aPASdFb2/ndFnS9ts/WNXgTNNGFoKXuhpos=
56
+ github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
57
+ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
58
+ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
59
+ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
60
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
61
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
62
+ github.com/dlclark/regexp2 v1.12.0 h1:0j4c5qQmnC6XOWNjP3PIXURXN2gWx76rd3KvgdPkCz8=
63
+ github.com/dlclark/regexp2 v1.12.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
64
+ github.com/dlclark/regexp2/v2 v2.2.1 h1:mf4KkFUj0gJuarK8P+LgiS+Lit7m9N1yAwEfPbee7R0=
65
+ github.com/dlclark/regexp2/v2 v2.2.1/go.mod h1:avUrQvPaLz2DrFNHJF0taWAFFX2C1GMSSoeiqFjcBmU=
66
+ github.com/evanw/esbuild v0.28.1 h1:ds+yuRyUaZGx++GR56CrCeuXh8PVhVM4xq8v7PNELFc=
67
+ github.com/evanw/esbuild v0.28.1/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48=
68
+ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
69
+ github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
70
+ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
71
+ github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
72
+ github.com/frankban/quicktest v1.7.2/go.mod h1:jaStnuzAqU1AJdCO0l53JDCJrVDKcS03DbaAcR7Ks/o=
73
+ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
74
+ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
75
+ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
76
+ github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
77
+ github.com/getkin/kin-openapi v0.140.0 h1:JFn675aXRFjyiZKa/BFWploGldQlI0gobp4J5k0EZ2g=
78
+ github.com/getkin/kin-openapi v0.140.0/go.mod h1:lISrB64F0CPcuDJ3LdtPTMJBY8VENjR9wJBdrcT6J3g=
79
+ github.com/go-openapi/jsonpointer v0.22.5 h1:8on/0Yp4uTb9f4XvTrM2+1CPrV05QPZXu+rvu2o9jcA=
80
+ github.com/go-openapi/jsonpointer v0.22.5/go.mod h1:gyUR3sCvGSWchA2sUBJGluYMbe1zazrYWIkWPjjMUY0=
81
+ github.com/go-openapi/swag/jsonname v0.25.5 h1:8p150i44rv/Drip4vWI3kGi9+4W9TdI3US3uUYSFhSo=
82
+ github.com/go-openapi/swag/jsonname v0.25.5/go.mod h1:jNqqikyiAK56uS7n8sLkdaNY/uq6+D2m2LANat09pKU=
83
+ github.com/go-openapi/testify/v2 v2.4.0 h1:8nsPrHVCWkQ4p8h1EsRVymA2XABB4OT40gcvAu+voFM=
84
+ github.com/go-openapi/testify/v2 v2.4.0/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54=
85
+ github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=
86
+ github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=
87
+ github.com/gobuffalo/flect v1.0.3 h1:xeWBM2nui+qnVvNM4S3foBhCAL2XgPU+a7FdpelbTq4=
88
+ github.com/gobuffalo/flect v1.0.3/go.mod h1:A5msMlrHtLqh9umBSnvabjsMrCcCpAyzglnDvkbYKHs=
89
+ github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
90
+ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
91
+ github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM=
92
+ github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
93
+ github.com/gohugoio/gift v0.2.0 h1:vA31pP0rTVmBxBrhpY3WEt+4zM4g+1sDqYeemwsYeqc=
94
+ github.com/gohugoio/gift v0.2.0/go.mod h1:1Mrm5CjF33KpD749Dwj+UAjWZ3LC6cBXGuTMa5XwoP4=
95
+ github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6 h1:pxlAea9eRwuAnt/zKbGqlFO2ZszpIe24YpOVLf+N+4I=
96
+ github.com/gohugoio/go-i18n/v2 v2.1.3-0.20251018145728-cfcc22d823c6/go.mod h1:m5hu1im5Qc7LDycVLvee6MPobJiRLBYHklypFJR0/aE=
97
+ github.com/gohugoio/go-radix v1.2.0 h1:D5GTk8jIoeXirBSc2P4E4NdHKDrenk9k9N0ctU5Yrhg=
98
+ github.com/gohugoio/go-radix v1.2.0/go.mod h1:k6vDa0ebpbpgtzSj9lPGJcA4AZwJ9xUNObUy2vczPFM=
99
+ github.com/gohugoio/hashstructure v0.6.0 h1:7wMB/2CfXoThFYhdWRGv3u3rUM761Cq29CxUW+NltUg=
100
+ github.com/gohugoio/hashstructure v0.6.0/go.mod h1:lapVLk9XidheHG1IQ4ZSbyYrXcaILU1ZEP/+vno5rBQ=
101
+ github.com/gohugoio/httpcache v0.8.0 h1:hNdsmGSELztetYCsPVgjA960zSa4dfEqqF/SficorCU=
102
+ github.com/gohugoio/httpcache v0.8.0/go.mod h1:fMlPrdY/vVJhAriLZnrF5QpN3BNAcoBClgAyQd+lGFI=
103
+ github.com/gohugoio/hugo v0.164.0 h1:oDElnVJNvDMpEOeoxBjzW8JTFk7u+gJj2kG74BsfXlM=
104
+ github.com/gohugoio/hugo v0.164.0/go.mod h1:QPBCN6Gntmm6YrYJEnTasaZjnMLRkv8YoyCOw7mo9JE=
105
+ github.com/gohugoio/hugo-goldmark-extensions/extras v0.7.0 h1:I/n6v7VImJ3aISLnn73JAHXyjcQsMVvbguQPTk9Ehus=
106
+ github.com/gohugoio/hugo-goldmark-extensions/extras v0.7.0/go.mod h1:9LJNfKWFmhEJ7HW0in5znezMwH+FYMBIhNZ3VWtRcRs=
107
+ github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.5.0 h1:p13Q0DBCrBRpJGtbtlgkYNCs4TnIlZJh8vHgnAiofrI=
108
+ github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.5.0/go.mod h1:ob9PCHy/ocsQhTz68uxhyInaYCbbVNpOOrJkIoSeD+8=
109
+ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
110
+ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
111
+ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
112
+ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
113
+ github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
114
+ github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
115
+ github.com/hairyhenderson/go-codeowners v0.7.0 h1:s0W4wF8bdsBEjTWzwzSlsatSthWtTAF2xLgo4a4RwAo=
116
+ github.com/hairyhenderson/go-codeowners v0.7.0/go.mod h1:wUlNgQ3QjqC4z8DnM5nnCYVq/icpqXJyJOukKx5U8/Q=
117
+ github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
118
+ github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
119
+ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
120
+ github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
121
+ github.com/jdkato/prose v1.2.1 h1:Fp3UnJmLVISmlc57BgKUzdjr0lOtjqTZicL3PaYy6cU=
122
+ github.com/jdkato/prose v1.2.1/go.mod h1:AiRHgVagnEx2JbQRQowVBKjG0bcs/vtkGCH1dYAL1rA=
123
+ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
124
+ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
125
+ github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
126
+ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
127
+ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
128
+ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
129
+ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
130
+ github.com/kyokomi/emoji/v2 v2.2.13 h1:GhTfQa67venUUvmleTNFnb+bi7S3aocF7ZCXU9fSO7U=
131
+ github.com/kyokomi/emoji/v2 v2.2.13/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE=
132
+ github.com/makeworld-the-better-one/dither/v2 v2.4.0 h1:Az/dYXiTcwcRSe59Hzw4RI1rSnAZns+1msaCXetrMFE=
133
+ github.com/makeworld-the-better-one/dither/v2 v2.4.0/go.mod h1:VBtN8DXO7SNtyGmLiGA7IsFeKrBkQPze1/iAeM95arc=
134
+ github.com/marekm4/color-extractor v1.2.1 h1:3Zb2tQsn6bITZ8MBVhc33Qn1k5/SEuZ18mrXGUqIwn0=
135
+ github.com/marekm4/color-extractor v1.2.1/go.mod h1:90VjmiHI6M8ez9eYUaXLdcKnS+BAOp7w+NpwBdkJmpA=
136
+ github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
137
+ github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
138
+ github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
139
+ github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
140
+ github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
141
+ github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
142
+ github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk=
143
+ github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA=
144
+ github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE=
145
+ github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
146
+ github.com/montanaflynn/stats v0.6.3/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
147
+ github.com/muesli/smartcrop v0.3.0 h1:JTlSkmxWg/oQ1TcLDoypuirdE8Y/jzNirQeLkxpA6Oc=
148
+ github.com/muesli/smartcrop v0.3.0/go.mod h1:i2fCI/UorTfgEpPPLWiFBv4pye+YAG78RwcQLUkocpI=
149
+ github.com/neurosnap/sentences v1.0.6/go.mod h1:pg1IapvYpWCJJm/Etxeh0+gtMf1rI1STY9S7eUCPbDc=
150
+ github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
151
+ github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
152
+ github.com/niklasfasching/go-org v1.9.1 h1:/3s4uTPOF06pImGa2Yvlp24yKXZoTYM+nsIlMzfpg/0=
153
+ github.com/niklasfasching/go-org v1.9.1/go.mod h1:ZAGFFkWvUQcpazmi/8nHqwvARpr1xpb+Es67oUGX/48=
154
+ github.com/oasdiff/yaml v0.1.0 h1:0bqZjfKc/8S9urj4JuwepX41WX9EoA6ifhU3SV06cXg=
155
+ github.com/oasdiff/yaml v0.1.0/go.mod h1:kOlRmMdL2X3vucLCEQO5u61SU22RysnfXvcttrZA1O0=
156
+ github.com/oasdiff/yaml3 v0.0.13 h1:06svmvOHOVBqF81+sY2EUScvUI/iS/vl2VIeUUxZQwg=
157
+ github.com/oasdiff/yaml3 v0.0.13/go.mod h1:y5+oSEHCPT/DGrS++Wc/479ERge0zTFxaF8PbGKcg2o=
158
+ github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
159
+ github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
160
+ github.com/olekukonko/errors v1.2.0 h1:10Zcn4GeV59t/EGqJc8fUjtFT/FuUh5bTMzZ1XwmCRo=
161
+ github.com/olekukonko/errors v1.2.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
162
+ github.com/olekukonko/ll v0.1.6 h1:lGVTHO+Qc4Qm+fce/2h2m5y9LvqaW+DCN7xW9hsU3uA=
163
+ github.com/olekukonko/ll v0.1.6/go.mod h1:NVUmjBb/aCtUpjKk75BhWrOlARz3dqsM+OtszpY4o88=
164
+ github.com/olekukonko/tablewriter v1.1.4 h1:ORUMI3dXbMnRlRggJX3+q7OzQFDdvgbN9nVWj1drm6I=
165
+ github.com/olekukonko/tablewriter v1.1.4/go.mod h1:+kedxuyTtgoZLwif3P1Em4hARJs+mVnzKxmsCL/C5RY=
166
+ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
167
+ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
168
+ github.com/pelletier/go-toml/v2 v2.4.3 h1:GTRvJQutkOSftxIFD5xw9aepkYNuPWmVJpffdDPYVpY=
169
+ github.com/pelletier/go-toml/v2 v2.4.3/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
170
+ github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
171
+ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
172
+ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
173
+ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
174
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
175
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
176
+ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
177
+ github.com/rogpeppe/go-internal v1.15.0 h1:D0RCU5rMAp+SpgkiNdrjfJ+LX4J1M32V2NeCY7EJ6hc=
178
+ github.com/rogpeppe/go-internal v1.15.0/go.mod h1:DrUVZyrJU+txYW5/1kwtXQSMFio52ZOxX7yM1VHvnxs=
179
+ github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc=
180
+ github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk=
181
+ github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ=
182
+ github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
183
+ github.com/sebdah/goldie/v2 v2.8.0 h1:dZb9wR8q5++oplmEiJT+U/5KyotVD+HNGCAc5gNr8rc=
184
+ github.com/sebdah/goldie/v2 v2.8.0/go.mod h1:oZ9fp0+se1eapSRjfYbsV/0Hqhbuu3bJVvKI/NNtssI=
185
+ github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
186
+ github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
187
+ github.com/shogo82148/go-shuffle v0.0.0-20180218125048-27e6095f230d/go.mod h1:2htx6lmL0NGLHlO8ZCf+lQBGBHIbEujyywxJArf+2Yc=
188
+ github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I=
189
+ github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg=
190
+ github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
191
+ github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
192
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
193
+ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
194
+ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
195
+ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
196
+ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
197
+ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
198
+ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
199
+ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
200
+ github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
201
+ github.com/tdewolff/minify/v2 v2.24.13 h1:xrcF7gKDnUszseEY9WX9mUlZII2v2Go/QAcAwRASw58=
202
+ github.com/tdewolff/minify/v2 v2.24.13/go.mod h1:emvwoYeIl8bfAKqRU5ww95LX9Gpggpqv/naal9a8Yq0=
203
+ github.com/tdewolff/parse/v2 v2.8.12 h1:5BBjfaCv482v3nltlS0u6wH1xJaxjR6ofDrWttNvROg=
204
+ github.com/tdewolff/parse/v2 v2.8.12/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo=
205
+ github.com/tdewolff/test v1.0.11/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8=
206
+ github.com/tdewolff/test v1.0.12 h1:7F21DqIajswxuche0geHdrUZRCWE4oko4b7bcmkkrxk=
207
+ github.com/tdewolff/test v1.0.12/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8=
208
+ github.com/tetratelabs/wazero v1.12.0 h1:DuWcpNu/FzgEXgGBDp8J1Spc+CWOvvtvVyjKlaZopYU=
209
+ github.com/tetratelabs/wazero v1.12.0/go.mod h1:LvKtzl2RqO4gyF27BiXU+nKAjcV8f38U+kP/q2vgxh0=
210
+ github.com/yuin/goldmark v1.8.2 h1:kEGpgqJXdgbkhcOgBxkC0X0PmoPG1ZyoZ117rDVp4zE=
211
+ github.com/yuin/goldmark v1.8.2/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
212
+ github.com/yuin/goldmark-emoji v1.0.6 h1:QWfF2FYaXwL74tfGOW5izeiZepUDroDJfWubQI9HTHs=
213
+ github.com/yuin/goldmark-emoji v1.0.6/go.mod h1:ukxJDKFpdFb5x0a5HqbdlcKtebh086iJpI31LTKmWuA=
214
+ golang.org/x/image v0.43.0 h1:FLxcP4ec2350nTfOC8ysKtqYSIFbk/QGjw1ZHNP4tsY=
215
+ golang.org/x/image v0.43.0/go.mod h1:rrpelvGFt+kLPAjPM4HeWPgrl0FtafueU//e5N0qk/Q=
216
+ golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
217
+ golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
218
+ golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
219
+ golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
220
+ golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
221
+ golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
222
+ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
223
+ golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
224
+ golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
225
+ golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
226
+ golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
227
+ golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q=
228
+ golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA=
229
+ google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
230
+ google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
231
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
232
+ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
233
+ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
234
+ gopkg.in/neurosnap/sentences.v1 v1.0.6/go.mod h1:YlK+SN+fLQZj+kY3r8DkGDhDr91+S3JmTb5LSxFRQo0=
235
+ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
236
+ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
237
+ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
238
+ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
239
+ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
240
+ rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
241
+ rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs=