Compare commits

...

12 Commits
v3.45.4 ... tui

Author SHA1 Message Date
Andrey Nering
ca93c2be86 feat: getting starting with a tui 2025-10-02 14:20:33 -03:00
Pete Davison
4e84c6bb76 fix: links to static files 2025-09-23 22:34:43 +00:00
merusso
0f9baf62a1 docs: Update Remote Taskfiles default values (#2430)
* docs: Update Remote Taskfiles default values

This change updates the documentation for [Remote Taskfiles > Configuration](https://taskfile.dev/docs/experiments/remote-taskfiles#configuration) for `timeout` and `cache-expiry` to match the defaults in code.

* docs: Update `cache-expiry` default to 0s

* docs: Update executor.go comment

Fix doc comment to indicate that cache expiry default duration is 0.
2025-09-23 13:10:20 +01:00
renovate[bot]
979ad523ef chore(deps): update mvdan.cc/sh/moreinterp digest to 1714925 (#2435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-22 09:30:52 -03:00
renovate[bot]
975c07688e chore(deps): update all non-major dependencies (#2436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-22 09:30:29 -03:00
Andrey Nering
67a02255b5 docs(changelog): add entry for #2431 2025-09-21 16:12:06 -03:00
Andrey Nering
028ae1a660 fix: fix message shown when a taskfile was not found (#2431) 2025-09-21 16:10:06 -03:00
Andrey Nering
68b1d2783d lint: fix lint by passing context 2025-09-21 16:09:51 -03:00
Andrey Nering
12793c350d chore: delete unused file cmd/tmp/main.go 2025-09-21 16:09:51 -03:00
Andrey Nering
8716ab81be docs: remove ga 2025-09-17 18:39:09 -03:00
Andrey Nering
c2a4e4470b docs: update sprig links to our domain 2025-09-17 18:32:49 -03:00
Valentin Maerten
f5a8ec8a0c fix: changelog in website 2025-09-17 17:12:57 +02:00
24 changed files with 466 additions and 325 deletions

View File

@@ -1,15 +1,12 @@
{ {
"yaml.schemas": { "yaml.schemas": {
"./website/static/schema.json": [ "./website/src/public/schema.json": [
"Taskfile.yml", "Taskfile.yml",
"tmp/**/*.yml" "Taskfile.yaml",
"taskfile.yml",
"taskfile.yaml"
] ]
}, },
"search.exclude": {
"**/versioned_docs": true,
"**/versioned_sidesbars": true,
"**/i18n": true
},
"gopls": { "gopls": {
"formatting.local": "github.com/go-task" "formatting.local": "github.com/go-task"
}, },

View File

@@ -1,5 +1,10 @@
# Changelog # Changelog
## Unreleased
- Fixed bug that made a generic message, instead of an useful one, appear when
a Taskfile could not be found (#2431 by @andreynering).
## v3.45.4 - 2025-09-17 ## v3.45.4 - 2025-09-17
- Fixed a bug where `cache-expiry` could not be defined in `.taskrc.yml` (#2423 - Fixed a bug where `cache-expiry` could not be defined in `.taskrc.yml` (#2423

View File

@@ -15,6 +15,7 @@ import (
"github.com/go-task/task/v3/internal/filepathext" "github.com/go-task/task/v3/internal/filepathext"
"github.com/go-task/task/v3/internal/flags" "github.com/go-task/task/v3/internal/flags"
"github.com/go-task/task/v3/internal/logger" "github.com/go-task/task/v3/internal/logger"
"github.com/go-task/task/v3/internal/tui"
"github.com/go-task/task/v3/internal/version" "github.com/go-task/task/v3/internal/version"
"github.com/go-task/task/v3/taskfile/ast" "github.com/go-task/task/v3/taskfile/ast"
) )
@@ -101,6 +102,10 @@ func run() error {
return nil return nil
} }
if flags.TUI {
return tui.Run()
}
if flags.Completion != "" { if flags.Completion != "" {
script, err := task.Completion(flags.Completion) script, err := task.Completion(flags.Completion)
if err != nil { if err != nil {

View File

@@ -1,38 +0,0 @@
package main
import (
"context"
"fmt"
"net/http"
"time"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond)
defer cancel()
if err := run(ctx); err != nil {
fmt.Println(ctx.Err())
fmt.Println(err)
}
}
func run(ctx context.Context) error {
req, err := http.NewRequest("GET", "https://taskfile.dev/schema.json", nil)
if err != nil {
fmt.Println(1)
return err
}
resp, err := http.DefaultClient.Do(req.WithContext(ctx))
if err != nil {
if ctx.Err() != nil {
fmt.Println(2)
return err
}
fmt.Println(3)
return err
}
defer resp.Body.Close()
return nil
}

View File

@@ -11,14 +11,18 @@ import (
// TaskfileNotFoundError is returned when no appropriate Taskfile is found when // TaskfileNotFoundError is returned when no appropriate Taskfile is found when
// searching the filesystem. // searching the filesystem.
type TaskfileNotFoundError struct { type TaskfileNotFoundError struct {
URI string URI string
Walk bool Walk bool
AskInit bool
} }
func (err TaskfileNotFoundError) Error() string { func (err TaskfileNotFoundError) Error() string {
var walkText string var walkText string
if err.Walk { if err.Walk {
walkText = " (or any of the parent directories)" walkText = " (or any of the parent directories)."
}
if err.AskInit {
walkText += " Run `task --init` to create a new Taskfile."
} }
return fmt.Sprintf(`task: No Taskfile found at %q%s`, err.URI, walkText) return fmt.Sprintf(`task: No Taskfile found at %q%s`, err.URI, walkText)
} }

View File

@@ -240,7 +240,7 @@ func (o *timeoutOption) ApplyToExecutor(e *Executor) {
} }
// WithCacheExpiryDuration sets the duration after which the cache is considered // WithCacheExpiryDuration sets the duration after which the cache is considered
// expired. By default, the cache is considered expired after 24 hours. // expired. By default, the cache is 0 (disabled).
func WithCacheExpiryDuration(duration time.Duration) ExecutorOption { func WithCacheExpiryDuration(duration time.Duration) ExecutorOption {
return &cacheExpiryDurationOption{duration: duration} return &cacheExpiryDurationOption{duration: duration}
} }

20
go.mod
View File

@@ -7,6 +7,10 @@ require (
github.com/Masterminds/semver/v3 v3.4.0 github.com/Masterminds/semver/v3 v3.4.0
github.com/alecthomas/chroma/v2 v2.20.0 github.com/alecthomas/chroma/v2 v2.20.0
github.com/chainguard-dev/git-urls v1.0.2 github.com/chainguard-dev/git-urls v1.0.2
github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3
github.com/charmbracelet/lipgloss/v2 v2.0.0-beta.3
github.com/charmbracelet/x/exp/charmtone v0.0.0-20250930200525-31788bbe6486
github.com/davecgh/go-spew v1.1.1 github.com/davecgh/go-spew v1.1.1
github.com/dominikbraun/graph v0.23.0 github.com/dominikbraun/graph v0.23.0
github.com/elliotchance/orderedmap/v3 v3.1.0 github.com/elliotchance/orderedmap/v3 v3.1.0
@@ -28,7 +32,7 @@ require (
golang.org/x/sync v0.17.0 golang.org/x/sync v0.17.0
golang.org/x/term v0.35.0 golang.org/x/term v0.35.0
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
mvdan.cc/sh/moreinterp v0.0.0-20250915182820-b717ad599e17 mvdan.cc/sh/moreinterp v0.0.0-20250921194925-171492585d48
mvdan.cc/sh/v3 v3.12.0 mvdan.cc/sh/v3 v3.12.0
) )
@@ -36,6 +40,14 @@ require (
dario.cat/mergo v1.0.0 // indirect dario.cat/mergo v1.0.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.1.6 // indirect github.com/ProtonMail/go-crypto v1.1.6 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/charmbracelet/colorprofile v0.3.1 // indirect
github.com/charmbracelet/x/ansi v0.8.0 // indirect
github.com/charmbracelet/x/cellbuf v0.0.14-0.20250501183327-ad3bc78c6a81 // indirect
github.com/charmbracelet/x/exp/color v0.0.0-20250915100343-2c2e5896ae6e // indirect
github.com/charmbracelet/x/input v0.3.5-0.20250424101541-abb4d9a9b197 // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/charmbracelet/x/windows v0.2.1 // indirect
github.com/cloudflare/circl v1.6.1 // indirect github.com/cloudflare/circl v1.6.1 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/dlclark/regexp2 v1.11.5 // indirect github.com/dlclark/regexp2 v1.11.5 // indirect
@@ -48,17 +60,23 @@ require (
github.com/klauspost/compress v1.17.4 // indirect github.com/klauspost/compress v1.17.4 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/klauspost/pgzip v1.2.6 // indirect github.com/klauspost/pgzip v1.2.6 // indirect
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/pjbgf/sha1cd v0.3.2 // indirect github.com/pjbgf/sha1cd v0.3.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/sahilm/fuzzy v0.1.1 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/skeema/knownhosts v1.3.1 // indirect github.com/skeema/knownhosts v1.3.1 // indirect
github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/objx v0.5.2 // indirect
github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7 // indirect github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7 // indirect
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
golang.org/x/crypto v0.37.0 // indirect golang.org/x/crypto v0.37.0 // indirect
golang.org/x/net v0.39.0 // indirect golang.org/x/net v0.39.0 // indirect
golang.org/x/sys v0.36.0 // indirect golang.org/x/sys v0.36.0 // indirect

59
go.sum
View File

@@ -19,8 +19,36 @@ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFI
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8=
github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA=
github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiwNkJrVcKQ= github.com/chainguard-dev/git-urls v1.0.2 h1:pSpT7ifrpc5X55n4aTTm7FFUE+ZQHKiqpiwNkJrVcKQ=
github.com/chainguard-dev/git-urls v1.0.2/go.mod h1:rbGgj10OS7UgZlbzdUQIQpT0k/D4+An04HJY7Ol+Y/o= github.com/chainguard-dev/git-urls v1.0.2/go.mod h1:rbGgj10OS7UgZlbzdUQIQpT0k/D4+An04HJY7Ol+Y/o=
github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1 h1:swACzss0FjnyPz1enfX56GKkLiuKg5FlyVmOLIlU2kE=
github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1/go.mod h1:6HamsBKWqEC/FVHuQMHgQL+knPyvHH55HwJDHl/adMw=
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3 h1:5A2e3myxXMpCES+kjEWgGsaf9VgZXjZbLi5iMTH7j40=
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3/go.mod h1:ZFDg5oPjyRYrPAa3iFrtP1DO8xy+LUQxd9JFHEcuwJY=
github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40=
github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0=
github.com/charmbracelet/lipgloss/v2 v2.0.0-beta.3 h1:W6DpZX6zSkZr0iFq6JVh1vItLoxfYtNlaxOJtWp8Kis=
github.com/charmbracelet/lipgloss/v2 v2.0.0-beta.3/go.mod h1:65HTtKURcv/ict9ZQhr6zT84JqIjMcJbyrZYHHKNfKA=
github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE=
github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q=
github.com/charmbracelet/x/cellbuf v0.0.14-0.20250501183327-ad3bc78c6a81 h1:iGrflaL5jQW6crML+pZx/ulWAVZQR3CQoRGvFsr2Tyg=
github.com/charmbracelet/x/cellbuf v0.0.14-0.20250501183327-ad3bc78c6a81/go.mod h1:poPFOXFTsJsnLbkV3H2KxAAXT7pdjxxLujLocWjkyzM=
github.com/charmbracelet/x/exp/charmtone v0.0.0-20250930200525-31788bbe6486 h1:bbbzFbDGxMnOlPyuBoMJwpSmwhO0nV60D1yKBRgzNxg=
github.com/charmbracelet/x/exp/charmtone v0.0.0-20250930200525-31788bbe6486/go.mod h1:URW1lCfdUqp9aey3HTV+jRvaGLuaj2d0jVk2NTRpklY=
github.com/charmbracelet/x/exp/color v0.0.0-20250915100343-2c2e5896ae6e h1:tgRdEJh8/v6MBs2ZR7g2m1fABjnGft5wXyI+X/l5WF8=
github.com/charmbracelet/x/exp/color v0.0.0-20250915100343-2c2e5896ae6e/go.mod h1:/tsSyfR1O2EokQP9iNzNK/fnf5FGdB4w0MOaJTBRp5Q=
github.com/charmbracelet/x/exp/golden v0.0.0-20250207160936-21c02780d27a h1:FsHEJ52OC4VuTzU8t+n5frMjLvpYWEznSr/u8tnkCYw=
github.com/charmbracelet/x/exp/golden v0.0.0-20250207160936-21c02780d27a/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
github.com/charmbracelet/x/input v0.3.5-0.20250424101541-abb4d9a9b197 h1:fsWj8NF5njyMVzELc7++HsvRDvgz3VcgGAUgWBDWWWM=
github.com/charmbracelet/x/input v0.3.5-0.20250424101541-abb4d9a9b197/go.mod h1:xseGeVftoP9rVI+/8WKYrJFH6ior6iERGvklwwHz5+s=
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
github.com/charmbracelet/x/windows v0.2.1 h1:3x7vnbpQrjpuq/4L+I4gNsG5htYoCiA5oe9hLjAij5I=
github.com/charmbracelet/x/windows v0.2.1/go.mod h1:ptZp16h40gDYqs5TSawSVW+yiLB13j4kSMA0lSCHL0M=
github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s=
@@ -89,13 +117,21 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 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/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= 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-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4=
github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE=
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
@@ -109,8 +145,13 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/puzpuzpuz/xsync/v3 v3.5.1 h1:GJYJZwO6IdxN/IKbneznS6yPkVC+c3zyY/j19c++5Fg= github.com/puzpuzpuz/xsync/v3 v3.5.1 h1:GJYJZwO6IdxN/IKbneznS6yPkVC+c3zyY/j19c++5Fg=
github.com/puzpuzpuz/xsync/v3 v3.5.1/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= github.com/puzpuzpuz/xsync/v3 v3.5.1/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= 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/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/sahilm/fuzzy v0.1.1 h1:ceu5RHF8DGgoi+/dR5PsECjCDH1BE3Fnmpo7aVXOdRA=
github.com/sahilm/fuzzy v0.1.1/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
github.com/sajari/fuzzy v1.0.0 h1:+FmwVvJErsd0d0hAPlj4CxqxUtQY/fOoY0DwX4ykpRY= github.com/sajari/fuzzy v1.0.0 h1:+FmwVvJErsd0d0hAPlj4CxqxUtQY/fOoY0DwX4ykpRY=
github.com/sajari/fuzzy v1.0.0/go.mod h1:OjYR6KxoWOe9+dOlXeiCJd4dIbED4Oo8wpS89o0pwOo= github.com/sajari/fuzzy v1.0.0/go.mod h1:OjYR6KxoWOe9+dOlXeiCJd4dIbED4Oo8wpS89o0pwOo=
github.com/sebdah/goldie/v2 v2.7.1 h1:PkBHymaYdtvEkZV7TmyqKxdmn5/Vcj+8TpATWZjnG5E= github.com/sebdah/goldie/v2 v2.7.1 h1:PkBHymaYdtvEkZV7TmyqKxdmn5/Vcj+8TpATWZjnG5E=
@@ -121,8 +162,6 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8=
github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY=
github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M=
github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -131,8 +170,6 @@ github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/
github.com/stretchr/testify v1.2.2/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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8=
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= 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/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7 h1:ax+jBy7xFhh+Ka0IGLmH5mft+YDuqvzEjSgWuAP0nsM= github.com/u-root/u-root v0.14.1-0.20250807200646-5e7721023dc7 h1:ax+jBy7xFhh+Ka0IGLmH5mft+YDuqvzEjSgWuAP0nsM=
@@ -141,6 +178,8 @@ github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 h1:pyC9PaHYZFgEKFdlp3G8
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701/go.mod h1:P3a5rG4X7tI17Nn3aOIAYr5HbIMukwXG0urG0WuL8OA= github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701/go.mod h1:P3a5rG4X7tI17Nn3aOIAYr5HbIMukwXG0urG0WuL8OA=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0=
@@ -153,8 +192,6 @@ golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -166,13 +203,9 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.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.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -189,9 +222,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
mvdan.cc/sh/moreinterp v0.0.0-20250807215248-5a1a658912aa h1:sRmA9AmA5+9CbK6a7N52q9W9jAeoBy1EJ7cncm+SLxw= mvdan.cc/sh/moreinterp v0.0.0-20250921194925-171492585d48 h1:j0QO6IrQsn7rpqs9HxwwP7ae3uZDbzRZfu0gi8IDFiE=
mvdan.cc/sh/moreinterp v0.0.0-20250807215248-5a1a658912aa/go.mod h1:Of9PCedbLDYT8b3EyiYG64rNnx5nOp27OLCVdDrjJyo= mvdan.cc/sh/moreinterp v0.0.0-20250921194925-171492585d48/go.mod h1:Of9PCedbLDYT8b3EyiYG64rNnx5nOp27OLCVdDrjJyo=
mvdan.cc/sh/moreinterp v0.0.0-20250915182820-b717ad599e17 h1:2FU24GcRtL5Idt1KOtmzxU3RiXwirUQQUTV0voIHI2g=
mvdan.cc/sh/moreinterp v0.0.0-20250915182820-b717ad599e17/go.mod h1:Of9PCedbLDYT8b3EyiYG64rNnx5nOp27OLCVdDrjJyo=
mvdan.cc/sh/v3 v3.12.0 h1:ejKUR7ONP5bb+UGHGEG/k9V5+pRVIyD+LsZz7o8KHrI= mvdan.cc/sh/v3 v3.12.0 h1:ejKUR7ONP5bb+UGHGEG/k9V5+pRVIyD+LsZz7o8KHrI=
mvdan.cc/sh/v3 v3.12.0/go.mod h1:Se6Cj17eYSn+sNooLZiEUnNNmNxg0imoYlTu4CyaGyg= mvdan.cc/sh/v3 v3.12.0/go.mod h1:Se6Cj17eYSn+sNooLZiEUnNNmNxg0imoYlTu4CyaGyg=

View File

@@ -44,6 +44,7 @@ var (
Version bool Version bool
Help bool Help bool
Init bool Init bool
TUI bool
Completion string Completion string
List bool List bool
ListAll bool ListAll bool
@@ -111,6 +112,7 @@ func init() {
pflag.BoolVar(&Version, "version", false, "Show Task version.") pflag.BoolVar(&Version, "version", false, "Show Task version.")
pflag.BoolVarP(&Help, "help", "h", false, "Shows Task usage.") pflag.BoolVarP(&Help, "help", "h", false, "Shows Task usage.")
pflag.BoolVarP(&Init, "init", "i", false, "Creates a new Taskfile.yml in the current folder.") pflag.BoolVarP(&Init, "init", "i", false, "Creates a new Taskfile.yml in the current folder.")
pflag.BoolVarP(&TUI, "tui", "T", false, "Runs Task in TUI mode.")
pflag.StringVar(&Completion, "completion", "", "Generates shell completion script.") pflag.StringVar(&Completion, "completion", "", "Generates shell completion script.")
pflag.BoolVarP(&List, "list", "l", false, "Lists tasks with description of current Taskfile.") pflag.BoolVarP(&List, "list", "l", false, "Lists tasks with description of current Taskfile.")
pflag.BoolVarP(&ListAll, "list-all", "a", false, "Lists tasks with or without a description.") pflag.BoolVarP(&ListAll, "list-all", "a", false, "Lists tasks with or without a description.")

43
internal/tui/list.go Normal file
View File

@@ -0,0 +1,43 @@
package tui
import (
"fmt"
"github.com/charmbracelet/bubbles/v2/list"
"github.com/charmbracelet/bubbles/v2/spinner"
tea "github.com/charmbracelet/bubbletea/v2"
)
type listModel struct {
spinner spinner.Model
list list.Model
selectedIndex int
isLoading bool
}
func newListModel() listModel {
return listModel{
spinner: newSpinner(),
list: list.New([]list.Item{}, list.NewDefaultDelegate(), 0, 0),
isLoading: true,
}
}
func (m listModel) Init() tea.Cmd {
return m.spinner.Tick
}
func (m listModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
var cmd tea.Cmd
m.spinner, cmd = m.spinner.Update(msg)
return m, cmd
}
func (m listModel) View() string {
switch {
case m.isLoading:
return fmt.Sprintf("%s %s", m.spinner.View(), "Loading tasks...")
default:
return "todo!"
}
}

59
internal/tui/main.go Normal file
View File

@@ -0,0 +1,59 @@
package tui
import (
tea "github.com/charmbracelet/bubbletea/v2"
)
type page int
const (
pageList = iota + 1
)
type mainModel struct {
page page
listPage listModel
isQuitting bool
}
func newMainModel() mainModel {
return mainModel{
page: pageList,
listPage: newListModel(),
}
}
func (m mainModel) Init() tea.Cmd {
return m.listPage.Init()
}
func (m mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
case tea.KeyMsg:
switch msg.String() {
case "ctrl+c", "ctrl+q":
m.isQuitting = true
return m, tea.Quit
}
}
switch m.page {
case pageList:
model, cmd := m.listPage.Update(msg)
m.listPage = model.(listModel)
return m, cmd
}
return m, nil
}
func (m mainModel) View() string {
switch {
case m.isQuitting:
return "Quitting..."
case m.page == pageList:
return m.listPage.View()
default:
return "..."
}
}

16
internal/tui/spinner.go Normal file
View File

@@ -0,0 +1,16 @@
package tui
import (
"github.com/charmbracelet/bubbles/v2/spinner"
"github.com/charmbracelet/lipgloss/v2"
"github.com/charmbracelet/x/exp/charmtone"
)
var spinnerStyle = lipgloss.NewStyle().Foreground(lipgloss.Color(charmtone.Violet.Hex()))
func newSpinner() spinner.Model {
return spinner.New(
spinner.WithSpinner(spinner.MiniDot),
spinner.WithStyle(spinnerStyle),
)
}

13
internal/tui/tui.go Normal file
View File

@@ -0,0 +1,13 @@
package tui
import (
tea "github.com/charmbracelet/bubbletea/v2"
)
func Run() error {
m := newMainModel()
p := tea.NewProgram(m)
_, err := p.Run()
return err
}

View File

@@ -16,6 +16,7 @@ import (
"github.com/go-task/task/v3/internal/env" "github.com/go-task/task/v3/internal/env"
"github.com/go-task/task/v3/internal/execext" "github.com/go-task/task/v3/internal/execext"
"github.com/go-task/task/v3/internal/filepathext" "github.com/go-task/task/v3/internal/filepathext"
"github.com/go-task/task/v3/internal/fsext"
"github.com/go-task/task/v3/internal/logger" "github.com/go-task/task/v3/internal/logger"
"github.com/go-task/task/v3/internal/output" "github.com/go-task/task/v3/internal/output"
"github.com/go-task/task/v3/internal/version" "github.com/go-task/task/v3/internal/version"
@@ -56,6 +57,13 @@ func (e *Executor) Setup() error {
func (e *Executor) getRootNode() (taskfile.Node, error) { func (e *Executor) getRootNode() (taskfile.Node, error) {
node, err := taskfile.NewRootNode(e.Entrypoint, e.Dir, e.Insecure, e.Timeout) node, err := taskfile.NewRootNode(e.Entrypoint, e.Dir, e.Insecure, e.Timeout)
if os.IsNotExist(err) {
return nil, errors.TaskfileNotFoundError{
URI: fsext.DefaultDir(e.Entrypoint, e.Dir),
Walk: true,
AskInit: true,
}
}
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -53,7 +53,7 @@ func (node *HTTPNode) ReadContext(ctx context.Context) ([]byte, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
req, err := http.NewRequest("GET", url.String(), nil) req, err := http.NewRequestWithContext(ctx, "GET", url.String(), nil)
if err != nil { if err != nil {
return nil, errors.TaskfileFetchFailedError{URI: node.Location()} return nil, errors.TaskfileFetchFailedError{URI: node.Location()}
} }

View File

@@ -71,21 +71,6 @@ export default defineConfig({
'task runner, build tool, taskfile, yaml build tool, go task runner, make alternative, cross-platform build tool, makefile alternative, automation tool, ci cd pipeline, developer productivity, build automation, command line tool, go binary, yaml configuration' 'task runner, build tool, taskfile, yaml build tool, go task runner, make alternative, cross-platform build tool, makefile alternative, automation tool, ci cd pipeline, developer productivity, build automation, command line tool, go binary, yaml configuration'
} }
], ],
[
'script',
{
async: '',
src: 'https://www.googletagmanager.com/gtag/js?id=G-4RT25NXQ7N'
}
],
[
'script',
{},
`window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "G-4RT25NXQ7N");`
],
[ [
"script", "script",
{ {

View File

@@ -22,5 +22,5 @@
"vitepress-plugin-tabs": "^0.7.1", "vitepress-plugin-tabs": "^0.7.1",
"vue": "^3.5.18" "vue": "^3.5.18"
}, },
"packageManager": "pnpm@10.16.1+sha512.0e155aa2629db8672b49e8475da6226aa4bdea85fdcdfdc15350874946d4f3c91faaf64cbdc4a5d1ab8002f473d5c3fcedcd197989cf0390f9badd3c04678706" "packageManager": "pnpm@10.17.0+sha512.fce8a3dd29a4ed2ec566fb53efbb04d8c44a0f05bc6f24a73046910fb9c3ce7afa35a0980500668fa3573345bd644644fa98338fa168235c80f4aa17aa17fbef"
} }

383
website/pnpm-lock.yaml generated
View File

@@ -13,22 +13,22 @@ importers:
version: 14.1.2 version: 14.1.2
'@types/node': '@types/node':
specifier: ^24.1.0 specifier: ^24.1.0
version: 24.5.0 version: 24.5.2
netlify-cli: netlify-cli:
specifier: ^23.1.1 specifier: ^23.1.1
version: 23.5.1(@types/node@24.5.0)(picomatch@4.0.3)(rollup@4.46.2) version: 23.6.0(@types/node@24.5.2)(picomatch@4.0.3)(rollup@4.46.2)
prettier: prettier:
specifier: ^3.6.2 specifier: ^3.6.2
version: 3.6.2 version: 3.6.2
vitepress: vitepress:
specifier: ^1.6.3 specifier: ^1.6.3
version: 1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.0)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2) version: 1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.2)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2)
vitepress-plugin-group-icons: vitepress-plugin-group-icons:
specifier: ^1.6.1 specifier: ^1.6.1
version: 1.6.3(markdown-it@14.1.0)(vite@5.4.19(@types/node@24.5.0)) version: 1.6.3(markdown-it@14.1.0)(vite@5.4.19(@types/node@24.5.2))
vitepress-plugin-tabs: vitepress-plugin-tabs:
specifier: ^0.7.1 specifier: ^0.7.1
version: 0.7.3(vitepress@1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.0)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2))(vue@3.5.21(typescript@5.9.2)) version: 0.7.3(vitepress@1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.2)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2))(vue@3.5.21(typescript@5.9.2))
vue: vue:
specifier: ^3.5.18 specifier: ^3.5.18
version: 3.5.21(typescript@5.9.2) version: 3.5.21(typescript@5.9.2)
@@ -549,124 +549,128 @@ packages:
'@iconify/utils@3.0.1': '@iconify/utils@3.0.1':
resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==} resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==}
'@img/sharp-darwin-arm64@0.34.3': '@img/colour@1.0.0':
resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==}
engines: {node: '>=18'}
'@img/sharp-darwin-arm64@0.34.4':
resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@img/sharp-darwin-x64@0.34.3': '@img/sharp-darwin-x64@0.34.4':
resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@img/sharp-libvips-darwin-arm64@1.2.0': '@img/sharp-libvips-darwin-arm64@1.2.3':
resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@img/sharp-libvips-darwin-x64@1.2.0': '@img/sharp-libvips-darwin-x64@1.2.3':
resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@img/sharp-libvips-linux-arm64@1.2.0': '@img/sharp-libvips-linux-arm64@1.2.3':
resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@img/sharp-libvips-linux-arm@1.2.0': '@img/sharp-libvips-linux-arm@1.2.3':
resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@img/sharp-libvips-linux-ppc64@1.2.0': '@img/sharp-libvips-linux-ppc64@1.2.3':
resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@img/sharp-libvips-linux-s390x@1.2.0': '@img/sharp-libvips-linux-s390x@1.2.3':
resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@img/sharp-libvips-linux-x64@1.2.0': '@img/sharp-libvips-linux-x64@1.2.3':
resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@img/sharp-libvips-linuxmusl-arm64@1.2.0': '@img/sharp-libvips-linuxmusl-arm64@1.2.3':
resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@img/sharp-libvips-linuxmusl-x64@1.2.0': '@img/sharp-libvips-linuxmusl-x64@1.2.3':
resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@img/sharp-linux-arm64@0.34.3': '@img/sharp-linux-arm64@0.34.4':
resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@img/sharp-linux-arm@0.34.3': '@img/sharp-linux-arm@0.34.4':
resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@img/sharp-linux-ppc64@0.34.3': '@img/sharp-linux-ppc64@0.34.4':
resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@img/sharp-linux-s390x@0.34.3': '@img/sharp-linux-s390x@0.34.4':
resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@img/sharp-linux-x64@0.34.3': '@img/sharp-linux-x64@0.34.4':
resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@img/sharp-linuxmusl-arm64@0.34.3': '@img/sharp-linuxmusl-arm64@0.34.4':
resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@img/sharp-linuxmusl-x64@0.34.3': '@img/sharp-linuxmusl-x64@0.34.4':
resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@img/sharp-wasm32@0.34.3': '@img/sharp-wasm32@0.34.4':
resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [wasm32] cpu: [wasm32]
'@img/sharp-win32-arm64@0.34.3': '@img/sharp-win32-arm64@0.34.4':
resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@img/sharp-win32-ia32@0.34.3': '@img/sharp-win32-ia32@0.34.4':
resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@img/sharp-win32-x64@0.34.3': '@img/sharp-win32-x64@0.34.4':
resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -845,8 +849,8 @@ packages:
resolution: {integrity: sha512-siVwmrp7Ow+7jLALi6jXOja4Y4uHMMgOLLQMgd+OZ1TESOstrJvkUisJEDAc9hx7u0v/B0mh5g1g1huiH3uS3A==} resolution: {integrity: sha512-siVwmrp7Ow+7jLALi6jXOja4Y4uHMMgOLLQMgd+OZ1TESOstrJvkUisJEDAc9hx7u0v/B0mh5g1g1huiH3uS3A==}
engines: {node: '>=18.14.0'} engines: {node: '>=18.14.0'}
'@netlify/open-api@2.37.0': '@netlify/open-api@2.38.0':
resolution: {integrity: sha512-zXnRFkxgNsalSgU8/vwTWnav3R+8KG8SsqHxqaoJdjjJtnZR7wo3f+qqu4z+WtZ/4V7fly91HFUwZ6Uz2OdW7w==} resolution: {integrity: sha512-CiTfXV226itvGRzFCNCwegblJd9fUl+ZgrI6/9JEDH6b11uI0y+gZnk+eT8onOias/rq0ep0DCwIElG6vMbCTw==}
engines: {node: '>=14.8.0'} engines: {node: '>=14.8.0'}
'@netlify/opentelemetry-utils@2.0.1': '@netlify/opentelemetry-utils@2.0.1':
@@ -1257,8 +1261,8 @@ packages:
'@types/mdurl@2.0.0': '@types/mdurl@2.0.0':
resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
'@types/node@24.5.0': '@types/node@24.5.2':
resolution: {integrity: sha512-y1dMvuvJspJiPSDZUQ+WMBvF7dpnEqN4x9DDC9ie5Fs/HUZJA3wFp7EhHoVaKX/iI0cRoECV8X2jL8zi0xrHCg==} resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
'@types/normalize-package-data@2.4.4': '@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -1414,12 +1418,12 @@ packages:
resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
'@whatwg-node/fetch@0.10.10': '@whatwg-node/fetch@0.10.11':
resolution: {integrity: sha512-watz4i/Vv4HpoJ+GranJ7HH75Pf+OkPQ63NoVmru6Srgc8VezTArB00i/oQlnn0KWh14gM42F22Qcc9SU9mo/w==} resolution: {integrity: sha512-eR8SYtf9Nem1Tnl0IWrY33qJ5wCtIWlt3Fs3c6V4aAaTFLtkEQErXu3SSZg/XCHrj9hXSJ8/8t+CdMk5Qec/ZA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
'@whatwg-node/node-fetch@0.7.25': '@whatwg-node/node-fetch@0.8.0':
resolution: {integrity: sha512-szCTESNJV+Xd56zU6ShOi/JWROxE9IwCic8o5D9z5QECZloas6Ez5tUuKqXTAdu6fHFx1t6C+5gwj8smzOLjtg==} resolution: {integrity: sha512-+z00GpWxKV/q8eMETwbdi80TcOoVEVZ4xSRkxYOZpn3kbV3nej5iViNzXVke/j3v4y1YpO5zMS/CVDIASvJnZQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
'@whatwg-node/promise-helpers@1.3.2': '@whatwg-node/promise-helpers@1.3.2':
@@ -1621,8 +1625,8 @@ packages:
balanced-match@1.0.2: balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
bare-events@2.6.1: bare-events@2.7.0:
resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==}
base64-js@1.5.1: base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -1811,10 +1815,6 @@ packages:
color@3.2.1: color@3.2.1:
resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==}
color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
colors@1.4.0: colors@1.4.0:
resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
engines: {node: '>=0.1.90'} engines: {node: '>=0.1.90'}
@@ -2803,8 +2803,8 @@ packages:
resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
engines: {node: '>=8'} engines: {node: '>=8'}
is-network-error@1.1.0: is-network-error@1.3.0:
resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==}
engines: {node: '>=16'} engines: {node: '>=16'}
is-npm@6.1.0: is-npm@6.1.0:
@@ -3201,18 +3201,13 @@ packages:
minisearch@7.1.2: minisearch@7.1.2:
resolution: {integrity: sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA==} resolution: {integrity: sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA==}
minizlib@3.0.2: minizlib@3.1.0:
resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
engines: {node: '>= 18'} engines: {node: '>= 18'}
mitt@3.0.1: mitt@3.0.1:
resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
mkdirp@3.0.1:
resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
engines: {node: '>=10'}
hasBin: true
mlly@1.7.4: mlly@1.7.4:
resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
@@ -3259,8 +3254,8 @@ packages:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'} engines: {node: '>= 0.6'}
netlify-cli@23.5.1: netlify-cli@23.6.0:
resolution: {integrity: sha512-CeWygxSDEoBMvVz4osfBI0euADqX7rDL0MTM9HW/TZPS54IrubmnfhSdhFRaONB4JtfRuNLzAV0wra5xYSWNTg==} resolution: {integrity: sha512-2Whz+O2lIGmujp4Zr9+59wVIifzO/tem61zjcBvnYJ08Uq0q+tyTG5306k23WFkYMbbDwipQUKT7DdzU0HFEGg==}
engines: {node: '>=20.12.2'} engines: {node: '>=20.12.2'}
hasBin: true hasBin: true
@@ -3557,8 +3552,8 @@ packages:
pino-std-serializers@7.0.0: pino-std-serializers@7.0.0:
resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
pino@9.9.5: pino@9.11.0:
resolution: {integrity: sha512-d1s98p8/4TfYhsJ09r/Azt30aYELRi6NNnZtEbqFw6BoGsdPVf5lKNK3kUwH8BmJJfpTLNuicjUQjaMbd93dVg==} resolution: {integrity: sha512-+YIodBB9sxcWeR8PrXC2K3gEDyfkUuVEITOcbqrfcj+z5QW4ioIcqZfYFbrLTYLsmAwunbS7nfU/dpBB6PZc1g==}
hasBin: true hasBin: true
pkg-types@1.3.1: pkg-types@1.3.1:
@@ -3639,8 +3634,8 @@ packages:
resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
engines: {node: '>=6'} engines: {node: '>=6'}
pupa@3.2.1: pupa@3.3.0:
resolution: {integrity: sha512-6koJt2wLdmDICU5Yht9X4mYjQUFcah7cAu9PEgGP+JGbLQpUQFfaCauHLeutygSkt50oMEX7oAQNmUHxGh5GHQ==} resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==}
engines: {node: '>=12.20'} engines: {node: '>=12.20'}
qs@6.13.0: qs@6.13.0:
@@ -3874,8 +3869,8 @@ packages:
setprototypeof@1.2.0: setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
sharp@0.34.3: sharp@0.34.4:
resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
shebang-command@2.0.0: shebang-command@2.0.0:
@@ -4087,8 +4082,8 @@ packages:
tar-stream@3.1.7: tar-stream@3.1.7:
resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
tar@7.4.3: tar@7.4.4:
resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} resolution: {integrity: sha512-O1z7ajPkjTgEgmTGz0v9X4eqeEXTDREPTO77pVC1Nbs86feBU1Zhdg+edzavPmYW1olxkwsqA2v4uOw6E8LeDg==}
engines: {node: '>=18'} engines: {node: '>=18'}
terminal-link@4.0.0: terminal-link@4.0.0:
@@ -4570,8 +4565,8 @@ packages:
zod@3.25.76: zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
zod@4.1.8: zod@4.1.11:
resolution: {integrity: sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==} resolution: {integrity: sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==}
zwitch@2.0.4: zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -5019,100 +5014,102 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@img/sharp-darwin-arm64@0.34.3': '@img/colour@1.0.0': {}
'@img/sharp-darwin-arm64@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.2.0 '@img/sharp-libvips-darwin-arm64': 1.2.3
optional: true optional: true
'@img/sharp-darwin-x64@0.34.3': '@img/sharp-darwin-x64@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-darwin-x64': 1.2.0 '@img/sharp-libvips-darwin-x64': 1.2.3
optional: true optional: true
'@img/sharp-libvips-darwin-arm64@1.2.0': '@img/sharp-libvips-darwin-arm64@1.2.3':
optional: true optional: true
'@img/sharp-libvips-darwin-x64@1.2.0': '@img/sharp-libvips-darwin-x64@1.2.3':
optional: true optional: true
'@img/sharp-libvips-linux-arm64@1.2.0': '@img/sharp-libvips-linux-arm64@1.2.3':
optional: true optional: true
'@img/sharp-libvips-linux-arm@1.2.0': '@img/sharp-libvips-linux-arm@1.2.3':
optional: true optional: true
'@img/sharp-libvips-linux-ppc64@1.2.0': '@img/sharp-libvips-linux-ppc64@1.2.3':
optional: true optional: true
'@img/sharp-libvips-linux-s390x@1.2.0': '@img/sharp-libvips-linux-s390x@1.2.3':
optional: true optional: true
'@img/sharp-libvips-linux-x64@1.2.0': '@img/sharp-libvips-linux-x64@1.2.3':
optional: true optional: true
'@img/sharp-libvips-linuxmusl-arm64@1.2.0': '@img/sharp-libvips-linuxmusl-arm64@1.2.3':
optional: true optional: true
'@img/sharp-libvips-linuxmusl-x64@1.2.0': '@img/sharp-libvips-linuxmusl-x64@1.2.3':
optional: true optional: true
'@img/sharp-linux-arm64@0.34.3': '@img/sharp-linux-arm64@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-linux-arm64': 1.2.0 '@img/sharp-libvips-linux-arm64': 1.2.3
optional: true optional: true
'@img/sharp-linux-arm@0.34.3': '@img/sharp-linux-arm@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-linux-arm': 1.2.0 '@img/sharp-libvips-linux-arm': 1.2.3
optional: true optional: true
'@img/sharp-linux-ppc64@0.34.3': '@img/sharp-linux-ppc64@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-linux-ppc64': 1.2.0 '@img/sharp-libvips-linux-ppc64': 1.2.3
optional: true optional: true
'@img/sharp-linux-s390x@0.34.3': '@img/sharp-linux-s390x@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-linux-s390x': 1.2.0 '@img/sharp-libvips-linux-s390x': 1.2.3
optional: true optional: true
'@img/sharp-linux-x64@0.34.3': '@img/sharp-linux-x64@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-linux-x64': 1.2.0 '@img/sharp-libvips-linux-x64': 1.2.3
optional: true optional: true
'@img/sharp-linuxmusl-arm64@0.34.3': '@img/sharp-linuxmusl-arm64@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-linuxmusl-arm64': 1.2.0 '@img/sharp-libvips-linuxmusl-arm64': 1.2.3
optional: true optional: true
'@img/sharp-linuxmusl-x64@0.34.3': '@img/sharp-linuxmusl-x64@0.34.4':
optionalDependencies: optionalDependencies:
'@img/sharp-libvips-linuxmusl-x64': 1.2.0 '@img/sharp-libvips-linuxmusl-x64': 1.2.3
optional: true optional: true
'@img/sharp-wasm32@0.34.3': '@img/sharp-wasm32@0.34.4':
dependencies: dependencies:
'@emnapi/runtime': 1.5.0 '@emnapi/runtime': 1.5.0
optional: true optional: true
'@img/sharp-win32-arm64@0.34.3': '@img/sharp-win32-arm64@0.34.4':
optional: true optional: true
'@img/sharp-win32-ia32@0.34.3': '@img/sharp-win32-ia32@0.34.4':
optional: true optional: true
'@img/sharp-win32-x64@0.34.3': '@img/sharp-win32-x64@0.34.4':
optional: true optional: true
'@import-maps/resolve@2.0.0': {} '@import-maps/resolve@2.0.0': {}
'@inquirer/external-editor@1.0.2(@types/node@24.5.0)': '@inquirer/external-editor@1.0.2(@types/node@24.5.2)':
dependencies: dependencies:
chardet: 2.1.0 chardet: 2.1.0
iconv-lite: 0.7.0 iconv-lite: 0.7.0
optionalDependencies: optionalDependencies:
'@types/node': 24.5.0 '@types/node': 24.5.2
'@isaacs/cliui@8.0.2': '@isaacs/cliui@8.0.2':
dependencies: dependencies:
@@ -5146,14 +5143,14 @@ snapshots:
node-fetch: 2.7.0 node-fetch: 2.7.0
nopt: 8.1.0 nopt: 8.1.0
semver: 7.7.2 semver: 7.7.2
tar: 7.4.3 tar: 7.4.4
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
- supports-color - supports-color
'@netlify/api@14.0.4': '@netlify/api@14.0.4':
dependencies: dependencies:
'@netlify/open-api': 2.37.0 '@netlify/open-api': 2.38.0
node-fetch: 3.3.2 node-fetch: 3.3.2
p-wait-for: 5.0.2 p-wait-for: 5.0.2
picoquery: 2.5.0 picoquery: 2.5.0
@@ -5177,7 +5174,7 @@ snapshots:
yaml: 2.8.1 yaml: 2.8.1
yargs: 17.7.2 yargs: 17.7.2
'@netlify/build@35.1.6(@opentelemetry/api@1.8.0)(@types/node@24.5.0)(picomatch@4.0.3)(rollup@4.46.2)': '@netlify/build@35.1.6(@opentelemetry/api@1.8.0)(@types/node@24.5.2)(picomatch@4.0.3)(rollup@4.46.2)':
dependencies: dependencies:
'@bugsnag/js': 8.4.0 '@bugsnag/js': 8.4.0
'@netlify/blobs': 10.0.10 '@netlify/blobs': 10.0.10
@@ -5225,7 +5222,7 @@ snapshots:
string-width: 7.2.0 string-width: 7.2.0
supports-color: 10.2.2 supports-color: 10.2.2
terminal-link: 4.0.0 terminal-link: 4.0.0
ts-node: 10.9.2(@types/node@24.5.0)(typescript@5.9.2) ts-node: 10.9.2(@types/node@24.5.2)(typescript@5.9.2)
typescript: 5.9.2 typescript: 5.9.2
uuid: 11.1.0 uuid: 11.1.0
yaml: 2.8.1 yaml: 2.8.1
@@ -5276,7 +5273,7 @@ snapshots:
validate-npm-package-name: 5.0.1 validate-npm-package-name: 5.0.1
yaml: 2.8.1 yaml: 2.8.1
yargs: 17.7.2 yargs: 17.7.2
zod: 4.1.8 zod: 4.1.11
'@netlify/dev-utils@4.1.3': '@netlify/dev-utils@4.1.3':
dependencies: dependencies:
@@ -5314,7 +5311,7 @@ snapshots:
parse-imports: 2.2.1 parse-imports: 2.2.1
path-key: 4.0.0 path-key: 4.0.0
semver: 7.7.2 semver: 7.7.2
tar: 7.4.3 tar: 7.4.4
tmp-promise: 3.0.3 tmp-promise: 3.0.3
urlpattern-polyfill: 8.0.2 urlpattern-polyfill: 8.0.2
uuid: 11.1.0 uuid: 11.1.0
@@ -5400,7 +5397,7 @@ snapshots:
'@netlify/local-functions-proxy-win32-ia32': 1.1.1 '@netlify/local-functions-proxy-win32-ia32': 1.1.1
'@netlify/local-functions-proxy-win32-x64': 1.1.1 '@netlify/local-functions-proxy-win32-x64': 1.1.1
'@netlify/open-api@2.37.0': {} '@netlify/open-api@2.38.0': {}
'@netlify/opentelemetry-utils@2.0.1(@opentelemetry/api@1.8.0)': '@netlify/opentelemetry-utils@2.0.1(@opentelemetry/api@1.8.0)':
dependencies: dependencies:
@@ -5781,7 +5778,7 @@ snapshots:
'@types/http-proxy@1.17.16': '@types/http-proxy@1.17.16':
dependencies: dependencies:
'@types/node': 24.5.0 '@types/node': 24.5.2
'@types/linkify-it@5.0.0': {} '@types/linkify-it@5.0.0': {}
@@ -5796,7 +5793,7 @@ snapshots:
'@types/mdurl@2.0.0': {} '@types/mdurl@2.0.0': {}
'@types/node@24.5.0': '@types/node@24.5.2':
dependencies: dependencies:
undici-types: 7.12.0 undici-types: 7.12.0
@@ -5812,7 +5809,7 @@ snapshots:
'@types/yauzl@2.10.3': '@types/yauzl@2.10.3':
dependencies: dependencies:
'@types/node': 24.5.0 '@types/node': 24.5.2
optional: true optional: true
'@typescript-eslint/project-service@8.44.0(supports-color@10.2.2)(typescript@5.9.2)': '@typescript-eslint/project-service@8.44.0(supports-color@10.2.2)(typescript@5.9.2)':
@@ -5872,9 +5869,9 @@ snapshots:
- rollup - rollup
- supports-color - supports-color
'@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@24.5.0))(vue@3.5.21(typescript@5.9.2))': '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@24.5.2))(vue@3.5.21(typescript@5.9.2))':
dependencies: dependencies:
vite: 5.4.19(@types/node@24.5.0) vite: 5.4.19(@types/node@24.5.2)
vue: 3.5.21(typescript@5.9.2) vue: 3.5.21(typescript@5.9.2)
'@vue/compiler-core@3.5.21': '@vue/compiler-core@3.5.21':
@@ -5984,12 +5981,12 @@ snapshots:
'@whatwg-node/promise-helpers': 1.3.2 '@whatwg-node/promise-helpers': 1.3.2
tslib: 2.8.1 tslib: 2.8.1
'@whatwg-node/fetch@0.10.10': '@whatwg-node/fetch@0.10.11':
dependencies: dependencies:
'@whatwg-node/node-fetch': 0.7.25 '@whatwg-node/node-fetch': 0.8.0
urlpattern-polyfill: 10.1.0 urlpattern-polyfill: 10.1.0
'@whatwg-node/node-fetch@0.7.25': '@whatwg-node/node-fetch@0.8.0':
dependencies: dependencies:
'@fastify/busboy': 3.2.0 '@fastify/busboy': 3.2.0
'@whatwg-node/disposablestack': 0.0.6 '@whatwg-node/disposablestack': 0.0.6
@@ -6004,7 +6001,7 @@ snapshots:
dependencies: dependencies:
'@envelop/instrumentation': 1.0.0 '@envelop/instrumentation': 1.0.0
'@whatwg-node/disposablestack': 0.0.6 '@whatwg-node/disposablestack': 0.0.6
'@whatwg-node/fetch': 0.10.10 '@whatwg-node/fetch': 0.10.11
'@whatwg-node/promise-helpers': 1.3.2 '@whatwg-node/promise-helpers': 1.3.2
tslib: 2.8.1 tslib: 2.8.1
@@ -6225,7 +6222,7 @@ snapshots:
balanced-match@1.0.2: {} balanced-match@1.0.2: {}
bare-events@2.6.1: bare-events@2.7.0:
optional: true optional: true
base64-js@1.5.1: {} base64-js@1.5.1: {}
@@ -6430,11 +6427,6 @@ snapshots:
color-convert: 1.9.3 color-convert: 1.9.3
color-string: 1.9.1 color-string: 1.9.1
color@4.2.3:
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
colors@1.4.0: {} colors@1.4.0: {}
colorspace@1.1.4: colorspace@1.1.4:
@@ -7024,7 +7016,7 @@ snapshots:
fast-json-stringify: 5.16.1 fast-json-stringify: 5.16.1
find-my-way: 8.2.2 find-my-way: 8.2.2
light-my-request: 5.14.0 light-my-request: 5.14.0
pino: 9.9.5 pino: 9.11.0
process-warning: 3.0.0 process-warning: 3.0.0
proxy-addr: 2.0.7 proxy-addr: 2.0.7
rfdc: 1.4.1 rfdc: 1.4.1
@@ -7402,18 +7394,18 @@ snapshots:
ini@4.1.1: {} ini@4.1.1: {}
inquirer-autocomplete-prompt@1.4.0(inquirer@8.2.7(@types/node@24.5.0)): inquirer-autocomplete-prompt@1.4.0(inquirer@8.2.7(@types/node@24.5.2)):
dependencies: dependencies:
ansi-escapes: 4.3.2 ansi-escapes: 4.3.2
chalk: 4.1.2 chalk: 4.1.2
figures: 3.2.0 figures: 3.2.0
inquirer: 8.2.7(@types/node@24.5.0) inquirer: 8.2.7(@types/node@24.5.2)
run-async: 2.4.1 run-async: 2.4.1
rxjs: 6.6.7 rxjs: 6.6.7
inquirer@8.2.7(@types/node@24.5.0): inquirer@8.2.7(@types/node@24.5.2):
dependencies: dependencies:
'@inquirer/external-editor': 1.0.2(@types/node@24.5.0) '@inquirer/external-editor': 1.0.2(@types/node@24.5.2)
ansi-escapes: 4.3.2 ansi-escapes: 4.3.2
chalk: 4.1.2 chalk: 4.1.2
cli-cursor: 3.1.0 cli-cursor: 3.1.0
@@ -7450,7 +7442,7 @@ snapshots:
listhen: 1.9.0 listhen: 1.9.0
ofetch: 1.4.1 ofetch: 1.4.1
pathe: 2.0.3 pathe: 2.0.3
sharp: 0.34.3 sharp: 0.34.4
svgo: 4.0.0 svgo: 4.0.0
ufo: 1.6.1 ufo: 1.6.1
unstorage: 1.17.1(@netlify/blobs@10.0.10) unstorage: 1.17.1(@netlify/blobs@10.0.10)
@@ -7513,7 +7505,7 @@ snapshots:
is-interactive@1.0.0: {} is-interactive@1.0.0: {}
is-network-error@1.1.0: {} is-network-error@1.3.0: {}
is-npm@6.1.0: {} is-npm@6.1.0: {}
@@ -7873,14 +7865,12 @@ snapshots:
minisearch@7.1.2: {} minisearch@7.1.2: {}
minizlib@3.0.2: minizlib@3.1.0:
dependencies: dependencies:
minipass: 7.1.2 minipass: 7.1.2
mitt@3.0.1: {} mitt@3.0.1: {}
mkdirp@3.0.1: {}
mlly@1.7.4: mlly@1.7.4:
dependencies: dependencies:
acorn: 8.15.0 acorn: 8.15.0
@@ -7932,12 +7922,12 @@ snapshots:
negotiator@0.6.3: {} negotiator@0.6.3: {}
netlify-cli@23.5.1(@types/node@24.5.0)(picomatch@4.0.3)(rollup@4.46.2): netlify-cli@23.6.0(@types/node@24.5.2)(picomatch@4.0.3)(rollup@4.46.2):
dependencies: dependencies:
'@fastify/static': 7.0.4 '@fastify/static': 7.0.4
'@netlify/api': 14.0.4 '@netlify/api': 14.0.4
'@netlify/blobs': 10.0.10 '@netlify/blobs': 10.0.10
'@netlify/build': 35.1.6(@opentelemetry/api@1.8.0)(@types/node@24.5.0)(picomatch@4.0.3)(rollup@4.46.2) '@netlify/build': 35.1.6(@opentelemetry/api@1.8.0)(@types/node@24.5.2)(picomatch@4.0.3)(rollup@4.46.2)
'@netlify/build-info': 10.0.7 '@netlify/build-info': 10.0.7
'@netlify/config': 24.0.3 '@netlify/config': 24.0.3
'@netlify/dev-utils': 4.1.3 '@netlify/dev-utils': 4.1.3
@@ -7987,8 +7977,8 @@ snapshots:
http-proxy: 1.18.1(debug@4.4.1) http-proxy: 1.18.1(debug@4.4.1)
http-proxy-middleware: 2.0.9(debug@4.4.1) http-proxy-middleware: 2.0.9(debug@4.4.1)
https-proxy-agent: 7.0.6(supports-color@10.2.2) https-proxy-agent: 7.0.6(supports-color@10.2.2)
inquirer: 8.2.7(@types/node@24.5.0) inquirer: 8.2.7(@types/node@24.5.2)
inquirer-autocomplete-prompt: 1.4.0(inquirer@8.2.7(@types/node@24.5.0)) inquirer-autocomplete-prompt: 1.4.0(inquirer@8.2.7(@types/node@24.5.2))
ipx: 3.1.1(@netlify/blobs@10.0.10) ipx: 3.1.1(@netlify/blobs@10.0.10)
is-docker: 3.0.0 is-docker: 3.0.0
is-stream: 4.0.1 is-stream: 4.0.1
@@ -8228,7 +8218,7 @@ snapshots:
p-retry@6.2.1: p-retry@6.2.1:
dependencies: dependencies:
'@types/retry': 0.12.2 '@types/retry': 0.12.2
is-network-error: 1.1.0 is-network-error: 1.3.0
retry: 0.13.1 retry: 0.13.1
p-timeout@5.1.0: {} p-timeout@5.1.0: {}
@@ -8320,7 +8310,7 @@ snapshots:
pino-std-serializers@7.0.0: {} pino-std-serializers@7.0.0: {}
pino@9.9.5: pino@9.11.0:
dependencies: dependencies:
atomic-sleep: 1.0.0 atomic-sleep: 1.0.0
fast-redact: 3.5.0 fast-redact: 3.5.0
@@ -8425,7 +8415,7 @@ snapshots:
punycode.js@2.3.1: {} punycode.js@2.3.1: {}
pupa@3.2.1: pupa@3.3.0:
dependencies: dependencies:
escape-goat: 4.0.0 escape-goat: 4.0.0
@@ -8685,34 +8675,34 @@ snapshots:
setprototypeof@1.2.0: {} setprototypeof@1.2.0: {}
sharp@0.34.3: sharp@0.34.4:
dependencies: dependencies:
color: 4.2.3 '@img/colour': 1.0.0
detect-libc: 2.1.0 detect-libc: 2.1.0
semver: 7.7.2 semver: 7.7.2
optionalDependencies: optionalDependencies:
'@img/sharp-darwin-arm64': 0.34.3 '@img/sharp-darwin-arm64': 0.34.4
'@img/sharp-darwin-x64': 0.34.3 '@img/sharp-darwin-x64': 0.34.4
'@img/sharp-libvips-darwin-arm64': 1.2.0 '@img/sharp-libvips-darwin-arm64': 1.2.3
'@img/sharp-libvips-darwin-x64': 1.2.0 '@img/sharp-libvips-darwin-x64': 1.2.3
'@img/sharp-libvips-linux-arm': 1.2.0 '@img/sharp-libvips-linux-arm': 1.2.3
'@img/sharp-libvips-linux-arm64': 1.2.0 '@img/sharp-libvips-linux-arm64': 1.2.3
'@img/sharp-libvips-linux-ppc64': 1.2.0 '@img/sharp-libvips-linux-ppc64': 1.2.3
'@img/sharp-libvips-linux-s390x': 1.2.0 '@img/sharp-libvips-linux-s390x': 1.2.3
'@img/sharp-libvips-linux-x64': 1.2.0 '@img/sharp-libvips-linux-x64': 1.2.3
'@img/sharp-libvips-linuxmusl-arm64': 1.2.0 '@img/sharp-libvips-linuxmusl-arm64': 1.2.3
'@img/sharp-libvips-linuxmusl-x64': 1.2.0 '@img/sharp-libvips-linuxmusl-x64': 1.2.3
'@img/sharp-linux-arm': 0.34.3 '@img/sharp-linux-arm': 0.34.4
'@img/sharp-linux-arm64': 0.34.3 '@img/sharp-linux-arm64': 0.34.4
'@img/sharp-linux-ppc64': 0.34.3 '@img/sharp-linux-ppc64': 0.34.4
'@img/sharp-linux-s390x': 0.34.3 '@img/sharp-linux-s390x': 0.34.4
'@img/sharp-linux-x64': 0.34.3 '@img/sharp-linux-x64': 0.34.4
'@img/sharp-linuxmusl-arm64': 0.34.3 '@img/sharp-linuxmusl-arm64': 0.34.4
'@img/sharp-linuxmusl-x64': 0.34.3 '@img/sharp-linuxmusl-x64': 0.34.4
'@img/sharp-wasm32': 0.34.3 '@img/sharp-wasm32': 0.34.4
'@img/sharp-win32-arm64': 0.34.3 '@img/sharp-win32-arm64': 0.34.4
'@img/sharp-win32-ia32': 0.34.3 '@img/sharp-win32-ia32': 0.34.4
'@img/sharp-win32-x64': 0.34.3 '@img/sharp-win32-x64': 0.34.4
shebang-command@2.0.0: shebang-command@2.0.0:
dependencies: dependencies:
@@ -8840,7 +8830,7 @@ snapshots:
fast-fifo: 1.3.2 fast-fifo: 1.3.2
text-decoder: 1.2.3 text-decoder: 1.2.3
optionalDependencies: optionalDependencies:
bare-events: 2.6.1 bare-events: 2.7.0
transitivePeerDependencies: transitivePeerDependencies:
- react-native-b4a - react-native-b4a
@@ -8942,13 +8932,12 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- react-native-b4a - react-native-b4a
tar@7.4.3: tar@7.4.4:
dependencies: dependencies:
'@isaacs/fs-minipass': 4.0.1 '@isaacs/fs-minipass': 4.0.1
chownr: 3.0.0 chownr: 3.0.0
minipass: 7.1.2 minipass: 7.1.2
minizlib: 3.0.2 minizlib: 3.1.0
mkdirp: 3.0.1
yallist: 5.0.0 yallist: 5.0.0
terminal-link@4.0.0: terminal-link@4.0.0:
@@ -9014,14 +9003,14 @@ snapshots:
dependencies: dependencies:
typescript: 5.9.2 typescript: 5.9.2
ts-node@10.9.2(@types/node@24.5.0)(typescript@5.9.2): ts-node@10.9.2(@types/node@24.5.2)(typescript@5.9.2):
dependencies: dependencies:
'@cspotcode/source-map-support': 0.8.1 '@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11 '@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11 '@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3 '@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4 '@tsconfig/node16': 1.0.4
'@types/node': 24.5.0 '@types/node': 24.5.2
acorn: 8.15.0 acorn: 8.15.0
acorn-walk: 8.3.4 acorn-walk: 8.3.4
arg: 4.1.3 arg: 4.1.3
@@ -9137,7 +9126,7 @@ snapshots:
is-installed-globally: 1.0.0 is-installed-globally: 1.0.0
is-npm: 6.1.0 is-npm: 6.1.0
latest-version: 9.0.0 latest-version: 9.0.0
pupa: 3.2.1 pupa: 3.3.0
semver: 7.7.2 semver: 7.7.2
xdg-basedir: 5.1.0 xdg-basedir: 5.1.0
@@ -9174,31 +9163,31 @@ snapshots:
'@types/unist': 3.0.3 '@types/unist': 3.0.3
vfile-message: 4.0.3 vfile-message: 4.0.3
vite@5.4.19(@types/node@24.5.0): vite@5.4.19(@types/node@24.5.2):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.5.6 postcss: 8.5.6
rollup: 4.46.2 rollup: 4.46.2
optionalDependencies: optionalDependencies:
'@types/node': 24.5.0 '@types/node': 24.5.2
fsevents: 2.3.3 fsevents: 2.3.3
vitepress-plugin-group-icons@1.6.3(markdown-it@14.1.0)(vite@5.4.19(@types/node@24.5.0)): vitepress-plugin-group-icons@1.6.3(markdown-it@14.1.0)(vite@5.4.19(@types/node@24.5.2)):
dependencies: dependencies:
'@iconify-json/logos': 1.2.9 '@iconify-json/logos': 1.2.9
'@iconify-json/vscode-icons': 1.2.29 '@iconify-json/vscode-icons': 1.2.29
'@iconify/utils': 3.0.1 '@iconify/utils': 3.0.1
markdown-it: 14.1.0 markdown-it: 14.1.0
vite: 5.4.19(@types/node@24.5.0) vite: 5.4.19(@types/node@24.5.2)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
vitepress-plugin-tabs@0.7.3(vitepress@1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.0)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2))(vue@3.5.21(typescript@5.9.2)): vitepress-plugin-tabs@0.7.3(vitepress@1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.2)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2))(vue@3.5.21(typescript@5.9.2)):
dependencies: dependencies:
vitepress: 1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.0)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2) vitepress: 1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.2)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2)
vue: 3.5.21(typescript@5.9.2) vue: 3.5.21(typescript@5.9.2)
vitepress@1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.0)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2): vitepress@1.6.4(@algolia/client-search@5.35.0)(@types/node@24.5.2)(jwt-decode@4.0.0)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.2):
dependencies: dependencies:
'@docsearch/css': 3.8.2 '@docsearch/css': 3.8.2
'@docsearch/js': 3.8.2(@algolia/client-search@5.35.0)(search-insights@2.17.3) '@docsearch/js': 3.8.2(@algolia/client-search@5.35.0)(search-insights@2.17.3)
@@ -9207,7 +9196,7 @@ snapshots:
'@shikijs/transformers': 2.5.0 '@shikijs/transformers': 2.5.0
'@shikijs/types': 2.5.0 '@shikijs/types': 2.5.0
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
'@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@24.5.0))(vue@3.5.21(typescript@5.9.2)) '@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@24.5.2))(vue@3.5.21(typescript@5.9.2))
'@vue/devtools-api': 7.7.7 '@vue/devtools-api': 7.7.7
'@vue/shared': 3.5.18 '@vue/shared': 3.5.18
'@vueuse/core': 12.8.2(typescript@5.9.2) '@vueuse/core': 12.8.2(typescript@5.9.2)
@@ -9216,7 +9205,7 @@ snapshots:
mark.js: 8.11.1 mark.js: 8.11.1
minisearch: 7.1.2 minisearch: 7.1.2
shiki: 2.5.0 shiki: 2.5.0
vite: 5.4.19(@types/node@24.5.0) vite: 5.4.19(@types/node@24.5.2)
vue: 3.5.21(typescript@5.9.2) vue: 3.5.21(typescript@5.9.2)
optionalDependencies: optionalDependencies:
postcss: 8.5.6 postcss: 8.5.6
@@ -9393,6 +9382,6 @@ snapshots:
zod@3.25.76: {} zod@3.25.76: {}
zod@4.1.8: {} zod@4.1.11: {}
zwitch@2.0.4: {} zwitch@2.0.4: {}

View File

@@ -144,5 +144,5 @@ We're looking for feedback on a couple of different proposals, so please give
them a go and let us know what you think. :pray: them a go and let us know what you think. :pray:
[v3.37.0]: https://github.com/go-task/task/releases/tag/v3.37.0 [v3.37.0]: https://github.com/go-task/task/releases/tag/v3.37.0
[slim-sprig-math]: https://go-task.github.io/slim-sprig/math.html [slim-sprig-math]: https://sprig.taskfile.dev/math.html
[slim-sprig-list]: https://go-task.github.io/slim-sprig/lists.html [slim-sprig-list]: https://sprig.taskfile.dev/lists.html

View File

@@ -154,8 +154,8 @@ Reverted the changes made in #2113 and #2186 that affected the
- The default taskfile (output when using the `--init` flag) is now an embedded - The default taskfile (output when using the `--init` flag) is now an embedded
file in the binary instead of being stored in the code (#2112 by @pd93). file in the binary instead of being stored in the code (#2112 by @pd93).
- Improved the way we report the Task version when using the `--version` flag or - Improved the way we report the Task version when using the `--version` flag or
`{{.TASK_VERSION}}` variable. This should now be more consistent and easier <span v-pre>`{{.TASK_VERSION}}`</span> variable. This should now be more
for package maintainers to use (#2131 by @pd93). consistent and easier for package maintainers to use (#2131 by @pd93).
- Fixed a bug where globstar (`**`) matching in `sources` only resolved the - Fixed a bug where globstar (`**`) matching in `sources` only resolved the
first result (#2073, #2075 by @pd93). first result (#2073, #2075 by @pd93).
- Fixed a bug where sorting tasks by "none" would use the default sorting - Fixed a bug where sorting tasks by "none" would use the default sorting
@@ -169,7 +169,7 @@ Reverted the changes made in #2113 and #2186 that affected the
- Fix Fish completions when `--global` (`-g`) is given (#2134 by @atusy). - Fix Fish completions when `--global` (`-g`) is given (#2134 by @atusy).
- Fixed variables not available when using `defer:` (#1909, #2173 by @vmaerten). - Fixed variables not available when using `defer:` (#1909, #2173 by @vmaerten).
#### Package API ### Package API
- The [`Executor`](https://pkg.go.dev/github.com/go-task/task/v3#Executor) now - The [`Executor`](https://pkg.go.dev/github.com/go-task/task/v3#Executor) now
uses the functional options pattern (#2085, #2147, #2148 by @pd93). uses the functional options pattern (#2085, #2147, #2148 by @pd93).
@@ -226,7 +226,7 @@ Reverted the changes made in #2113 and #2186 that affected the
used, all other variables become unavailable in the templating system within used, all other variables become unavailable in the templating system within
the include (#2092 by @vmaerten). the include (#2092 by @vmaerten).
#### Package API ### Package API
Unlike our CLI tool, Unlike our CLI tool,
[Task's package API is not currently stable](https://taskfile.dev/reference/package). [Task's package API is not currently stable](https://taskfile.dev/reference/package).
@@ -615,9 +615,10 @@ stabilize the API in the future. #121 now tracks this piece of work.
- Fix a missing a line break on log when using `--watch` mode (#1285, #1297 by - Fix a missing a line break on log when using `--watch` mode (#1285, #1297 by
@FilipSolich). @FilipSolich).
- Fix `defer` on JSON Schema (#1288 by @calvinmclean and @andreynering). - Fix `defer` on JSON Schema (#1288 by @calvinmclean and @andreynering).
- Fix bug in usage of special variables like `{{.USER_WORKING_DIR}}` in - Fix bug in usage of special variables like
combination with `includes` (#1046, #1205, #1250, #1293, #1312, #1274 by <span v-pre>`{{.USER_WORKING_DIR}}`</span> in combination with `includes`
@andarto, #1309 by @andreynering). (#1046, #1205, #1250, #1293, #1312, #1274 by @andarto, #1309 by
@andreynering).
- Fix bug on `--status` flag. Running this flag should not have side-effects: it - Fix bug on `--status` flag. Running this flag should not have side-effects: it
should not update the checksum on `.task`, only report its status (#1305, should not update the checksum on `.task`, only report its status (#1305,
#1307 by @visciang, #1313 by @andreynering). #1307 by @visciang, #1313 by @andreynering).
@@ -723,9 +724,10 @@ it a go and let us know what you think via a
- Change the name of the file generated by `task --init` from `Taskfile.yaml` to - Change the name of the file generated by `task --init` from `Taskfile.yaml` to
`Taskfile.yml` (#1062 by @misitebao). `Taskfile.yml` (#1062 by @misitebao).
- Added new `splitArgs` template function - Added new `splitArgs` template function
(`{{splitArgs "foo bar 'foo bar baz'"}}`) to ensure string is split as (<span v-pre>`{{splitArgs "foo bar 'foo bar baz'"}}`</span>) to ensure string
arguments (#1040, #1059 by @dhanusaputra). is split as arguments (#1040, #1059 by @dhanusaputra).
- Fix the value of `{{.CHECKSUM}}` variable in status (#1076, #1080 by @pd93). - Fix the value of <span v-pre>`{{.CHECKSUM}}`</span> variable in status (#1076,
#1080 by @pd93).
- Fixed deep copy implementation (#1072 by @pd93) - Fixed deep copy implementation (#1072 by @pd93)
- Created a tool to assist with releases (#1086 by @pd93). - Created a tool to assist with releases (#1086 by @pd93).
@@ -933,8 +935,8 @@ it a go and let us know what you think via a
- Add logging in verbose mode for when a task starts and finishes (#533, #588). - Add logging in verbose mode for when a task starts and finishes (#533, #588).
- Fix an issue with preconditions and context errors (#597, #598). - Fix an issue with preconditions and context errors (#597, #598).
- Quote each `{{.CLI_ARGS}}` argument to prevent one with spaces to become many - Quote each <span v-pre>`{{.CLI_ARGS}}`</span> argument to prevent one with
(#613). spaces to become many (#613).
- Fix nil pointer when `cmd:` was left empty (#612, #614). - Fix nil pointer when `cmd:` was left empty (#612, #614).
- Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains two relevant - Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains two relevant
fixes: fixes:
@@ -950,8 +952,8 @@ it a go and let us know what you think via a
## v3.9.0 - 2021-10-02 ## v3.9.0 - 2021-10-02
- A new `shellQuote` function was added to the template system - A new `shellQuote` function was added to the template system
(`{{shellQuote "a string"}}`) to ensure a string is safe for use in shell (<span v-pre>`{{shellQuote "a string"}}`</span>) to ensure a string is safe
([mvdan/sh#727](https://github.com/mvdan/sh/pull/727), for use in shell ([mvdan/sh#727](https://github.com/mvdan/sh/pull/727),
[mvdan/sh#737](https://github.com/mvdan/sh/pull/737), [mvdan/sh#737](https://github.com/mvdan/sh/pull/737),
[Documentation](https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote)) [Documentation](https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote))
- In this version [mvdan.cc/sh](https://github.com/mvdan/sh) was upgraded with - In this version [mvdan.cc/sh](https://github.com/mvdan/sh) was upgraded with

View File

@@ -30,10 +30,10 @@ Studio Code][vscode-task].
you invest your time into a PR. you invest your time into a PR.
- **Experiments** - If there is no way to make your change backward compatible - **Experiments** - If there is no way to make your change backward compatible
then there is a procedure to introduce breaking changes into minor versions. then there is a procedure to introduce breaking changes into minor versions.
We call these "[experiments](./experiments/index.md)". If you're intending to work on We call these "[experiments](./experiments/index.md)". If you're intending to
an experiment, then please read the work on an experiment, then please read the
[experiments workflow](./experiments/index.md#workflow) document carefully and submit a [experiments workflow](./experiments/index.md#workflow) document carefully and
proposal first. submit a proposal first.
## 1. Setup ## 1. Setup
@@ -85,12 +85,12 @@ by using `task website` (requires `nodejs` & `pnpm`). All content is written in
Markdown and is located in the `website/src` directory. All Markdown documents Markdown and is located in the `website/src` directory. All Markdown documents
should have an 80 character line wrap limit (enforced by Prettier). should have an 80 character line wrap limit (enforced by Prettier).
When making a change, consider whether a change to the [Usage Guide](/docs/guide) is When making a change, consider whether a change to the
necessary. This document contains descriptions and examples of how to use Task [Usage Guide](/docs/guide) is necessary. This document contains descriptions and
features. If you're adding a new feature, try to find an appropriate place to examples of how to use Task features. If you're adding a new feature, try to
add a new section. If you're updating an existing feature, ensure that the find an appropriate place to add a new section. If you're updating an existing
documentation and any examples are up-to-date. Ensure that any examples follow feature, ensure that the documentation and any examples are up-to-date. Ensure
the [Taskfile Styleguide](./styleguide.md). that any examples follow the [Taskfile Styleguide](./styleguide.md).
If you added a new command or flag, ensure that you add it to the If you added a new command or flag, ensure that you add it to the
[CLI Reference](./reference/cli.md). New fields also need to be added to the [CLI Reference](./reference/cli.md). New fields also need to be added to the
@@ -168,7 +168,7 @@ If you have questions, feel free to ask them in the `#help` forum channel on our
[pnpm]: https://pnpm.io/ [pnpm]: https://pnpm.io/
[vitepress]: https://vitepress.dev [vitepress]: https://vitepress.dev
[json-schema]: [json-schema]:
https://github.com/go-task/task/blob/main/website/static/schema.json https://github.com/go-task/task/blob/main/website/src/public/schema.json
[task-open-issues]: https://github.com/go-task/task/issues [task-open-issues]: https://github.com/go-task/task/issues
[vscode-task-open-issues]: https://github.com/go-task/vscode-task/issues [vscode-task-open-issues]: https://github.com/go-task/vscode-task/issues
[good-first-issue]: [good-first-issue]:

View File

@@ -39,15 +39,15 @@ of node which you can use:
::: code-group ::: code-group
```text [HTTP/HTTPS] ```text [HTTP/HTTPS]
https://raw.githubusercontent.com/go-task/task/main/website/static/Taskfile.yml https://raw.githubusercontent.com/go-task/task/main/website/src/public/Taskfile.yml
``` ```
```text [Git over HTTP] ```text [Git over HTTP]
https://github.com/go-task/task.git//website/static/Taskfile.yml?ref=main https://github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main
``` ```
```text [Git over SSH] ```text [Git over SSH]
git@github.com/go-task/task.git//website/static/Taskfile.yml?ref=main git@github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main
``` ```
::: :::
@@ -56,7 +56,7 @@ git@github.com/go-task/task.git//website/static/Taskfile.yml?ref=main
### HTTP/HTTPS ### HTTP/HTTPS
`https://raw.githubusercontent.com/go-task/task/main/website/static/Taskfile.yml` `https://raw.githubusercontent.com/go-task/task/main/website/src/public/Taskfile.yml`
This is the most basic type of remote node and works by downloading the file This is the most basic type of remote node and works by downloading the file
from the specified URL. The file must be a valid Taskfile and can be of any from the specified URL. The file must be a valid Taskfile and can be of any
@@ -66,7 +66,7 @@ find a valid Taskfile, an error is returned.
### Git over HTTP ### Git over HTTP
`https://github.com/go-task/task.git//website/static/Taskfile.yml?ref=main` `https://github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main`
This type of node works by downloading the file from a Git repository over This type of node works by downloading the file from a Git repository over
HTTP/HTTPS. The first part of the URL is the base URL of the Git repository. HTTP/HTTPS. The first part of the URL is the base URL of the Git repository.
@@ -80,7 +80,7 @@ This is the same URL that you would use to clone the repo over HTTP.
### Git over SSH ### Git over SSH
`git@github.com/go-task/task.git//website/static/Taskfile.yml?ref=main` `git@github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main`
This type of node works by downloading the file from a Git repository over SSH. This type of node works by downloading the file from a Git repository over SSH.
The first part of the URL is the user and base URL of the Git repository. This The first part of the URL is the user and base URL of the Git repository. This
@@ -121,19 +121,19 @@ file. For example:
::: code-group ::: code-group
```shell [HTTP/HTTPS] ```shell [HTTP/HTTPS]
$ task --taskfile https://raw.githubusercontent.com/go-task/task/main/website/static/Taskfile.yml $ task --taskfile https://raw.githubusercontent.com/go-task/task/main/website/src/public/Taskfile.yml
task: [hello] echo "Hello Task!" task: [hello] echo "Hello Task!"
Hello Task! Hello Task!
``` ```
```shell [Git over HTTP] ```shell [Git over HTTP]
$ task --taskfile https://github.com/go-task/task.git//website/static/Taskfile.yml?ref=main $ task --taskfile https://github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main
task: [hello] echo "Hello Task!" task: [hello] echo "Hello Task!"
Hello Task! Hello Task!
``` ```
```shell [Git over SSH] ```shell [Git over SSH]
$ task --taskfile git@github.com/go-task/task.git//website/static/Taskfile.yml?ref=main $ task --taskfile git@github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main
task: [hello] echo "Hello Task!" task: [hello] echo "Hello Task!"
Hello Task! Hello Task!
``` ```
@@ -152,21 +152,21 @@ the remote Taskfile will be available to run from your main Taskfile.
version: '3' version: '3'
includes: includes:
my-remote-namespace: https://raw.githubusercontent.com/go-task/task/main/website/static/Taskfile.yml my-remote-namespace: https://raw.githubusercontent.com/go-task/task/main/website/src/public/Taskfile.yml
``` ```
```yaml [Git over HTTP] ```yaml [Git over HTTP]
version: '3' version: '3'
includes: includes:
my-remote-namespace: https://github.com/go-task/task.git//website/static/Taskfile.yml?ref=main my-remote-namespace: https://github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main
``` ```
```yaml [Git over SSH] ```yaml [Git over SSH]
version: '3' version: '3'
includes: includes:
my-remote-namespace: git@github.com/go-task/task.git//website/static/Taskfile.yml?ref=main my-remote-namespace: git@github.com/go-task/task.git//website/src/public/Taskfile.yml?ref=main
``` ```
::: :::
@@ -292,7 +292,9 @@ the `--download` flag.
You can use the `--clear-cache` flag to clear all cached remote files. You can use the `--clear-cache` flag to clear all cached remote files.
## Configuration ## Configuration
This experiment adds a new `remote` section to the [configuration file](../reference/config.md).
This experiment adds a new `remote` section to the
[configuration file](../reference/config.md).
- **Type**: `object` - **Type**: `object`
- **Description**: Remote configuration settings for handling remote Taskfiles - **Description**: Remote configuration settings for handling remote Taskfiles
@@ -330,7 +332,7 @@ remote:
#### `timeout` #### `timeout`
- **Type**: `string` - **Type**: `string`
- **Default**: Not specified - **Default**: 10s
- **Pattern**: `^[0-9]+(ns|us|µs|ms|s|m|h)$` - **Pattern**: `^[0-9]+(ns|us|µs|ms|s|m|h)$`
- **Description**: Timeout duration for remote operations (e.g., '30s', '5m') - **Description**: Timeout duration for remote operations (e.g., '30s', '5m')
@@ -342,12 +344,12 @@ remote:
#### `cache-expiry` #### `cache-expiry`
- **Type**: `string` - **Type**: `string`
- **Default**: Not specified - **Default**: 0s (no cache)
- **Pattern**: `^[0-9]+(ns|us|µs|ms|s|m|h)$` - **Pattern**: `^[0-9]+(ns|us|µs|ms|s|m|h)$`
- **Description**: Cache expiry duration for remote Taskfiles (e.g., '1h', '24h') - **Description**: Cache expiry duration for remote Taskfiles (e.g., '1h',
'24h')
```yaml ```yaml
remote: remote:
cache-expiry: "6h" cache-expiry: "6h"
``` ```

View File

@@ -467,7 +467,7 @@ includes:
Vars declared in the included Taskfile have preference over the variables in the Vars declared in the included Taskfile have preference over the variables in the
including Taskfile! If you want a variable in an included Taskfile to be including Taskfile! If you want a variable in an included Taskfile to be
overridable, use the overridable, use the
[default function](https://go-task.github.io/slim-sprig/defaults.html): [default function](https://sprig.taskfile.dev/defaults.html):
<span v-pre>`MY_VAR: '{{.MY_VAR | default "my-default-value"}}'`</span>. <span v-pre>`MY_VAR: '{{.MY_VAR | default "my-default-value"}}'`</span>.
::: :::

View File

@@ -35,7 +35,7 @@ To get autocompletion and validation for your Taskfile, see the
This was initially created by @KROSF in This was initially created by @KROSF in
[this Gist](https://gist.github.com/KROSF/c5435acf590acd632f71bb720f685895) and [this Gist](https://gist.github.com/KROSF/c5435acf590acd632f71bb720f685895) and
is now officially maintained in is now officially maintained in
[this file](https://github.com/go-task/task/blob/main/website/static/schema.json) [this file](https://github.com/go-task/task/blob/main/website/src/public/schema.json)
and made available at https://taskfile.dev/schema.json. This schema can be used and made available at https://taskfile.dev/schema.json. This schema can be used
to validate Taskfiles and provide autocompletion in many code editors: to validate Taskfiles and provide autocompletion in many code editors: