hako/e2e/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

65 lines
2.8 KiB
Modula-2

module github.com/fmartingr/hako/e2e
go 1.26.0
replace github.com/fmartingr/hako => ../
require (
github.com/google/uuid v1.6.0
github.com/mattn/go-sqlite3 v1.14.52
github.com/mxschmitt/playwright-go v0.6201.1
github.com/stretchr/testify v1.12.1
github.com/testcontainers/testcontainers-go v0.44.0
)
require (
dario.cat/mergo v1.0.2 // indirect
github.com/Azure/go-ansiterm v0.0.0-20260917205352-e937bb47801a // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.2.0 // indirect
github.com/containerd/platforms v0.2.1 // indirect
github.com/cpuguy83/dockercfg v0.3.2 // indirect
github.com/deckarep/golang-set/v2 v2.9.0 // indirect
github.com/distribution/reference v0.6.0 // indirect
github.com/docker/go-connections v0.8.1 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/ebitengine/purego v0.11.1 // indirect
github.com/felixge/httpsnoop v1.1.0 // indirect
github.com/go-logr/logr v1.4.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/klauspost/compress v1.20.1 // indirect
github.com/lufia/plan9stats v0.0.0-20260802145828-341c2f0c90b5 // indirect
github.com/magiconair/properties v1.18.12 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/go-archive v0.3.3 // indirect
github.com/moby/moby/api v1.56.1 // indirect
github.com/moby/moby/client v0.6.1 // indirect
github.com/moby/patternmatcher v0.6.1 // indirect
github.com/moby/sys/sequential v0.7.0 // indirect
github.com/moby/sys/user v0.4.1 // indirect
github.com/moby/sys/userns v0.2.1 // indirect
github.com/moby/term v0.5.2 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/power-devops/perfstat v0.0.0-20260916203055-22a1a467d9f0 // indirect
github.com/shirou/gopsutil/v4 v4.26.9 // indirect
github.com/sirupsen/logrus v1.10.2 // indirect
github.com/tklauser/go-sysconf v0.4.0 // indirect
github.com/tklauser/numcpus v0.12.0 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.mongodb.org/mongo-driver v1.17.10 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0 // indirect
go.opentelemetry.io/otel v1.46.0 // indirect
go.opentelemetry.io/otel/metric v1.46.0 // indirect
go.opentelemetry.io/otel/trace v1.46.0 // indirect
go.yaml.in/yaml/v3 v3.0.5 // indirect
golang.org/x/crypto v0.57.0 // indirect
golang.org/x/sys v0.48.0 // indirect
)