deps: upgrade server, webapp and e2e dependencies #2
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/upgrade-deps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Upgrades every dependency in the server, the webapp and the e2e module, and fixes the CI breakage found along the way.
Server
All direct and indirect dependencies to latest: goquery 1.9.2 → 1.13.0, go-sqlbuilder 1.38.2 → 1.43.0, cobra 1.9.1 → 1.10.2, testify 1.11.1 → 1.12.1, x/crypto 0.46.0 → 0.57.0, modernc.org/sqlite 1.34.1 → 1.59.0.
The
godirective moves to 1.26.0 because thegolang.org/xmodules now require it. The Actions workflows readgo-version-file, so they follow automatically.Webapp
Major bumps: pinia 2 → 4, vue-router 4 → 5, vite 6 → 8, eslint 9 → 10, vue-tsc 2 → 3,
@vitejs/plugin-vue5 → 6, pdfjs-dist 5 → 6, marked 17 → 18.TypeScript stays on 5.9.3.
typescript-eslintdeclarestypescript >=4.8.4 <6.1.0and hard-errors under TS 7 (typescript-eslint does not support TS 7.0); TS 6 exists only as6.0.0-beta. 5.9.3 is the highest version that keepsmake lint-webappworking. Tracking: typescript-eslint#10940.Dropped two dead dependencies:
@codemirror/basic-setup(no importers) and@types/dompurify(npm-deprecated stub; dompurify ships its own types).Vite 8 builds with rolldown, which rejects a type imported as a value, so
Extensionbecomes animport typeinJsonEditor.vue.Fixes found on the way
tsconfig.app.jsoninherited nothing. It extended./tsconfig.json, a solution file holding onlyfiles: []andreferences, so it picked up notarget,lib,jsxornoEmit. Type checks failed on every built-in type (Cannot find name 'Map') andvue-tsc -bemitted JavaScript next to the TypeScript sources, which then shadowed them and brokevite build. Now extends@vue/tsconfig/tsconfig.dom.json— already a devDependency, until now unused — and setsnoEmit.With type checking working again, eight pre-existing app-code type errors are now visible (PDF render params, an unused
@ts-expect-error,HeadersInitindexing, a missingrole,total_size, a routeqparam). Left untouched — they pre-date this branch, verified by runningvue-tscagainst the old dependency set and diffing: byte-identical output.make ci-lintcould not work. It pinned golangci-lintv1.64.5and installed from the pre-v2 module path, against aversion: "2"config. Nowv2.13.2on.../golangci-lint/v2/cmd/....e2e on testcontainers 0.44 rather than 0.40:
MappedPortnow takes astringinstead of anat.Port.Verification
go build·go vet(root + e2e) ·go test -race11/11 packages ·go mod tidyno-op on both modules ·golangci-lintv2.13.2 0 issues ·goreleaser check·vite build·eslint0 problems ·vue-tscidentical to the pre-upgrade baseline.The e2e suite went 41 pass / 6 fail → 47 pass / 0 fail.
The e2e suite was re-run on the merged tree and is green there too: 47 pass / 0 fail (
ok github.com/fmartingr/hako/e2e/playwright 996.259s). That confirms the one combination neither branch had exercised — master's shared-network e2e code running against testcontainers 0.44 rather than the 0.40 it was written for.Merge note
Master's Forgejo Actions migration independently fixed the same three e2e bugs this branch did (the
.link-itemselector, theCreateLinknavigation guard,IsVisiblestrict mode). Master's wording was kept for all three, along with its shared-Docker-network approach, which is better than the host-gateway route used here — it does not depend on Docker Desktop and works under the Docker-in-Docker service the new e2e job uses.Consequently
eca5c88is largely inert: its branch-gating and Go-version changes edited.woodpecker/files the merge deleted. Only its golangci-lint fix survives into the tree.tsconfig.app.json extended ./tsconfig.json, which is a solution file holding only `files: []` and `references`. It therefore inherited no target, lib, jsx or noEmit, so type checks failed on every built-in type ("Cannot find name 'Map'") and vue-tsc -b emitted JavaScript next to the TypeScript sources, which then shadowed them and broke `vite build`. Extends @vue/tsconfig/tsconfig.dom.json (already a devDependency, until now unused) and sets noEmit explicitly. Note vue-tsc must run under node; under `bun --bun` it fails to resolve .vue modules at all.