Commit Graph

323 Commits

Author SHA1 Message Date
silverwind
90cb5f9a1f Clean up npm dependencies (#35508)
- Remove `minimatch`, was inadvertently re-introduced in
https://github.com/go-gitea/gitea/pull/35482
- Remove `postcss-nesting`, originally introduced in
https://github.com/go-gitea/gitea/pull/29746 to support some fork, but
I'm now of the opinion we should not ship dependencies that we don't use
ourselves.
- Remove `eslint-plugin-no-jquery`, plugin is currently disabled because
of compat issues with eslint 9
(https://github.com/wikimedia/eslint-plugin-no-jquery/issues/311)
2025-09-17 21:39:44 +00:00
silverwind
6033c47f90 Enable more markdown paste features in textarea editor (#35494)
Enable the [same paste
features](https://github.com/github/paste-markdown#paste-markdown-objects)
that GitHub has, notably the ability to paste text containing HTML links
and have them automatically turn into Markdown links. As far as I can
tell, previous paste features all work as expected.

---------

Signed-off-by: silverwind <me@silverwind.io>
2025-09-16 23:55:57 +00:00
silverwind
8c8eb4b6f9 Clean up npm dependencies (#35484)
- `type-fest` is replaced by our own types
- `@stylistic/eslint-plugin-js` is no longer in use, it was replaced
with `@stylistic/eslint-plugin`
- `@types/license-checker-webpack-plugin` does not apply to our forked
version and has a type stub
2025-09-15 16:34:54 +02:00
silverwind
69e595cdd8 Update eslint to v9 (#35485)
Update eslint and all plugins. Many plugins still do not ship type
definitions so I had to add stubs. Also, I had to put a few typescript
error expectations because if some unknown error in the types.

`eslint-plugin-no-jquery` is disabled because it's not compatible with
eslint 9 flat config
(https://github.com/wikimedia/eslint-plugin-no-jquery/issues/311).
2025-09-14 19:15:06 +03:00
silverwind
e612b9744c Revert the rspack change (#35482)
Partially revert https://github.com/go-gitea/gitea/pull/35460 until
rspack supports RISC-V
(https://github.com/web-infra-dev/rspack/issues/11656).
2025-09-14 08:37:07 +02:00
wxiaoguang
325e059a50 Fix different behavior in status check pattern matching with double stars (#35474)
Drop the minimatch dependency, use our own glob compiler.

Fix #35473
2025-09-13 11:53:27 +08:00
silverwind
866c636f52 Replace webpack with rspack (#35460)
Given that this bundler is almost a drop-in replacement to webpack, it
might be worth switching. So far it seems everything is working, but
more testing is needed, so I'm setting draft.

- Dev build time is reduced from 10s to 5s
- Prod build time is reduced from 16s to 10s
- JS output size is reduced from 21.3MB to 19.8MB
- CSS output size is increased from 778kB to 818kB
2025-09-12 19:25:59 +00:00
silverwind
47df15cabc Update JS and PY dependencies (#35444)
Tested all affected dependencies.
2025-09-10 02:30:20 +02:00
silverwind
801da7fdab Update js dependencies (#35429) 2025-09-07 18:50:44 +02:00
silverwind
38ad58575a Support Node.js 22.6 with type stripping (#35427)
This solves the [docker build
failure](https://github.com/go-gitea/gitea/actions/runs/17514788636/job/49750917680)
on `linux/riscv64` by enabling the experimental flag on Node.js before
22.18.
2025-09-07 08:02:06 +00:00
silverwind
b8f1c9f048 Migrate tools and configs to typescript, require node.js >= 22.18.0 (#35421)
Migrate all JS config and tools to TS and fix a number of type issues.
This required Node.js 22.18.0 or greater where [type-stripping was
enabled](https://nodejs.org/en/blog/release/v22.18.0) by default.

Given that Node 22 is the current LTS, I think it's ok to assume that
the user has a recent version of it.

Webpack currently requires the `--disable-interpret` flag to work,
should be fixed eventually with
https://github.com/webpack/webpack-cli/issues/4525.
`fast-glob` is replaced by `fs.globSync`, available in Node 22.0.0 or
greater.
2025-09-06 12:58:25 +00:00
silverwind
89b4be057b Switch to @resvg/resvg-wasm for generate-images (#35415)
Use the WASM module of [`resvg-js`](https://github.com/thx/resvg-js) to
replace `fabric` and the problematic native `canvas` dependency. WASM
works cross-platform so we can include it in the main `package.json`.
2025-09-05 21:06:02 +00:00
techknowlogick
361e59fd53 Switch to pnpm (#35274)
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: silverwind <me@silverwind.io>
2025-09-04 01:17:14 +00:00
Lunny Xiao
0739595dcd Upgrade mermaid from 11.9.0 to 11.10.0 (#35329) 2025-08-22 12:53:09 +02:00
silverwind
c4c1a4bd18 Update stylelint, enable report* options (#35236)
- Update stylelint
- Enable three [`report*`
directives](https://stylelint.io/user-guide/configure/#report)
- Fix discovered issues
2025-08-08 16:52:49 +00:00
silverwind
e7d6f74450 Update JS and PY deps (#35191)
- Updated all dependencies
- Fixed new CSS lint errors, specifically tested the
RepoActivityTopAuthors.vue change
- Regenerated SVGs
2025-08-01 07:24:26 +00:00
silverwind
41678e1a57 Update JS dependencies (#34951)
Ran `make update-js svg` and adapted to svgo v4.
2025-07-04 17:02:32 +02:00
wxiaoguang
1d4ad5aa2b Improve html escape (#34911)
drop "escape-goat"
2025-07-01 21:44:05 +08:00
Kerwin Bryant
176962c03e Add support for 3D/CAD file formats preview (#34794)
Fix #34775 

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2025-06-30 16:12:25 +08:00
Yarden Shoham
e17dfce61b Upgrade htmx to 2.0.6 (#34887)
Release notes:
https://github.com/bigskysoftware/htmx/releases/tag/v2.0.6

Tested Star, Watch, and the admin dashboard page. All functionality
remains unchanged.

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
2025-06-27 15:21:52 -04:00
silverwind
04783f548d Update uint8-to-base64, remove type stub (#34844)
The module now ships type definitions so remove our type stub.

Ref: https://github.com/WebReflection/uint8-to-base64/pull/4
2025-06-25 03:06:33 +00:00
Yarden Shoham
7436c6297d Upgrade htmx to 2.0.5 (#34809)
Release notes:
https://github.com/bigskysoftware/htmx/releases/tag/v2.0.5

Tested Star, Watch, and the admin dashboard page. All functionality
remains unchanged.

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
2025-06-21 13:06:55 -07:00
silverwind
dcc9206a59 Raise minimum Node.js version to 20, test on 24 (#34713)
- Node.js 18 is now EOL, so raise minimum version to current LTS v20
- Test on 24
- Change devcontainers to use LTS version (currently 22),
[ref](https://github.com/devcontainers/features/tree/main/src/node)
2025-06-13 13:40:39 -04:00
silverwind
8d135ef5cf Update JS deps (#34701)
Result of `make update-js`. Fixes
https://github.com/go-gitea/gitea/security/dependabot/114.
2025-06-12 05:06:27 +02:00
silverwind
f6f6aedd4f Update JS deps, regenerate SVGs (#34640)
Result of `make update-js svg`.
2025-06-07 17:59:36 +00:00
Yarden Shoham
2ecd73d2e5 Bump @github/relative-time-element to v4.4.8 (#34413)
Tested, it works as before.

Changelog:
https://github.com/github/relative-time-element/releases/tag/v4.4.8

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
2025-05-09 14:11:13 +00:00
silverwind
dd886d729f Update JS and PY dependencies (#34391)
Result of `make update-js update-py svg`. Quick test of the UI worked.
2025-05-07 13:21:38 -04:00
Yarden Shoham
6bd8fe5353 Bump @github/relative-time-element to v4.4.7 (#34384)
Tested, it works as before.
Changelog:
https://github.com/github/relative-time-element/releases/tag/4.4.7

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
2025-05-06 12:44:25 -04:00
Yarden Shoham
3446f14ba0 Bump @github/relative-time-element to v4.4.6 (#34352)
Tested, it works as before.

Changelog:
https://github.com/github/relative-time-element/releases/tag/v4.4.6

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
2025-05-03 10:31:16 -07:00
wxiaoguang
d1ad8e1e80 Update unrs-resolver (#34279) 2025-04-24 14:02:38 +02:00
wxiaoguang
58d2a87c6c update go&js dependencies (#34262) 2025-04-23 21:22:40 +00:00
silverwind
90b509aafb Update JS and PY deps (#34143)
- Update selected dependencies.
- Ran `make svg && git add --all`.
- Tested mermaid and swagger.
- Mark `fileicon` assets as generated so they don't spam the diff.
- Webpack is not upgraded because it has some regression.
2025-04-07 21:42:32 -07:00
silverwind
52663113d4 Update JS and PY deps, misc tweaks (#33903)
- Update all updateable dependencies
- Add a few more unupgradable ones to updates blocklist
- Adapt to breaking changes
- Update to typescript 5.8, enable `erasableSyntaxOnly` which
necessitated a change because of forbidden syntax
- Misc cleanups
- Tested htmx, easymde, swagger, chart.js
2025-03-16 10:04:18 +01:00
wxiaoguang
34e5df6d30 Add material icons for file list (#33837) 2025-03-10 15:57:17 +08:00
silverwind
3bbacac62c Update JS and PY dependencies (#33587)
- Update all dependencies excluding `tailwindcss` and `idiomorph`
- Tested citation, asciinema, pdf, swagger

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2025-02-16 14:14:23 +01:00
silverwind
bcd1317d17 Switch to @vitest/eslint-plugin (#33573)
Package has been renamed and now also provides the globals so we can
replace two dependencies with one.

Ref: https://github.com/vitest-dev/eslint-plugin-vitest/issues/537
2025-02-12 11:08:34 -05:00
silverwind
05e9063013 Update @github/text-expander-element, adapt type imports (#33449)
Followup to https://github.com/go-gitea/gitea/pull/33435, upstream issue
is fixed so the imports are clean now.
2025-01-31 02:50:18 +00:00
silverwind
dc7ddaee2a Update @github/text-expander-element to 2.9.0 (#33435)
Update and use their newly exported types. Tested, works.

The import path is a bit suboptimal, to be fixed once
https://github.com/github/text-expander-element/pull/75 is merged and
released.

Co-authored-by: Giteabot <teabot@gitea.io>
2025-01-29 23:38:53 +00:00
silverwind
8f433132e1 Update stylelint config (#33419)
- Inherit stylelint config from
[`stylelint-config-recommended`](https://github.com/stylelint/stylelint-config-recommended),
removed all stylelint core rule options that were either already in
their config or disabled.
- `no-descending-specificity` diverges from their config, seems to much
work currently.
- Tweaked a few rules.
- Added
[`stylelint-define-config`](https://github.com/stylelint-types/stylelint-define-config)
so that typescript can validate the config.
2025-01-28 02:34:01 +00:00
silverwind
d64c849d16 Update JS dependencies (#33359)
Fixes: https://github.com/go-gitea/gitea/security/dependabot/88
Fixes: https://github.com/go-gitea/gitea/security/dependabot/87

Tested Katex, works as expected.
2025-01-22 23:33:02 +01:00
silverwind
ab347fd0f7 Update JS and PY dependencies (#33249)
- Update all JS and PY dependencies
- Tested affected dependencies
- Disabled `async-preventdefault` lint rule because it brought up new
false-positives.
2025-01-16 09:56:41 +00:00
silverwind
98d7e04767 Switch back to vue-tsc (#33248)
It supports Typescript 5.7 now, so we can switch back to the official
version.
2025-01-13 21:57:52 +01:00
wxiaoguang
ea198f9ea8 Fix eslint (#33002)
Fix  #32982
Related #32869

* eslint-plugin-github 5.1.x doesn't work well with eslint8
* no-undef is still needed
2024-12-27 19:34:39 +00:00
silverwind
f47fb4fbaf Update JS dependencies (#32914)
Result of `make update-js`. Tested Monaco and Math.
2024-12-19 20:05:16 +00:00
silverwind
c8ea41b049 Fix remaining typescript issues, enable tsc (#32840)
Fixes 79 typescript errors. Discovered at least two bugs in
`notifications.ts`, and I'm pretty sure this feature was at least
partially broken and may still be, I don't really know how to test it.

After this, only like ~10 typescript errors remain in the codebase but
those are harder to solve.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2024-12-16 05:02:32 +08:00
Yarden Shoham
2ee4aa8998 Upgrade htmx to 2.0.4 (#32834)
Release notes:
https://github.com/bigskysoftware/htmx/releases/tag/v2.0.4

Tested `Star`, `Watch`, and the admin dashboard page. All functionality
remains unchanged.

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
2024-12-14 02:34:03 +00:00
silverwind
ee45950dab Switch to eslint-plugin-import-x (#32790)
Switch from deprecated `eslint-plugin-i` to
[`eslint-plugin-import-x`](https://github.com/un-ts/eslint-plugin-import-x).
2024-12-12 02:07:32 +00:00
Yarden Shoham
ff14ada965 Bump relative-time-element to v4.4.4 (#32730)
Fix #32716

Tested, it still works.

- cc @wxiaoguang for
https://github.com/github/relative-time-element/pull/296

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
2024-12-06 06:11:35 +08:00
silverwind
5cada75596 Update dependencies, tweak eslint (#32719)
- ~~Remove `eslint-plugin-sonarjs`. I lost faith in it since they moved
it to their monorepo and I can't recall the last time when this plugin
raised a useful error.~~
- Add new rules from `no-jquery`
- ~~Tweak typescript config to prevent temp files in root directory in
certain situations~~ File is just gitignored now.
- Tested all relevant dependencies
2024-12-05 16:13:10 +00:00
Kerwin Bryant
68d9f36543 Allow cropping an avatar before setting it (#32565)
Provide a cropping tool on the avatar editing page, allowing users to
select the cropping area themselves. This way, users can decide the
displayed area of the image, rather than us deciding for them.

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2024-11-28 02:15:59 +00:00