hako/go.mod
Felipe M 70b0896183
All checks were successful
CI / goreleaser-lint (push) Successful in 11s
CI / format (push) Successful in 44s
CI / lint (push) Successful in 5m30s
CI / test (push) Successful in 7m24s
CI / build (push) Successful in 7m8s
Release / release (push) Successful in 7m28s
CI / e2e (push) Successful in 26m54s
deps: upgrade dependencies and add a JS runtime for yt-dlp (#3)
Upgrades every dependency in the code and the packaging, and adds a JS runtime to the container image so yt-dlp can solve YouTube JS challenges.

## Code

- **Go server:** `modernc.org/sqlite` 1.59.0 → 1.60.1, `modernc.org/libc` 1.77.1, `xstrings` 1.6.2, `go-strftime` 1.1.0 (all indirect; no direct module had a newer version).
- **Go e2e:** `moby/moby/api` 1.56.1, `moby/moby/client` 0.6.1, `gopsutil` 4.26.9, `klauspost/compress` 1.20.1.
- **Webapp:** `vite` 8.3.2, `@tabler/icons-vue` 3.48.0, `dompurify` 3.4.16, `eslint-plugin-vue` 10.11.1.
- **TypeScript 5.9.3 → 6.0.3.** Version 6 is now stable and inside the `typescript-eslint` range (`<6.1.0`). TypeScript 7 still breaks `typescript-eslint`.
- `package-lock.json` stays on lockfile format v2 to keep the diff small.

## Packaging and CI

- **Alpine 3.23 → 3.24** in `Containerfile` and `e2e/Dockerfile.e2e`.
- **`docker:27-dind` → `docker:29-dind`** for the e2e CI service.
- **`goreleaser-action` v6.4.0 → v7.2.3**, **`setup-qemu-action` / `setup-buildx-action` v3 → v4**. The only breaking change in their release notes is the Node 24 runtime.
- **`golangci-lint` v2.13.2 → v2.14.0.**

## JS runtime for yt-dlp

yt-dlp solves YouTube JS challenges with `yt-dlp-ejs` and a JS runtime.

- **amd64 and arm64:** the image installs `deno` and `yt-dlp-ejs`.
- **armv7:** Alpine ships no deno for armv7 (3.24 or edge). The image installs `nodejs` and writes `--js-runtimes node` to `/etc/yt-dlp.conf`, because yt-dlp only runs deno unless told otherwise. hako does not pass `--ignore-config`, so the file applies.

## Verification

- `go test -race ./...`, e2e `go vet`, `golangci-lint` v2.14.0 (0 issues).
- `eslint`, `vite build`, `goreleaser check`.
- Built the `Containerfile` for `linux/amd64`, `linux/arm64` and `linux/arm/v7`. `yt-dlp -v` reports `JS runtimes: deno-2.7.4` on amd64/arm64 and `node-24.18.1` on armv7.
- A real YouTube URL on amd64 resolved formats with deno as the JS challenge provider. Not tested on arm64 or armv7.
- The e2e suite was not run locally.

## Known issues

- **Docker 29 dind** is not tested yet. The e2e job starts `containerd` and `dockerd` with a custom command; this PR's CI run will show if it still works.
- **`vue-tsc` reports 9 type errors, all also present on `master`:** the 8 known from #2, plus `process` in `vite.config.ts` (no `@types/node`). TypeScript 5.9.3 gives the same error.

Reviewed-on: #3
2026-10-02 13:10:18 +02:00

57 lines
2.3 KiB
Modula-2

module git.nakama.town/fmartingr/hako
go 1.26.0
require (
codeberg.org/readeck/go-readability v0.0.0-20260615104154-29522a0e224f
git.nakama.town/fmartingr/gotoolkit v0.2.4
github.com/JohannesKaufmann/html-to-markdown v1.6.0
github.com/PuerkitoBio/goquery v1.13.0
github.com/blang/semver/v4 v4.0.0
github.com/go-shiori/obelisk v0.0.0-20251018085940-a77acb503b85
github.com/golang-jwt/jwt/v5 v5.3.1
github.com/google/uuid v1.6.0
github.com/huandu/go-sqlbuilder v1.43.0
github.com/spf13/cobra v1.10.2
github.com/spf13/viper v1.21.0
github.com/stretchr/testify v1.12.1
golang.org/x/crypto v0.57.0
golang.org/x/image v0.46.0
)
require (
github.com/andybalholm/cascadia v1.3.5 // indirect
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/dustin/go-humanize v1.1.0 // indirect
github.com/fsnotify/fsnotify v1.10.1 // indirect
github.com/go-shiori/dom v0.0.0-20230515143342-73569d674e1c // indirect
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f // indirect
github.com/huandu/go-clone v1.7.3 // indirect
github.com/huandu/xstrings v1.6.2 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/kennygrant/sanitize v1.2.4 // indirect
github.com/mattn/go-isatty v0.0.24 // indirect
github.com/ncruces/go-strftime v1.1.0 // indirect
github.com/pelletier/go-toml/v2 v2.4.3 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/sagikazarmark/locafero v0.12.0 // indirect
github.com/sirupsen/logrus v1.10.2 // indirect
github.com/spf13/afero v1.15.0 // indirect
github.com/spf13/cast v1.10.0 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/tdewolff/parse/v2 v2.8.16 // indirect
go.yaml.in/yaml/v3 v3.0.5 // indirect
golang.org/x/net v0.59.0 // indirect
golang.org/x/sync v0.23.0 // indirect
golang.org/x/sys v0.48.0 // indirect
golang.org/x/text v0.42.0 // indirect
modernc.org/libc v1.77.1 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.12.1 // indirect
modernc.org/sqlite v1.60.1 // indirect
)