Compare commits

...

295 Commits

Author SHA1 Message Date
32e2abdd6e upd workflow2 2025-08-13 23:03:07 +05:00
fb35acdb20 upd workflow 2025-08-13 22:50:12 +05:00
dependabot[bot]
8afaae2dca
Bump vite from 7.1.1 to 7.1.2 (#760)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:48:07 +01:00
dependabot[bot]
2569a346ca
Bump @types/react from 19.1.9 to 19.1.10 (#758)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.9 to 19.1.10.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:42:32 +01:00
dependabot[bot]
cb6b73079e
Bump @mui/icons-material from 7.2.0 to 7.3.1 (#757)
Bumps [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) from 7.2.0 to 7.3.1.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.1/packages/mui-icons-material)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:41:23 +01:00
dependabot[bot]
fc85f447b6
Bump typescript-eslint from 8.38.0 to 8.39.1 (#756)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.38.0 to 8.39.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.39.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.39.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:41:08 +01:00
dependabot[bot]
309df5a83a
Bump eslint-plugin-prettier from 5.5.3 to 5.5.4 (#753)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.3 to 5.5.4.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.3...v5.5.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:40:53 +01:00
dependabot[bot]
76d2b8bf44
Bump @tanstack/react-query from 5.84.1 to 5.84.2 (#751)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.84.1 to 5.84.2.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.84.2/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.84.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:38:28 +01:00
dependabot[bot]
c5b2a17a3f
Bump @mui/material from 7.2.0 to 7.3.1 (#748)
Bumps [@mui/material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material) from 7.2.0 to 7.3.1.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.1/packages/mui-material)

---
updated-dependencies:
- dependency-name: "@mui/material"
  dependency-version: 7.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:19:58 +01:00
dependabot[bot]
388eaf4516
Bump @types/node from 24.1.0 to 24.2.1 (#747)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.1.0 to 24.2.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.2.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:19:41 +01:00
dependabot[bot]
ad69afdef3
Bump ts-jest-mock-import-meta from 1.3.0 to 1.3.1 (#746)
Bumps [ts-jest-mock-import-meta](https://github.com/ThomZz/ts-jest-mock-import-meta) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/ThomZz/ts-jest-mock-import-meta/releases)
- [Commits](https://github.com/ThomZz/ts-jest-mock-import-meta/compare/v1.3.0...v1.3.1)

---
updated-dependencies:
- dependency-name: ts-jest-mock-import-meta
  dependency-version: 1.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:19:24 +01:00
dependabot[bot]
f077bef812
Bump eslint from 9.32.0 to 9.33.0 (#745)
Bumps [eslint](https://github.com/eslint/eslint) from 9.32.0 to 9.33.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.32.0...v9.33.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.33.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:17:06 +01:00
dependabot[bot]
3c82873568
Bump react-router-dom from 7.7.1 to 7.8.0 (#744)
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.7.1 to 7.8.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.8.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:15:44 +01:00
dependabot[bot]
fcc6384500
Bump @vitejs/plugin-react from 4.7.0 to 5.0.0 (#743)
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.7.0 to 5.0.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.0.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 5.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:15:07 +01:00
dependabot[bot]
93b964d911
Bump vite from 7.0.6 to 7.1.1 (#742)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.0.6 to 7.1.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:12:35 +01:00
dependabot[bot]
07e6d9def8
Bump actions/download-artifact from 4 to 5 (#741)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:12:14 +01:00
dependabot[bot]
b45dc08482
Bump docker/login-action from 3.4.0 to 3.5.0 (#740)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](74a5d14239...184bdaa072)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 08:11:40 +01:00
Borislav Pantaleev
7626c150ed
Fix jest tests by transforming also node_modules files (#739) 2025-08-05 08:37:18 +01:00
dependabot[bot]
5b4a638f12
Bump ts-jest from 29.4.0 to 29.4.1 (#732)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.0 to 29.4.1.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.4.0...v29.4.1)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 13:08:56 +01:00
dependabot[bot]
7cafde91aa
Bump @types/react from 19.1.8 to 19.1.9 (#734)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.8 to 19.1.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:39:30 +01:00
dependabot[bot]
2811e8dacb
Bump react-test-renderer from 19.1.0 to 19.1.1 (#735)
Bumps [react-test-renderer](https://github.com/facebook/react/tree/HEAD/packages/react-test-renderer) from 19.1.0 to 19.1.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react-test-renderer)

---
updated-dependencies:
- dependency-name: react-test-renderer
  dependency-version: 19.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:39:19 +01:00
dependabot[bot]
354a37aaf7
Bump docker/metadata-action from 5.7.0 to 5.8.0 (#736)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](902fa8ec7d...c1e51972af)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: 5.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:39:05 +01:00
dependabot[bot]
bb001add3b
Bump @tanstack/react-query from 5.83.0 to 5.84.1 (#738)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.83.0 to 5.84.1.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.84.1/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.84.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:38:53 +01:00
dependabot[bot]
7a63e0a123
Bump ra-language-french from 5.10.0 to 5.10.1 (#737)
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.10.0...v5.10.1)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:38:39 +01:00
dependabot[bot]
6b5ef04ade
Bump react-hook-form from 7.61.1 to 7.62.0 (#733)
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.61.1 to 7.62.0.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.61.1...v7.62.0)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.62.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:38:28 +01:00
dependabot[bot]
443dae6e15
Bump react-admin from 5.10.0 to 5.10.1 (#729)
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.10.0...v5.10.1)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:38:12 +01:00
Aine
dd2389f877
fix deps 2025-07-28 20:52:41 +01:00
dependabot[bot]
dd62bbbbb2
Bump react from 19.1.0 to 19.1.1 (#725)
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 19.1.0 to 19.1.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 20:47:06 +01:00
dependabot[bot]
ae521fa55d
Bump react-is from 19.1.0 to 19.1.1 (#726)
Bumps [react-is](https://github.com/facebook/react/tree/HEAD/packages/react-is) from 19.1.0 to 19.1.1.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react-is)

---
updated-dependencies:
- dependency-name: react-is
  dependency-version: 19.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 20:46:51 +01:00
dependabot[bot]
d62530b2ab
Bump eslint-config-prettier from 10.1.5 to 10.1.8 (#703)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.1.5 to 10.1.8.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.1.5...v10.1.8)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-version: 10.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 20:21:21 +01:00
dependabot[bot]
09abb12d39
Bump jest from 30.0.4 to 30.0.5 (#709)
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 30.0.4 to 30.0.5.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.5/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-version: 30.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 20:21:09 +01:00
dependabot[bot]
4ae0d3f86e
Bump @testing-library/dom from 10.4.0 to 10.4.1 (#705)
Bumps [@testing-library/dom](https://github.com/testing-library/dom-testing-library) from 10.4.0 to 10.4.1.
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.4.0...v10.4.1)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-version: 10.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 20:12:38 +01:00
dependabot[bot]
5b4ee7e23b
Bump jest-environment-jsdom from 30.0.4 to 30.0.5 (#706)
Bumps [jest-environment-jsdom](https://github.com/jestjs/jest/tree/HEAD/packages/jest-environment-jsdom) from 30.0.4 to 30.0.5.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.5/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-version: 30.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 20:12:24 +01:00
dependabot[bot]
0f6958dcfe
Bump eslint from 9.31.0 to 9.32.0 (#711)
Bumps [eslint](https://github.com/eslint/eslint) from 9.31.0 to 9.32.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.31.0...v9.32.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 20:11:59 +01:00
dependabot[bot]
2b0fad626a
Bump react-hook-form from 7.60.0 to 7.61.1 (#710)
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.60.0 to 7.61.1.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.60.0...v7.61.1)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.61.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:27:04 +01:00
dependabot[bot]
2050d59fd7
Bump @vitejs/plugin-react from 4.6.0 to 4.7.0 (#712)
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.6.0 to 4.7.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.7.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:26:43 +01:00
dependabot[bot]
431f2e2600
Bump eslint-plugin-prettier from 5.5.1 to 5.5.3 (#715)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.1 to 5.5.3.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.1...v5.5.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:26:27 +01:00
dependabot[bot]
b8599f046b
Bump @testing-library/jest-dom from 6.6.3 to 6.6.4 (#716)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.6.3 to 6.6.4.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.6.3...v6.6.4)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 6.6.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:26:11 +01:00
dependabot[bot]
cb33f6df96
Bump @eslint/js from 9.31.0 to 9.32.0 (#717)
Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.31.0 to 9.32.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.32.0/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:25:56 +01:00
dependabot[bot]
82673a5d32
Bump @types/node from 24.0.13 to 24.1.0 (#718)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.0.13 to 24.1.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:25:43 +01:00
dependabot[bot]
2ff2813f81
Bump typescript-eslint from 8.37.0 to 8.38.0 (#719)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.37.0 to 8.38.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.38.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.38.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:25:29 +01:00
dependabot[bot]
c0718d2eb8
Bump @bicstone/ra-language-japanese from 5.7.0 to 5.10.0 (#714)
Bumps [@bicstone/ra-language-japanese](https://github.com/bicstone/ra-language-japanese) from 5.7.0 to 5.10.0.
- [Release notes](https://github.com/bicstone/ra-language-japanese/releases)
- [Commits](https://github.com/bicstone/ra-language-japanese/commits)

---
updated-dependencies:
- dependency-name: "@bicstone/ra-language-japanese"
  dependency-version: 5.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:17:02 +01:00
dependabot[bot]
d2d8102898
Bump ra-language-french from 5.9.1 to 5.10.0 (#702)
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.9.1 to 5.10.0.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.9.1...v5.10.0)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:14:01 +01:00
dependabot[bot]
91dd7db948
Bump react-router-dom from 7.6.3 to 7.7.1 (#722)
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.6.3 to 7.7.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.7.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:13:38 +01:00
dependabot[bot]
3ba6057297
Bump vite from 7.0.4 to 7.0.6 (#720)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.0.4 to 7.0.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.0.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:13:18 +01:00
dependabot[bot]
0b4ec2627f
Bump react-admin from 5.9.1 to 5.10.0 (#713)
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.9.1 to 5.10.0.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.9.1...v5.10.0)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 19:12:38 +01:00
Aine
51a8eb2250
correctly set document language based on the selected locale, fixes #723 2025-07-28 19:08:11 +01:00
dependabot[bot]
3611ee5973
Bump typescript-eslint from 8.36.0 to 8.37.0 (#698)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.36.0 to 8.37.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.37.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.37.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 23:42:10 +01:00
dependabot[bot]
49d10d8d5f
Bump @typescript-eslint/parser from 8.36.0 to 8.37.0 (#697)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.36.0 to 8.37.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.37.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.37.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 23:37:14 +01:00
dependabot[bot]
bf742aaf70
Bump @tanstack/react-query from 5.81.5 to 5.83.0 (#692)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.81.5 to 5.83.0.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.83.0/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.83.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 23:01:52 +01:00
dependabot[bot]
a4e7f03b84
Bump eslint from 9.30.1 to 9.31.0 (#693)
Bumps [eslint](https://github.com/eslint/eslint) from 9.30.1 to 9.31.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.30.1...v9.31.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.31.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 23:01:37 +01:00
dependabot[bot]
ea9579db68
Bump @bicstone/ra-language-japanese from 5.6.3 to 5.7.0 (#695)
Bumps [@bicstone/ra-language-japanese](https://github.com/bicstone/ra-language-japanese) from 5.6.3 to 5.7.0.
- [Release notes](https://github.com/bicstone/ra-language-japanese/releases)
- [Commits](https://github.com/bicstone/ra-language-japanese/compare/v5.6.3...v5.7.0)

---
updated-dependencies:
- dependency-name: "@bicstone/ra-language-japanese"
  dependency-version: 5.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 23:01:18 +01:00
dependabot[bot]
10468ea58b
Bump typescript-eslint from 8.35.1 to 8.36.0 (#696)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.35.1 to 8.36.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.36.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.36.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 23:01:08 +01:00
Aine
cd5251232c
add a note about updating billing details 2025-07-13 21:43:40 +01:00
Borislav Pantaleev
e0c880fb43
Add billing page with payment history and invoice download (#691)
* Add billing page with payment history and invoice download

- Add new BillingPage component with MUI table for payment display
- Add billing menu item to AdminLayout with Payment icon
- Add getPayments and getInvoice methods to dataProvider
- Implement invoice download functionality with proper error handling
- Add routing for /billing path
- Support for scheduler/{hash}/payments API endpoint
- Enhanced error handling for 500, 404, 401, 403 HTTP errors
- Loading states and user feedback for better UX

* update readme; add docs; small visual changes; make it fail on payments API errors
2025-07-13 00:21:47 +01:00
dependabot[bot]
8c427e2988
Bump jest from 30.0.3 to 30.0.4 (#676)
---
updated-dependencies:
- dependency-name: jest
  dependency-version: 30.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:37:56 +01:00
dependabot[bot]
b7f6da5aa0
Bump @eslint/js from 9.30.0 to 9.30.1 (#677)
---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.30.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:37:42 +01:00
dependabot[bot]
7d3e0cd9cd
Bump vite from 7.0.0 to 7.0.2 (#678)
---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:37:26 +01:00
dependabot[bot]
c0ae4b60aa
Bump @mui/icons-material from 7.1.2 to 7.2.0 (#679)
---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:37:13 +01:00
dependabot[bot]
4aad198612
Bump @types/node from 24.0.7 to 24.0.10 (#683)
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:36:52 +01:00
dependabot[bot]
038d9614ee
Bump react-hook-form from 7.59.0 to 7.60.0 (#682)
---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.60.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:36:31 +01:00
dependabot[bot]
5ab65f1f3a
Bump @types/lodash from 4.17.19 to 4.17.20 (#685)
---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:34:58 +01:00
dependabot[bot]
903f54d2bb
Bump eslint from 9.30.0 to 9.30.1 (#686)
---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.30.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:34:29 +01:00
dependabot[bot]
451c2d8feb
Bump jest-environment-jsdom from 30.0.2 to 30.0.4 (#687)
---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-version: 30.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:34:10 +01:00
dependabot[bot]
68696c7d20
Bump ra-language-french from 5.9.0 to 5.9.1 (#688)
---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:33:55 +01:00
dependabot[bot]
3cfefebb44
Bump react-admin from 5.9.0 to 5.9.1 (#689)
---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 22:33:37 +01:00
dependabot[bot]
7e695a3b2c
Bump vite from 6.3.5 to 7.0.0 (#669)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.5 to 7.0.0.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@7.0.0/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:48:50 +03:00
dependabot[bot]
3fb50189bc
Bump @mui/material from 7.1.2 to 7.2.0 (#672)
Bumps [@mui/material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material) from 7.1.2 to 7.2.0.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.2.0/packages/mui-material)

---
updated-dependencies:
- dependency-name: "@mui/material"
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:41:27 +03:00
dependabot[bot]
4691c5d48c
Bump typescript-eslint from 8.35.0 to 8.35.1 (#673)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.35.0 to 8.35.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.35.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.35.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:40:48 +03:00
dependabot[bot]
cbef6e70b8
Bump @types/node from 24.0.3 to 24.0.7 (#651)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.0.3 to 24.0.7.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:16:51 +03:00
dependabot[bot]
e0fd78eb8c
Bump react-hook-form from 7.58.1 to 7.59.0 (#657)
---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.59.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:12:22 +03:00
dependabot[bot]
c092e5b150
Bump @mui/icons-material from 7.1.1 to 7.1.2 (#664)
---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:11:52 +03:00
dependabot[bot]
a8f39c2cc1
Bump @emotion/styled from 11.14.0 to 11.14.1 (#655)
Bumps [@emotion/styled](https://github.com/emotion-js/emotion) from 11.14.0 to 11.14.1.
- [Release notes](https://github.com/emotion-js/emotion/releases)
- [Changelog](https://github.com/emotion-js/emotion/blob/main/CHANGELOG.md)
- [Commits](https://github.com/emotion-js/emotion/compare/@emotion/styled@11.14.0...@emotion/styled@11.14.1)

---
updated-dependencies:
- dependency-name: "@emotion/styled"
  dependency-version: 11.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:11:35 +03:00
dependabot[bot]
32c912d982
Bump react-router-dom from 7.6.2 to 7.6.3 (#671)
---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.6.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:11:05 +03:00
dependabot[bot]
22118c5808
Bump eslint from 9.29.0 to 9.30.0 (#654)
---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.30.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:10:28 +03:00
dependabot[bot]
09178ca15c
Bump @tanstack/react-query from 5.81.2 to 5.81.5 (#653)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.81.2 to 5.81.5.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.81.5/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.81.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:10:04 +03:00
dependabot[bot]
5a6513c218
Bump eslint-plugin-prettier from 5.5.0 to 5.5.1 (#658)
---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:09:36 +03:00
dependabot[bot]
3387703482
Bump @types/lodash from 4.17.18 to 4.17.19 (#663)
---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:09:21 +03:00
dependabot[bot]
2ec7860ce1
Bump @eslint/js from 9.29.0 to 9.30.0 (#656)
---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.30.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:09:03 +03:00
dependabot[bot]
60b9f52f01
Bump ra-language-french from 5.8.4 to 5.9.0 (#659)
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.8.4 to 5.9.0.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.4...v5.9.0)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:08:51 +03:00
dependabot[bot]
aa0cad50a2
Bump prettier from 3.6.0 to 3.6.2 (#665)
---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.6.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:08:32 +03:00
dependabot[bot]
d5ec883f23
Bump jest from 30.0.2 to 30.0.3 (#666)
---
updated-dependencies:
- dependency-name: jest
  dependency-version: 30.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:08:07 +03:00
dependabot[bot]
6b99f9854f
Bump typescript-eslint from 8.34.1 to 8.35.0 (#667)
---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.35.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:07:51 +03:00
dependabot[bot]
c4369c3a2e
Bump react-admin from 5.8.4 to 5.9.0 (#668)
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.8.4 to 5.9.0.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.4...v5.9.0)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 22:06:11 +03:00
dependabot[bot]
444e56bb5a
Bump @types/node from 24.0.1 to 24.0.3 (#634)
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:34:18 +03:00
dependabot[bot]
2dc2583146
Bump @mui/material from 7.1.1 to 7.1.2 (#635)
Bumps [@mui/material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.1.2/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.1.2/packages/mui-material)

---
updated-dependencies:
- dependency-name: "@mui/material"
  dependency-version: 7.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:30:57 +03:00
dependabot[bot]
ffa966c434
Bump @types/lodash from 4.17.17 to 4.17.18 (#636)
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.17 to 4.17.18.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:30:41 +03:00
dependabot[bot]
7c0c9e8d0c
Bump @tanstack/react-query from 5.80.7 to 5.81.2 (#637)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.80.7 to 5.81.2.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.81.2/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.81.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:28:44 +03:00
dependabot[bot]
30e522da13
Bump jest-environment-jsdom from 30.0.0 to 30.0.2 (#638)
Bumps [jest-environment-jsdom](https://github.com/jestjs/jest/tree/HEAD/packages/jest-environment-jsdom) from 30.0.0 to 30.0.2.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.2/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-version: 30.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:28:23 +03:00
dependabot[bot]
685eb338bb
Bump typescript-eslint from 8.34.0 to 8.34.1 (#644)
---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.34.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:28:07 +03:00
dependabot[bot]
f3f889d46a
Bump eslint-plugin-import from 2.31.0 to 2.32.0 (#642)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.31.0 to 2.32.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-version: 2.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:27:51 +03:00
dependabot[bot]
d791fce509
Bump @typescript-eslint/parser from 8.34.0 to 8.34.1 (#645)
---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.34.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:22:02 +03:00
dependabot[bot]
72d2205d79
Bump prettier from 3.5.3 to 3.6.0 (#649)
---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:21:47 +03:00
dependabot[bot]
db2814ec96
Bump eslint-plugin-prettier from 5.4.1 to 5.5.0 (#632)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.4.1 to 5.5.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.4.1...v5.5.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:09:42 +03:00
dependabot[bot]
159303b6a3
Bump ra-language-french from 5.8.3 to 5.8.4 (#633)
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.8.3 to 5.8.4.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.3...v5.8.4)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.8.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:09:20 +03:00
dependabot[bot]
5ad2820e8c
Bump jest and @types/jest (#639)
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) and [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest). These dependencies needed to be updated together.

Updates `jest` from 29.7.0 to 30.0.2
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.2/packages/jest)

Updates `@types/jest` from 29.5.14 to 30.0.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-version: 30.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
- dependency-name: "@types/jest"
  dependency-version: 30.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:09:03 +03:00
dependabot[bot]
234e7c19f8
Bump docker/setup-buildx-action from 3.10.0 to 3.11.1 (#648)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.10.0 to 3.11.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](b5ca514318...e468171a9d)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:08:44 +03:00
dependabot[bot]
68abbc368c
Bump react-hook-form from 7.58.0 to 7.58.1 (#641)
---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.58.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 11:59:48 +03:00
dependabot[bot]
39d8f481e0
Bump @vitejs/plugin-react from 4.5.2 to 4.6.0 (#646)
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.5.2 to 4.6.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.6.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 11:59:29 +03:00
dependabot[bot]
7edfcfa440
Bump react-admin from 5.8.3 to 5.8.4 (#643)
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.8.3 to 5.8.4.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.3...v5.8.4)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.8.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 11:58:58 +03:00
Aine
bad79df298
make linter happy 2025-06-18 16:36:52 +03:00
Suguru Hirahara
ef41275cf0
Fix locale settings
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-17 22:35:12 +09:00
Aine
26519b9482
minor adjustments 2025-06-17 16:26:51 +03:00
Suguru Hirahara
ddb84fc9cc
Add Japanese localization (#631)
* Update en.ts: add the copyright header

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Copy en.ts to ja.ts for tracking

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Add ja to App.tsx

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Update ja.ts

Reuse 752dc7a4cf/src/i18n/en.ts

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

* Add and enable ra-language-japanese

Available at https://github.com/bicstone/ra-language-japanese

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>

---------

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
Co-authored-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-06-17 16:21:01 +03:00
Aine
752dc7a4cf
update package.json 2025-06-16 13:39:25 +03:00
dependabot[bot]
daa22f7e54
Bump eslint from 9.28.0 to 9.29.0 (#624)
Bumps [eslint](https://github.com/eslint/eslint) from 9.28.0 to 9.29.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.28.0...v9.29.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 13:06:41 +03:00
dependabot[bot]
62791a76f3
Bump jest-environment-jsdom from 29.7.0 to 30.0.0 (#622)
Bumps [jest-environment-jsdom](https://github.com/jestjs/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.7.0 to 30.0.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.0/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-version: 30.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 13:03:30 +03:00
dependabot[bot]
82ea3a553b
Bump @tanstack/react-query from 5.80.6 to 5.80.7 (#619)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.80.6 to 5.80.7.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.80.7/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.80.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 13:00:03 +03:00
dependabot[bot]
0850ef5dd2
Bump react-hook-form from 7.57.0 to 7.58.0 (#620)
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.57.0 to 7.58.0.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.57.0...v7.58.0)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.58.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:59:53 +03:00
dependabot[bot]
e1721df11c
Bump @types/react from 19.1.6 to 19.1.8 (#621)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.6 to 19.1.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:59:39 +03:00
dependabot[bot]
79883f1f09
Bump @vitejs/plugin-react from 4.5.1 to 4.5.2 (#623)
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.5.1 to 4.5.2.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.5.2/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:59:17 +03:00
dependabot[bot]
f7187eb4cf
Bump @eslint/js from 9.28.0 to 9.29.0 (#625)
Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.28.0 to 9.29.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.29.0/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:58:34 +03:00
dependabot[bot]
96fd25d1cc
Bump ts-jest from 29.3.4 to 29.4.0 (#626)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.3.4 to 29.4.0.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.3.4...v29.4.0)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:58:18 +03:00
dependabot[bot]
d89af10b49
Bump typescript-eslint from 8.33.1 to 8.34.0 (#628)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.33.1 to 8.34.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.34.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:57:56 +03:00
dependabot[bot]
3062833b77
Bump @typescript-eslint/parser from 8.33.1 to 8.34.0 (#627)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.33.1 to 8.34.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.34.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:51:17 +03:00
dependabot[bot]
b3a97fcccb
Bump @types/node from 22.15.30 to 24.0.1 (#629)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.30 to 24.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:50:42 +03:00
dependabot[bot]
52ffb80f35
Bump softprops/action-gh-release from 2.2.2 to 2.3.2 (#630)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.2.2 to 2.3.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](da05d55257...72f2c25fcb)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.3.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:50:22 +03:00
Aine
03bc1e3323
fix empty User Account Data error message 2025-06-14 07:34:00 +03:00
Aine
2d9ff83bbd
do not fail on incorrect MXC URLs 2025-06-10 16:32:31 +03:00
Aine
680fa3c0ee
add missing title to error pages 2025-06-10 15:17:04 +03:00
Aine
ddf835c4d1
provide more details about MXC URL when parsing fails 2025-06-10 08:42:43 +03:00
dependabot[bot]
ae50f2ee5d
Bump @tanstack/react-query from 5.79.0 to 5.80.6 (#615)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.79.0 to 5.80.6.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.80.6/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.80.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 18:51:34 +03:00
dependabot[bot]
d95c10dfba
Bump @types/node from 22.15.29 to 22.15.30 (#616)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.29 to 22.15.30.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.30
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 18:51:22 +03:00
dependabot[bot]
590ee8c0fe
Bump typescript-eslint from 8.33.0 to 8.33.1 (#617)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.33.0 to 8.33.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.33.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.33.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 18:51:10 +03:00
dependabot[bot]
ca10f04f24
Bump @vitejs/plugin-react from 4.5.0 to 4.5.1 (#612)
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.5.1/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.5.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 18:50:57 +03:00
dependabot[bot]
d2f04fc031
Bump @mui/icons-material from 7.1.0 to 7.1.1 (#618)
Bumps [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.1.1/packages/mui-icons-material)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 18:50:42 +03:00
dependabot[bot]
cb96e4f736
Bump react-router-dom from 7.6.1 to 7.6.2 (#614)
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.6.1 to 7.6.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/7.6.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 18:50:29 +03:00
Borislav Pantaleev
14bc205ef2
Validate that password is entered upon reactivation of account (#609)
* Validate that password is entered upon reactivation of account

* update readme
2025-06-07 01:19:01 +03:00
Borislav Pantaleev
31356c0bdc
Improve user account status toggles (#608)
* Enable Erase user if Deactivate is checked

* apply lint fixes, update readme
2025-06-07 00:40:46 +03:00
Borislav Pantaleev
ab247891dc
Use correct API to suspend/unsuspend user (#607)
* Use correct API to suspend/unsuspend user

* bring back suspend toggle

* make linter happy
2025-06-06 23:49:47 +03:00
Aine
5165625cd0
fix typos 2025-06-04 22:30:36 +03:00
Aine
cc74071933
Merge pull request #585 from etkecc/validate-base-url-on-blur
Do not check homeserver URL during typing in the login form
2025-06-03 20:59:09 +00:00
Aine
273e7b11ad
update readme; remove autofocus from username field (login form) 2025-06-03 23:57:55 +03:00
Aine
55e7d53769
Merge branch 'main' into validate-base-url-on-blur 2025-06-03 23:41:23 +03:00
Borislav Pantaleev
9c1838031c Fix server info version display with restrictBaseUrl values 2025-06-03 23:37:51 +03:00
Aine
3b61e6e02c
update yarn.lock 2025-06-02 17:50:09 +03:00
Aine
a4e4d37413
Merge pull request #589 from etkecc/dependabot/npm_and_yarn/react-hook-form-7.57.0
Bump react-hook-form from 7.56.4 to 7.57.0
2025-06-02 14:47:06 +00:00
Aine
4127954c1d
Merge pull request #592 from etkecc/dependabot/npm_and_yarn/eslint-plugin-prettier-5.4.1
Bump eslint-plugin-prettier from 5.4.0 to 5.4.1
2025-06-02 14:39:47 +00:00
Aine
554d2cd132
Merge pull request #594 from etkecc/dependabot/npm_and_yarn/typescript-eslint-8.33.0
Bump typescript-eslint from 8.32.1 to 8.33.0
2025-06-02 14:39:34 +00:00
Aine
d2326a4cf3
Merge pull request #595 from etkecc/dependabot/npm_and_yarn/mui/material-7.1.1
Bump @mui/material from 7.1.0 to 7.1.1
2025-06-02 14:39:14 +00:00
Aine
7c0c9f922d
Merge pull request #599 from etkecc/dependabot/npm_and_yarn/ra-language-russian-5.4.4
Bump ra-language-russian from 5.4.3 to 5.4.4
2025-06-02 14:38:55 +00:00
Aine
4dd3aa2375
Merge pull request #602 from etkecc/dependabot/npm_and_yarn/ra-language-french-5.8.3
Bump ra-language-french from 5.8.2 to 5.8.3
2025-06-02 14:38:42 +00:00
Aine
05d3740b80
Merge pull request #603 from etkecc/dependabot/npm_and_yarn/eslint-9.28.0
Bump eslint from 9.27.0 to 9.28.0
2025-06-02 14:38:29 +00:00
dependabot[bot]
e425efa26a
Bump eslint from 9.27.0 to 9.28.0
Bumps [eslint](https://github.com/eslint/eslint) from 9.27.0 to 9.28.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.27.0...v9.28.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.28.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 14:19:59 +00:00
dependabot[bot]
cd8e35ba27
Bump ra-language-russian from 5.4.3 to 5.4.4
Bumps [ra-language-russian](https://github.com/Klucherev/ra-language-russian) from 5.4.3 to 5.4.4.
- [Commits](https://github.com/Klucherev/ra-language-russian/commits)

---
updated-dependencies:
- dependency-name: ra-language-russian
  dependency-version: 5.4.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 14:19:32 +00:00
dependabot[bot]
710cc57c4f
Bump react-hook-form from 7.56.4 to 7.57.0
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.56.4 to 7.57.0.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.56.4...v7.57.0)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.57.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 14:19:28 +00:00
dependabot[bot]
249bc4d0c2
Bump @mui/material from 7.1.0 to 7.1.1
Bumps [@mui/material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material) from 7.1.0 to 7.1.1.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.1.1/packages/mui-material)

---
updated-dependencies:
- dependency-name: "@mui/material"
  dependency-version: 7.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 14:18:34 +00:00
dependabot[bot]
aa6567a490
Bump typescript-eslint from 8.32.1 to 8.33.0
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.32.1 to 8.33.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.33.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.33.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 14:16:58 +00:00
Aine
f40cb4839e
Merge pull request #590 from etkecc/dependabot/npm_and_yarn/types/node-22.15.29
Bump @types/node from 22.15.21 to 22.15.29
2025-06-02 14:15:34 +00:00
Aine
d5df57b7ec
Merge pull request #586 from etkecc/dependabot/github_actions/docker/build-push-action-6.18.0
Bump docker/build-push-action from 6.17.0 to 6.18.0
2025-06-02 14:15:17 +00:00
Aine
5f89026db3
Merge pull request #600 from etkecc/dependabot/npm_and_yarn/types/react-19.1.6
Bump @types/react from 19.1.5 to 19.1.6
2025-06-02 14:14:49 +00:00
Aine
10aaef98b0
Merge pull request #597 from etkecc/dependabot/npm_and_yarn/tanstack/react-query-5.79.0
Bump @tanstack/react-query from 5.77.2 to 5.79.0
2025-06-02 14:14:31 +00:00
Aine
c323e170ac
Merge pull request #598 from etkecc/dependabot/npm_and_yarn/react-admin-5.8.3
Bump react-admin from 5.8.2 to 5.8.3
2025-06-02 14:14:12 +00:00
Aine
797b924a62
Merge pull request #604 from etkecc/upstream-update
Upstream update
2025-06-02 14:13:38 +00:00
Aine
f1023ebc64
update from upstream (ref: e15411a04c ) 2025-06-02 17:12:49 +03:00
Dirk Klimpel
e15411a04c
chore: bump react-admin to 5.8 and mui to 7.1 (#679) 2025-06-02 14:50:28 +02:00
Dirk Klimpel
3902dcd3d1
fix(Dockerfile): FROM and AS both in uppercase, FromAsCasing (#680) 2025-06-02 14:48:44 +02:00
dependabot[bot]
9c911abfb7
Bump ra-language-french from 5.8.2 to 5.8.3
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.8.2 to 5.8.3.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.2...v5.8.3)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 08:40:33 +00:00
dependabot[bot]
23c39cede8
Bump @types/react from 19.1.5 to 19.1.6
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.5 to 19.1.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 08:40:13 +00:00
dependabot[bot]
50e62f0b6c
Bump react-admin from 5.8.2 to 5.8.3
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.8.2 to 5.8.3.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.2...v5.8.3)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 08:38:14 +00:00
dependabot[bot]
d7d1d3c5b5
Bump @tanstack/react-query from 5.77.2 to 5.79.0
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.77.2 to 5.79.0.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.79.0/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.79.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 08:38:07 +00:00
dependabot[bot]
16d339c6f3
Bump eslint-plugin-prettier from 5.4.0 to 5.4.1
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.4.0 to 5.4.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.4.0...v5.4.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 08:35:23 +00:00
dependabot[bot]
9b0786f699
Bump @types/node from 22.15.21 to 22.15.29
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.21 to 22.15.29.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.29
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 08:34:49 +00:00
dependabot[bot]
fc1b20e95b
Bump docker/build-push-action from 6.17.0 to 6.18.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.17.0 to 6.18.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](1dc7386353...263435318d)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 07:59:53 +00:00
Dirk Klimpel
ef8ae9b38f
fix: Start if BASE_URL is not defined (#677) 2025-05-30 09:01:22 +02:00
Dirk Klimpel
7a286ad506
Downgrade react-router to 6.27.0 to fix import users (#678) 2025-05-30 08:58:39 +02:00
Borislav Pantaleev
f7d46a4cec bring back handleUsernameChange 2025-05-29 00:10:05 +03:00
Borislav Pantaleev
4ac465f16c Check base_url server info onBlur 2025-05-28 23:59:04 +03:00
Aine
c82d8653fd
update deps 2025-05-26 16:19:10 +03:00
Aine
949c2e8809
Merge pull request #578 from etkecc/dependabot/npm_and_yarn/tanstack/react-query-5.77.1
Bump @tanstack/react-query from 5.76.1 to 5.77.1
2025-05-26 12:23:14 +00:00
Aine
20a1cec358
Merge pull request #579 from etkecc/dependabot/npm_and_yarn/react-router-dom-7.6.1
Bump react-router-dom from 7.6.0 to 7.6.1
2025-05-26 12:23:03 +00:00
Aine
21240b8ada
Merge pull request #580 from etkecc/dependabot/npm_and_yarn/vitejs/plugin-react-4.5.0
Bump @vitejs/plugin-react from 4.4.1 to 4.5.0
2025-05-26 12:22:48 +00:00
Aine
f218363e97
Merge pull request #576 from etkecc/dependabot/npm_and_yarn/papaparse-5.5.3
Bump papaparse from 5.5.2 to 5.5.3
2025-05-26 12:22:28 +00:00
Aine
1a5fd713da
Merge pull request #581 from etkecc/dependabot/npm_and_yarn/types/lodash-4.17.17
Bump @types/lodash from 4.17.16 to 4.17.17
2025-05-26 12:22:05 +00:00
dependabot[bot]
3d6202f335
Bump papaparse from 5.5.2 to 5.5.3
Bumps [papaparse](https://github.com/mholt/PapaParse) from 5.5.2 to 5.5.3.
- [Release notes](https://github.com/mholt/PapaParse/releases)
- [Commits](https://github.com/mholt/PapaParse/commits)

---
updated-dependencies:
- dependency-name: papaparse
  dependency-version: 5.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 12:20:07 +00:00
dependabot[bot]
9161e26d3a
Bump @vitejs/plugin-react from 4.4.1 to 4.5.0
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.5.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 12:20:03 +00:00
dependabot[bot]
b00d810fae
Bump @types/lodash from 4.17.16 to 4.17.17
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.16 to 4.17.17.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 12:19:55 +00:00
Aine
9a4b995d09
Merge pull request #577 from etkecc/dependabot/npm_and_yarn/types/react-19.1.5
Bump @types/react from 19.1.4 to 19.1.5
2025-05-26 12:17:42 +00:00
Aine
c97405b622
Merge pull request #575 from etkecc/dependabot/npm_and_yarn/types/node-22.15.21
Bump @types/node from 22.15.19 to 22.15.21
2025-05-26 12:17:25 +00:00
dependabot[bot]
b5ebd9173e
Bump react-router-dom from 7.6.0 to 7.6.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.6.0 to 7.6.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.6.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 09:53:56 +00:00
dependabot[bot]
a1ff4dc9ef
Bump @tanstack/react-query from 5.76.1 to 5.77.1
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.76.1 to 5.77.1.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.77.1/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.77.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 09:52:55 +00:00
dependabot[bot]
2298fee054
Bump @types/react from 19.1.4 to 19.1.5
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.4 to 19.1.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 09:52:50 +00:00
dependabot[bot]
e236126a30
Bump @types/node from 22.15.19 to 22.15.21
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.19 to 22.15.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.21
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 09:52:22 +00:00
Aine
7da5265575
update version in package.json 2025-05-20 22:05:51 +03:00
Aine
62fc97a417
Sync with upstream 2025-05-20 22:02:51 +03:00
dependabot[bot]
fa3f2437a3
Bump softprops/action-gh-release from 2.0.8 to 2.2.2 (#660)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.8 to 2.2.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](c062e08bd5...da05d55257)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 17:35:55 +02:00
dependabot[bot]
8dc5238fcb
Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.7.3 (#659)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.8 to 4.7.3.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.8...v4.7.3)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-version: 4.7.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 17:35:45 +02:00
dependabot[bot]
238350b940
Bump typescript-eslint from 8.32.0 to 8.32.1 (#661)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.32.0 to 8.32.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.32.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.32.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 17:35:26 +02:00
dependabot[bot]
99bf7b1889
Bump vite from 5.4.19 to 6.3.5 (#664)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.19 to 6.3.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.5
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 17:30:15 +02:00
dependabot[bot]
d72c91644d
Bump ra-language-english from 5.2.3 to 5.8.2 (#667)
Bumps [ra-language-english](https://github.com/marmelab/react-admin) from 5.2.3 to 5.8.2.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.2.3...v5.8.2)

---
updated-dependencies:
- dependency-name: ra-language-english
  dependency-version: 5.8.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 17:09:09 +02:00
Aine
5bec4c71ea
update yarn.lock 2025-05-19 12:34:38 +03:00
Aine
245dadc470
Merge pull request #562 from etkecc/dependabot/npm_and_yarn/react-hook-form-7.56.4
Bump react-hook-form from 7.56.3 to 7.56.4
2025-05-19 09:30:43 +00:00
Aine
08cde13fd4
Merge pull request #561 from etkecc/dependabot/npm_and_yarn/types/react-19.1.4
Bump @types/react from 19.1.3 to 19.1.4
2025-05-19 09:30:30 +00:00
Aine
765456d233
Merge pull request #566 from etkecc/dependabot/npm_and_yarn/types/node-22.15.19
Bump @types/node from 22.15.17 to 22.15.19
2025-05-19 09:30:17 +00:00
Aine
b6bc4a2d43
Merge pull request #558 from etkecc/dependabot/npm_and_yarn/ts-jest-29.3.4
Bump ts-jest from 29.3.2 to 29.3.4
2025-05-19 09:29:29 +00:00
Aine
851478bbcb
Merge pull request #563 from etkecc/dependabot/npm_and_yarn/tanstack/react-query-5.76.1
Bump @tanstack/react-query from 5.75.7 to 5.76.1
2025-05-19 09:29:11 +00:00
Aine
ff8e43631a
Merge pull request #565 from etkecc/dependabot/npm_and_yarn/eslint-9.27.0
Bump eslint from 9.26.0 to 9.27.0
2025-05-19 09:28:54 +00:00
Aine
7b8a43b835
Merge pull request #567 from etkecc/dependabot/npm_and_yarn/typescript-eslint-8.32.1
Bump typescript-eslint from 8.32.0 to 8.32.1
2025-05-19 09:28:36 +00:00
Aine
bc0c186242
Merge pull request #572 from etkecc/dependabot/npm_and_yarn/ra-language-french-5.8.2
Bump ra-language-french from 5.8.0 to 5.8.2
2025-05-19 09:28:20 +00:00
dependabot[bot]
d5b9981bf0
Bump eslint from 9.26.0 to 9.27.0
Bumps [eslint](https://github.com/eslint/eslint) from 9.26.0 to 9.27.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.26.0...v9.27.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 09:24:01 +00:00
dependabot[bot]
7a8977a00c
Bump @tanstack/react-query from 5.75.7 to 5.76.1
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.75.7 to 5.76.1.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.76.1/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.76.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 09:23:45 +00:00
dependabot[bot]
5297e56eca
Bump react-hook-form from 7.56.3 to 7.56.4
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.56.3 to 7.56.4.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.56.3...v7.56.4)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.56.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 09:23:43 +00:00
Aine
82ff610b89
Merge pull request #564 from etkecc/dependabot/npm_and_yarn/react-admin-5.8.2
Bump react-admin from 5.8.0 to 5.8.2
2025-05-19 09:21:18 +00:00
Aine
263f25303e
Merge pull request #573 from etkecc/dependabot/github_actions/docker/build-push-action-6.17.0
Bump docker/build-push-action from 6.16.0 to 6.17.0
2025-05-19 09:20:56 +00:00
dependabot[bot]
2aa7cdcb97
Bump docker/build-push-action from 6.16.0 to 6.17.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.16.0 to 6.17.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](14487ce63c...1dc7386353)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:49:35 +00:00
dependabot[bot]
e3e8f028f4
Bump ra-language-french from 5.8.0 to 5.8.2
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.8.0 to 5.8.2.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.0...v5.8.2)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:41:47 +00:00
dependabot[bot]
f18523e0f2
Bump typescript-eslint from 8.32.0 to 8.32.1
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.32.0 to 8.32.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.32.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.32.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:40:42 +00:00
dependabot[bot]
3533cbed93
Bump @types/node from 22.15.17 to 22.15.19
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.17 to 22.15.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:40:40 +00:00
dependabot[bot]
bf1cec2796
Bump react-admin from 5.8.0 to 5.8.2
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.8.0 to 5.8.2.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.8.0...v5.8.2)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:39:55 +00:00
dependabot[bot]
7005d08c7e
Bump @types/react from 19.1.3 to 19.1.4
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.3 to 19.1.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:39:36 +00:00
dependabot[bot]
e15b45bcf9
Bump ts-jest from 29.3.2 to 29.3.4
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.3.2 to 29.3.4.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.3.2...v29.3.4)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.3.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:39:05 +00:00
Aine
603737b2ad
Merge pull request #545 from etkecc/dependabot/npm_and_yarn/mui/utils-7.1.0
Bump @mui/utils from 6.4.9 to 7.1.0
2025-05-12 09:21:15 +00:00
Aine
eebc7a4fab
fix tests 2025-05-12 12:20:15 +03:00
Aine
3725b01fe5
Merge pull request #554 from etkecc/dependabot/npm_and_yarn/react-router-dom-7.6.0
Bump react-router-dom from 7.5.3 to 7.6.0
2025-05-12 09:02:22 +00:00
dependabot[bot]
6c41aab463
Bump react-router-dom from 7.5.3 to 7.6.0
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.5.3 to 7.6.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.6.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 09:01:34 +00:00
Aine
e8987607ff
Merge pull request #548 from etkecc/dependabot/npm_and_yarn/react-router-7.6.0
Bump react-router from 7.5.3 to 7.6.0
2025-05-12 08:58:38 +00:00
Aine
9c440024bb
Merge pull request #549 from etkecc/dependabot/npm_and_yarn/react-hook-form-7.56.3
Bump react-hook-form from 7.56.2 to 7.56.3
2025-05-12 08:58:20 +00:00
Aine
aa10df711e
Merge pull request #550 from etkecc/dependabot/npm_and_yarn/typescript-eslint-8.32.0
Bump typescript-eslint from 8.31.1 to 8.32.0
2025-05-12 08:56:15 +00:00
Aine
51aca16e2f
Merge pull request #551 from etkecc/dependabot/npm_and_yarn/eslint-plugin-prettier-5.4.0
Bump eslint-plugin-prettier from 5.3.1 to 5.4.0
2025-05-12 08:55:36 +00:00
Aine
4f1b9c2bfa
Merge pull request #546 from etkecc/dependabot/npm_and_yarn/eslint-config-prettier-10.1.5
Bump eslint-config-prettier from 10.1.2 to 10.1.5
2025-05-12 08:55:23 +00:00
Aine
a801957194
Merge pull request #547 from etkecc/dependabot/npm_and_yarn/types/node-22.15.17
Bump @types/node from 22.15.3 to 22.15.17
2025-05-12 08:55:10 +00:00
dependabot[bot]
8f527eeb85
Bump @types/node from 22.15.3 to 22.15.17
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.3 to 22.15.17.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 08:44:38 +00:00
dependabot[bot]
92632f81f8
Bump typescript-eslint from 8.31.1 to 8.32.0
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.31.1 to 8.32.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.32.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 08:44:17 +00:00
Aine
e76809fb37
Merge pull request #553 from etkecc/dependabot/npm_and_yarn/types/papaparse-5.3.16
Bump @types/papaparse from 5.3.15 to 5.3.16
2025-05-12 08:41:52 +00:00
dependabot[bot]
03d142a47c
Bump @types/papaparse from 5.3.15 to 5.3.16
Bumps [@types/papaparse](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/papaparse) from 5.3.15 to 5.3.16.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/papaparse)

---
updated-dependencies:
- dependency-name: "@types/papaparse"
  dependency-version: 5.3.16
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 08:39:12 +00:00
dependabot[bot]
f589427b3c
Bump @mui/utils from 6.4.9 to 7.1.0
Bumps [@mui/utils](https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils) from 6.4.9 to 7.1.0.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.1.0/packages/mui-utils)

---
updated-dependencies:
- dependency-name: "@mui/utils"
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 08:39:02 +00:00
Aine
16d78b577e
Merge pull request #555 from etkecc/dependabot/npm_and_yarn/tanstack/react-query-5.75.7
Bump @tanstack/react-query from 5.75.4 to 5.75.7
2025-05-12 08:37:00 +00:00
Aine
649450f7ee
Merge pull request #556 from etkecc/dependabot/npm_and_yarn/types/react-19.1.3
Bump @types/react from 19.1.2 to 19.1.3
2025-05-12 08:36:45 +00:00
Aine
a64705c28c
Merge pull request #552 from etkecc/dependabot/npm_and_yarn/vite-6.3.5
Bump vite from 6.3.4 to 6.3.5
2025-05-12 08:36:29 +00:00
dependabot[bot]
5d775ca08b
Bump @types/react from 19.1.2 to 19.1.3
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.2 to 19.1.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:45:35 +00:00
dependabot[bot]
b2289e5776
Bump @tanstack/react-query from 5.75.4 to 5.75.7
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.75.4 to 5.75.7.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.75.7/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.75.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:45:26 +00:00
dependabot[bot]
607abc003b
Bump vite from 6.3.4 to 6.3.5
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.4 to 6.3.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:44:55 +00:00
dependabot[bot]
210623b39e
Bump eslint-plugin-prettier from 5.3.1 to 5.4.0
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.3.1...v5.4.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:44:41 +00:00
dependabot[bot]
8c72dbbd9a
Bump react-hook-form from 7.56.2 to 7.56.3
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.56.2 to 7.56.3.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.56.2...v7.56.3)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.56.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:44:13 +00:00
dependabot[bot]
5779ce6301
Bump react-router from 7.5.3 to 7.6.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.5.3 to 7.6.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.6.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:44:04 +00:00
dependabot[bot]
664573d65e
Bump eslint-config-prettier from 10.1.2 to 10.1.5
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.1.2 to 10.1.5.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.1.2...v10.1.5)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-version: 10.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:43:08 +00:00
Aine
cfcc3f5a73
set guests=false by default in users list 2025-05-12 10:33:52 +03:00
Aine
8c303b7940
update readme 2025-05-09 23:25:58 +03:00
Aine
785be9187d
add docker hub image, fixes #541 2025-05-09 23:21:12 +03:00
Aine
69b04736d6
Merge pull request #543 from etkecc/update-from-upstream
Backport history from Awesome-Technologies/synapse-admin v0.10.4
2025-05-09 19:53:32 +00:00
Aine
4051631244
Merge branch 'master' into update-from-upstream 2025-05-09 22:51:45 +03:00
Dirk Klimpel
e8e28b5df1
Upgrade to react-admin v5 (#633)
* bump dependencies
* replace react-query with @tanstack/react-query
* remove darkTheme
* remove obsolete fullWidth
* fix pagination
* fix language for ra.navigation
* fix 'record' is possibly 'undefined'
* add missing @mui/utils
* bump yarn to 4.4.x
2025-05-09 20:53:41 +02:00
rkfg
d5c10b6e02
Federation page improvements (#583)
* Hide zero last retry timestamps in federation list
* Federation dark theme improvements
2025-05-09 17:54:46 +02:00
Huw Carpenter
3085b9ffa0
Add ability to toggle whether to show locked users (#573) 2025-05-09 17:52:55 +02:00
Patrick Kranz
b2a3fb0f87
Update fetch URL to use BASE_URL for config.json (#652)
Fixes #644.
2025-05-09 17:44:41 +02:00
milkomeda
1e8b4cc885
Fixed detection of missingFields in verifyCsv function of CSV import (#650)
Fixes #600, #552, #188.
2025-05-09 17:43:13 +02:00
Manuel Stahl
4d1a9cc147 Add content read permission to build-test workflow
Change-Id: I5dc911e79e7d0d8fbd88d6a9a686fc10f11a97cd
2025-05-09 17:36:42 +02:00
Manuel Stahl
1b8b702270 Add content write permission to ghpage workflow
Change-Id: I13a10316400dd80a8149e6e8a265c13a51aee652
2025-05-09 17:27:55 +02:00
Dirk Klimpel
61c32fb473 Add identifier when login with password (#601)
* Add identifier when login with password
* add identifier to unit tests
2025-05-09 17:24:23 +02:00
dependabot[bot]
ad876bb790
Bump the npm_and_yarn group with 3 updates (#656)
Bumps the npm_and_yarn group with 3 updates: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite), [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) and [dompurify](https://github.com/cure53/DOMPurify).


Updates `vite` from 5.4.9 to 5.4.19
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.19/packages/vite)

Updates `@babel/runtime` from 7.24.4 to 7.27.1
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.1/packages/babel-runtime)

Updates `dompurify` from 2.5.0 to 2.5.8
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.5.0...2.5.8)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.19
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: "@babel/runtime"
  dependency-version: 7.27.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: dompurify
  dependency-version: 2.5.8
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 17:04:48 +02:00
Aine
b941b4c787
Merge pull request #540 from etkecc/update-from-upstream
Update from upstream
2025-05-09 11:04:44 +00:00
Aine
45b5213c8c
Merge branch 'master' 2025-05-09 14:03:04 +03:00
dependabot[bot]
2524848dae
Bump typescript-eslint from 7.16.1 to 8.11.0 (#638)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 7.16.1 to 8.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.11.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 12:03:03 +02:00
dependabot[bot]
669c1f3079
Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.8 (#626)
Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.3 to 4.6.8.
- [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases)
- [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.3...v4.6.8)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 11:17:06 +02:00
dependabot[bot]
590f673167
Bump eslint-plugin-unused-imports from 3.2.0 to 4.1.4 (#620)
Bumps [eslint-plugin-unused-imports](https://github.com/sweepline/eslint-plugin-unused-imports) from 3.2.0 to 4.1.4.
- [Commits](https://github.com/sweepline/eslint-plugin-unused-imports/commits/v4.1.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-unused-imports
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 11:16:23 +02:00
dependabot[bot]
307793f000
Bump @testing-library/dom from 10.0.0 to 10.4.0 (#585)
Bumps [@testing-library/dom](https://github.com/testing-library/dom-testing-library) from 10.0.0 to 10.4.0.
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v10.0.0...v10.4.0)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 11:14:41 +02:00
dependabot[bot]
96f549fe42
Bump micromatch from 4.0.5 to 4.0.8 in the npm_and_yarn group (#610)
Bumps the npm_and_yarn group with 1 update: [micromatch](https://github.com/micromatch/micromatch).


Updates `micromatch` from 4.0.5 to 4.0.8
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 11:14:29 +02:00
dependabot[bot]
3de4332477
Bump vite from 5.3.4 to 5.4.9 (#634)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.4 to 5.4.9.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.9/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.9/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 11:13:22 +02:00
Aine
3167b55430
lint fix 2025-05-06 11:31:43 +03:00
dependabot[bot]
cc44b5581f
Bump react-router-dom from 7.5.2 to 7.5.3 (#528)
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.5.2 to 7.5.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.5.3/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 11:27:16 +03:00
dependabot[bot]
30615eaf02
Bump @typescript-eslint/parser from 8.31.0 to 8.31.1 (#534)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.31.0 to 8.31.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.31.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 11:18:49 +03:00
dependabot[bot]
4e88f03aab
Bump react-hook-form from 7.56.1 to 7.56.2 (#531)
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.56.1 to 7.56.2.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.56.1...v7.56.2)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.56.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 11:06:05 +03:00
dependabot[bot]
9bc2788560
Bump @typescript-eslint/eslint-plugin from 8.31.0 to 8.31.1 (#536)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.31.0 to 8.31.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.31.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 11:05:38 +03:00
dependabot[bot]
a65eb56098
Bump @tanstack/react-query from 5.74.7 to 5.75.2 (#530)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.74.7 to 5.75.2.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.75.2/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.75.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 10:48:59 +03:00
dependabot[bot]
1c95995478
Bump eslint-plugin-prettier from 5.2.6 to 5.3.1 (#539)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.2.6 to 5.3.1.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.2.6...v5.3.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.3.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 10:48:30 +03:00
dependabot[bot]
d4c07980d5
Bump typescript-eslint from 8.31.0 to 8.31.1 (#526)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.31.0 to 8.31.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.31.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 10:48:09 +03:00
dependabot[bot]
96946186c9
Bump eslint from 9.25.1 to 9.26.0 (#527)
Bumps [eslint](https://github.com/eslint/eslint) from 9.25.1 to 9.26.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.25.1...v9.26.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 10:47:53 +03:00
dependabot[bot]
742106071d
Bump ra-language-french from 5.7.4 to 5.8.0 (#538)
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.7.4 to 5.8.0.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.7.4...v5.8.0)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 10:44:12 +03:00
dependabot[bot]
ce79eb330c
Bump react-admin from 5.7.4 to 5.8.0 (#533)
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.7.4 to 5.8.0.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.7.4...v5.8.0)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-06 10:43:54 +03:00
dependabot[bot]
04d07f5eb3
Bump vite from 6.3.3 to 6.3.4 in the npm_and_yarn group (#524)
Bumps the npm_and_yarn group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.3.3 to 6.3.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.4
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 08:38:00 +03:00
Aine
de7930f472
nope, missed one 2025-04-29 18:02:36 +03:00
Aine
2a66988807
pin all 3rdparty actions 2025-04-29 18:00:17 +03:00
Aine
5bfa98d3a1
use github action commit hash 2025-04-29 17:54:03 +03:00
dependabot[bot]
ea41f929a6
Bump @tanstack/react-query from 5.74.4 to 5.74.7 (#523)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.74.4 to 5.74.7.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.74.7/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.74.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-29 17:46:30 +03:00
dependabot[bot]
037dc09da6
Bump @types/node from 22.15.1 to 22.15.3 (#517)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.1 to 22.15.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-29 17:46:16 +03:00
dependabot[bot]
b9ad596f38
Bump ra-language-french from 5.7.3 to 5.7.4 (#520)
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.7.3...v5.7.4)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.7.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-29 17:45:54 +03:00
dependabot[bot]
c83e61af2c
Bump react-admin from 5.7.3 to 5.7.4 (#522)
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.7.3...v5.7.4)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.7.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-29 17:45:32 +03:00
Borislav Pantaleev
2752716497
Remove getPermissions to fix redirect loop (#516) 2025-04-26 05:22:51 +00:00
Aine
64f9d8b48c
update deps 2025-04-25 09:15:28 +03:00
dependabot[bot]
81fb008e59
Bump react-router-dom from 7.5.0 to 7.5.1 (#498)
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.5.0 to 7.5.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.5.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:29:45 +03:00
dependabot[bot]
cede7c611b
Bump react-router from 7.5.0 to 7.5.1 (#512)
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.5.0 to 7.5.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.5.1/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aine <97398200+aine-etke@users.noreply.github.com>
2025-04-23 14:23:45 +03:00
dependabot[bot]
8d66dca068
Bump react-hook-form from 7.55.0 to 7.56.0 (#500)
Bumps [react-hook-form](https://github.com/react-hook-form/react-hook-form) from 7.55.0 to 7.56.0.
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.55.0...v7.56.0)

---
updated-dependencies:
- dependency-name: react-hook-form
  dependency-version: 7.56.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:22:27 +03:00
dependabot[bot]
26620966ab
Bump @types/react from 19.1.1 to 19.1.2 (#506)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 19.1.1 to 19.1.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:22:01 +03:00
dependabot[bot]
29cb61bf47
Bump eslint from 9.24.0 to 9.25.0 (#505)
Bumps [eslint](https://github.com/eslint/eslint) from 9.24.0 to 9.25.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.24.0...v9.25.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.25.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:21:41 +03:00
dependabot[bot]
6b5863e257
Bump typescript-eslint from 8.29.1 to 8.30.1 (#510)
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.29.1 to 8.30.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.30.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.30.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:18:57 +03:00
dependabot[bot]
5a2c6ec326
Bump @eslint/js from 9.24.0 to 9.25.0 (#497)
Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.24.0 to 9.25.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.25.0/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-version: 9.25.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:16:43 +03:00
dependabot[bot]
f52bce55a8
Bump @tanstack/react-query from 5.74.0 to 5.74.4 (#501)
Bumps [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) from 5.74.0 to 5.74.4.
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.74.4/packages/react-query)

---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
  dependency-version: 5.74.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:16:24 +03:00
dependabot[bot]
76d3f42017
Bump @vitejs/plugin-react from 4.3.4 to 4.4.1 (#508)
Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 4.3.4 to 4.4.1.
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.4.1/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.4.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:15:55 +03:00
dependabot[bot]
5bfd330f08
Bump ra-language-french from 5.7.2 to 5.7.3 (#507)
Bumps [ra-language-french](https://github.com/marmelab/react-admin) from 5.7.2 to 5.7.3.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.7.2...v5.7.3)

---
updated-dependencies:
- dependency-name: ra-language-french
  dependency-version: 5.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:15:35 +03:00
dependabot[bot]
6d8ea12c5a
Bump vite from 6.2.6 to 6.3.2 (#502)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.6 to 6.3.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 14:15:21 +03:00
dependabot[bot]
399b37f57e
Bump react-admin from 5.7.2 to 5.7.3 (#499)
Bumps [react-admin](https://github.com/marmelab/react-admin) from 5.7.2 to 5.7.3.
- [Release notes](https://github.com/marmelab/react-admin/releases)
- [Changelog](https://github.com/marmelab/react-admin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marmelab/react-admin/compare/v5.7.2...v5.7.3)

---
updated-dependencies:
- dependency-name: react-admin
  dependency-version: 5.7.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-23 13:35:05 +03:00
Aine
e6f3d15b45
update docs 2025-04-15 16:10:10 +03:00
Aine
75e4cfa0c4
add contributing and security guidelines 2025-04-15 13:10:16 +03:00
Aine
ce3337c46f
Update issue templates 2025-04-15 13:08:38 +03:00
Aine
54b67b3b48
ensure MXC URLs properly parsed when media IDs contain hypens, fixes #494 2025-04-15 11:17:12 +03:00
68 changed files with 4622 additions and 3090 deletions

View File

@ -0,0 +1,33 @@
name: Build Application
on:
push:
tags:
- 'v*.*'
workflow_dispatch:
jobs:
build:
runs-on: large
steps:
# Шаг 1: Checkout кода
- name: Checkout repository
uses: actions/checkout@v3
# Шаг 2: Логин в Docker Registry (Gitea)
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ vars.GIT_INSTANCE }} # Замените на адрес вашего Gitea
username: ${{ secrets.GIT_USERNAME }}
password: ${{ secrets.GIT_TOKEN }}
# Шаг 3: Сборка и пуш Docker образа
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./
push: true
tags: |
${{ vars.GIT_INSTANCE }}/${{ secrets.GIT_USERNAME }}/${{ vars.REPOSITORY }}:latest
${{ vars.GIT_INSTANCE }}/${{ secrets.GIT_USERNAME }}/${{ vars.REPOSITORY }}:${{ github.sha }}

1
.github/FUNDING.yml vendored
View File

@ -1 +0,0 @@
liberapay: etkecc

View File

@ -1,19 +0,0 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 30
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 30
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 30

View File

@ -1,115 +0,0 @@
name: CI
on:
push:
branches: [ "main" ]
tags: [ "v*" ]
env:
bunny_version: v0.1.0
base_path: ./
permissions:
checks: write
contents: write
packages: write
pull-requests: read
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: lts/*
cache: yarn
- name: Install dependencies
run: yarn install --immutable --network-timeout=300000
- name: Build
run: yarn build --base=${{ env.base_path }}
- uses: actions/upload-artifact@v4
with:
path: dist/
name: dist
if-no-files-found: error
retention-days: 1
compression-level: 0
overwrite: true
include-hidden-files: true
docker:
name: Docker
needs: build
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ github.repository }}
registry.etke.cc/${{ github.repository }}
tags: |
type=raw,value=latest,enable=${{ github.ref_name == 'main' }}
type=semver,pattern={{raw}}
- name: Build and push
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cdn:
name: CDN
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Upload
run: |
wget -O bunny-upload.tar.gz https://github.com/etkecc/bunny-upload/releases/download/${{ env.bunny_version }}/bunny-upload_Linux_x86_64.tar.gz
tar -xzf bunny-upload.tar.gz
echo "${{ secrets.BUNNY_CONFIG }}" > bunny-config.yaml
./bunny-upload -c bunny-config.yaml
github-release:
name: Github Release
needs: build
if: ${{ startsWith(github.ref, 'refs/tags/') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Prepare release
run: |
mv dist synapse-admin
tar chvzf synapse-admin.tar.gz synapse-admin
- uses: softprops/action-gh-release@v2
with:
files: synapse-admin.tar.gz
generate_release_notes: true
make_latest: "true"
draft: false
prerelease: false

File diff suppressed because one or more lines are too long

925
.yarn/releases/yarn-4.4.1.cjs vendored Executable file

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,11 @@
FROM node:lts AS builder
ARG BASE_PATH=./
WORKDIR /src
COPY . /src
RUN yarn config set enableTelemetry 0 && \
yarn install --immutable --network-timeout=300000 && \
yarn build --base=$BASE_PATH
FROM ghcr.io/static-web-server/static-web-server:2
ENV SERVER_ROOT=/app
COPY ./dist /app
COPY --from=builder /src/dist /app

View File

@ -1,11 +0,0 @@
FROM node:lts AS builder
ARG BASE_PATH=./
WORKDIR /src
COPY . /src
RUN yarn config set enableTelemetry 0 && \
yarn install --immutable --network-timeout=300000 && \
yarn build --base=$BASE_PATH
FROM ghcr.io/static-web-server/static-web-server:2
ENV SERVER_ROOT=/app
COPY --from=builder /src/dist /app

5
Dockerfile.old Normal file
View File

@ -0,0 +1,5 @@
FROM ghcr.io/static-web-server/static-web-server:2
ENV SERVER_ROOT=/app
COPY ./dist /app

View File

@ -55,7 +55,7 @@ The full list is described below in the [Changes](#changes) section.
* As a core/default component on [etke.cc](https://etke.cc/?utm_source=github&utm_medium=readme&utm_campaign=synapse-admin)
* As a standalone app on [admin.etke.cc](https://admin.etke.cc)
* As a prebuilt distribution on [GitHub Releases](https://github.com/etkecc/synapse-admin/releases)
* As a Docker container on [GitHub Container Registry](https://github.com/etkecc/synapse-admin/pkgs/container/synapse-admin)
* As a Docker container on [Docker Hub](https://hub.docker.com/r/etkecc/synapse-admin) and [GitHub Container Registry](https://github.com/etkecc/synapse-admin/pkgs/container/synapse-admin)
* As a component in [Matrix-Docker-Ansible-Deploy Playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-synapse-admin.md)
### Changes
@ -109,10 +109,15 @@ The following changes are already implemented:
* 📞 [Support E.164-based Matrix IDs (MSC4009)](https://github.com/etkecc/synapse-admin/pull/214)
* 🛑 [Add support for Account Suspension (MSC3823)](https://github.com/etkecc/synapse-admin/pull/195)
* 🗑️ [Add "Purge Remote Media" button](https://github.com/etkecc/synapse-admin/pull/237)
* [Respect base url (`BASE_PATH` / `vite build --base`) when loading `config.json`](https://github.com/etkecc/synapse-admin/pull/274)
* [Add Users' Account Data tab](https://github.com/etkecc/synapse-admin/pull/276)
* [Make bulk registration CSV import more user-friendly](https://github.com/etkecc/synapse-admin/pull/411)
* [Configurable CORS Credentials](https://github.com/etkecc/synapse-admin/pull/456)
* 📁 [Respect base url (`BASE_PATH` / `vite build --base`) when loading `config.json`](https://github.com/etkecc/synapse-admin/pull/274)
* 🗂️ [Add Users' Account Data tab](https://github.com/etkecc/synapse-admin/pull/276)
* 🧾 [Make bulk registration CSV import more user-friendly](https://github.com/etkecc/synapse-admin/pull/411)
* 🌐 [Configurable CORS Credentials](https://github.com/etkecc/synapse-admin/pull/456)
* 🧪 [Do not check homeserver URL during typing in the login form](https://github.com/etkecc/synapse-admin/pull/585)
* 🔧 [Improve user account status toggles](https://github.com/etkecc/synapse-admin/pull/608)
* 🛡️ [Validate that password is entered upon reactivation of account](https://github.com/etkecc/synapse-admin/pull/609)
* 🌏 [Add Japanese localization](https://github.com/etkecc/synapse-admin/pull/631)
* 🗣️ [Correctly set document language based on the selected locale](https://github.com/etkecc/synapse-admin/issues/723)
#### exclusive for [etke.cc](https://etke.cc) customers
@ -123,6 +128,7 @@ The following list contains such features - they are only available for [etke.cc
* 📬 [Server Notifications indicator and page](https://github.com/etkecc/synapse-admin/pull/240)
* 🛠️ [Server Commands panel](https://github.com/etkecc/synapse-admin/pull/365)
* 🚀 [Server Actions page](https://github.com/etkecc/synapse-admin/pull/457)
* 💳 [Billing page](https://github.com/etkecc/synapse-admin/pull/691)
### Development

View File

@ -17,6 +17,7 @@ Table of contents:
Specific configuration options:
* [Customizing CORS credentials](./cors-credentials.md)
* [Restricting available homeserver](./restrict-hs.md)
* [System / Appservice-managed Users](./system-users.md)
* [Custom Menu Items](./custom-menu.md)
@ -33,6 +34,10 @@ they are not available for any other Synapse Admin deployments.
* [Server Status icon](../src/components/etke.cc/README.md#server-status-icon)
* [Server Status page](../src/components/etke.cc/README.md#server-status-page)
* [Server Actions page](../src/components/etke.cc/README.md#server-actions-page)
* [Server Commands Panel](../src/components/etke.cc/README.md#server-commands-panel)
* [Server Notifications icon](../src/components/etke.cc/README.md#server-notifications-icon)
* [Server Notifications page](../src/components/etke.cc/README.md#server-notifications-page)
## Deployment

View File

@ -9,7 +9,7 @@ You can do that for a single homeserver or multiple homeservers at once, as `res
an array of strings.
The examples below contain the configuration settings to restrict the Synapse Admin instance to work only with
`example.com` (with Synapse runing at `matrix.example.com`) and
`example.com` (with Synapse running at `matrix.example.com`) and
`example.net` (with Synapse running at `synapse.example.net`) homeservers.
Note that the homeserver URL should be the _actual_ homeserver URL, and not the delegated one.

View File

@ -10,7 +10,7 @@ const config: JestConfigWithTsJest = {
extensionsToTreatAsEsm: [".ts", ".tsx"],
setupFilesAfterEnv: ["<rootDir>/src/jest.setup.ts"],
transform: {
"^.+\\.tsx?$": [
"^.+\\.(js|jsx|ts|tsx)$": [
"ts-jest",
{
diagnostics: {
@ -27,5 +27,6 @@ const config: JestConfigWithTsJest = {
},
],
},
transformIgnorePatterns: [],
};
export default config;

View File

@ -6,6 +6,9 @@ default:
build: __install
@yarn run build --base=./
update:
yarn upgrade-interactive --latest
# run the app in a development mode
run:
@yarn start --host 0.0.0.0

View File

@ -1,75 +1,95 @@
{
"name": "synapse-admin",
"version": "0.10.3",
"description": "Admin GUI for the Matrix.org server Synapse",
"version": "0.11.1",
"description": "Feature-packed and visually customizable admin GUI for Matrix Synapse servers.",
"keywords": [
"matrix",
"synapse",
"admin",
"homeserver",
"management",
"react",
"nodejs",
"dashboard",
"etkecc",
"docker"
],
"type": "module",
"author": "etke.cc (originally by Awesome Technologies Innovationslabor GmbH)",
"license": "Apache-2.0",
"homepage": ".",
"homepage": "https://github.com/etkecc/synapse-admin#readme",
"repository": {
"type": "git",
"url": "https://github.com/etkecc/synapse-admin"
"url": "git+https://github.com/etkecc/synapse-admin.git"
},
"bugs": {
"url": "https://github.com/etkecc/synapse-admin/issues"
},
"funding": {
"type": "individual",
"url": "https://liberapay.com/etkecc"
},
"devDependencies": {
"@eslint/js": "^9.22.0",
"@testing-library/dom": "^10.0.0",
"@testing-library/jest-dom": "^6.6.3",
"@eslint/js": "^9.32.0",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.6.4",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/jest": "^29.5.14",
"@types/lodash": "^4.17.16",
"@types/node": "^22.14.1",
"@types/papaparse": "^5.3.15",
"@types/react": "^19.1.1",
"@typescript-eslint/eslint-plugin": "^8.29.1",
"@typescript-eslint/parser": "^8.29.0",
"@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.24.0",
"eslint-config-prettier": "^10.1.2",
"eslint-plugin-import": "^2.31.0",
"@types/jest": "^30.0.0",
"@types/lodash": "^4.17.20",
"@types/node": "^24.2.1",
"@types/papaparse": "^5.3.16",
"@types/react": "^19.1.10",
"@typescript-eslint/eslint-plugin": "^8.32.0",
"@typescript-eslint/parser": "^8.37.0",
"@vitejs/plugin-react": "^5.0.0",
"eslint": "^9.33.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-prettier": "^5.2.6",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-unused-imports": "^4.1.4",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest": "^30.0.5",
"jest-environment-jsdom": "^30.0.5",
"jest-fetch-mock": "^3.0.3",
"prettier": "^3.5.3",
"react-test-renderer": "^19.1.0",
"ts-jest": "^29.3.2",
"prettier": "^3.6.2",
"react-test-renderer": "^19.1.1",
"ts-jest": "^29.4.1",
"ts-node": "^10.9.2",
"typescript": "^5.8.3",
"typescript-eslint": "^8.29.1",
"vite": "^6.2.6",
"typescript-eslint": "^8.39.1",
"vite": "^7.1.2",
"vite-plugin-version-mark": "^0.1.4"
},
"dependencies": {
"@bicstone/ra-language-japanese": "^5.10.0",
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@emotion/styled": "^11.14.1",
"@haleos/ra-language-german": "^1.0.0",
"@haxqer/ra-language-chinese": "^4.16.2",
"@mui/icons-material": "^6.4.8",
"@mui/material": "^6.4.8",
"@mui/utils": "^6.4.9",
"@tanstack/react-query": "^5.74.0",
"@mui/icons-material": "^7.3.1",
"@mui/material": "^7.3.1",
"@mui/utils": "^7.1.0",
"@tanstack/react-query": "^5.84.2",
"history": "^5.3.0",
"jest-fixed-jsdom": "^0.0.9",
"lodash": "^4.17.21",
"papaparse": "^5.5.1",
"papaparse": "^5.5.3",
"ra-core": "^5.4.4",
"ra-i18n-polyglot": "^5.4.4",
"ra-language-english": "^5.4.4",
"ra-language-farsi": "^5.1.0",
"ra-language-french": "^5.7.2",
"ra-language-french": "^5.10.1",
"ra-language-italian": "^3.13.1",
"ra-language-russian": "^5.4.3",
"react": "^19.1.0",
"react-admin": "^5.7.2",
"react-dom": "^19.1.0",
"react-hook-form": "^7.55.0",
"react-is": "^19.1.0",
"ts-jest-mock-import-meta": "^1.3.0",
"react-router": "^7.5.0",
"react-router-dom": "^7.5.0"
"ra-language-russian": "^5.4.4",
"react": "^19.1.1",
"react-admin": "^5.10.1",
"react-dom": "^19.1.1",
"react-hook-form": "^7.62.0",
"react-is": "^19.1.1",
"react-router": "^7.6.0",
"react-router-dom": "^7.8.0",
"ts-jest-mock-import-meta": "^1.3.1"
},
"scripts": {
"start": "vite serve",
@ -102,6 +122,18 @@
"root": true,
"rules": {
"prettier/prettier": "error",
"@typescript-eslint/no-unused-vars": [
"error",
{
"args": "all",
"argsIgnorePattern": "^_",
"caughtErrors": "all",
"caughtErrorsIgnorePattern": "^_",
"destructuredArrayIgnorePattern": "^_",
"varsIgnorePattern": "^_",
"ignoreRestSiblings": true
}
],
"import/no-extraneous-dependencies": [
"error",
{

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -5,6 +5,7 @@ import { Admin, CustomRoutes, Resource, resolveBrowserLocale } from "react-admin
import { Route } from "react-router-dom";
import AdminLayout from "./components/AdminLayout";
import BillingPage from "./components/etke.cc/BillingPage";
import ServerActionsPage from "./components/etke.cc/ServerActionsPage";
import ServerNotificationsPage from "./components/etke.cc/ServerNotificationsPage";
import ServerStatusPage from "./components/etke.cc/ServerStatusPage";
@ -16,6 +17,7 @@ import germanMessages from "./i18n/de";
import englishMessages from "./i18n/en";
import frenchMessages from "./i18n/fr";
import italianMessages from "./i18n/it";
import japaneseMessages from "./i18n/ja";
import russianMessages from "./i18n/ru";
import chineseMessages from "./i18n/zh";
import LoginPage from "./pages/LoginPage";
@ -35,6 +37,7 @@ const messages = {
en: englishMessages,
fr: frenchMessages,
it: italianMessages,
ja: japaneseMessages,
ru: russianMessages,
zh: chineseMessages,
};
@ -46,9 +49,10 @@ const i18nProvider = polyglotI18nProvider(
{ locale: "de", name: "Deutsch" },
{ locale: "fr", name: "Français" },
{ locale: "it", name: "Italiano" },
{ locale: "fa", name: "Persian(فارسی)" },
{ locale: "ru", name: "Russian(Русский)" },
{ locale: "zh", name: "简体中文" },
{ locale: "ja", name: "Japanese (日本語)" },
{ locale: "fa", name: "Persian (فارسی)" },
{ locale: "ru", name: "Russian (Русский)" },
{ locale: "zh", name: "Chinese (简体中文)" },
]
);
@ -59,6 +63,7 @@ export const App = () => (
<Admin
disableTelemetry
requireAuth
title="Synapse Admin"
layout={AdminLayout}
loginPage={LoginPage}
authProvider={authProvider}
@ -75,6 +80,7 @@ export const App = () => (
<Route path="/server_actions/recurring/:id" element={<RecurringCommandEdit />} />
<Route path="/server_actions/recurring/create" element={<RecurringCommandEdit />} />
<Route path="/server_notifications" element={<ServerNotificationsPage />} />
<Route path="/billing" element={<BillingPage />} />
</CustomRoutes>
<Resource {...users} />
<Resource {...rooms} />

View File

@ -1,4 +1,5 @@
import ManageHistoryIcon from "@mui/icons-material/ManageHistory";
import PaymentIcon from "@mui/icons-material/Payment";
import { useEffect, useState, Suspense } from "react";
import {
CheckForApplicationUpdate,
@ -12,6 +13,7 @@ import {
useLogout,
UserMenu,
useStore,
useLocaleState,
} from "react-admin";
import Footer from "./Footer";
@ -83,11 +85,11 @@ const AdminMenu = props => {
setEtkeRoutesEnabled(true);
}
}, []);
const [serverProcess, setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
const [serverProcess, _setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
command: "",
locked_at: "",
});
const [serverStatus, setServerStatus] = useStore<ServerStatusResponse>("serverStatus", {
const [serverStatus, _setServerStatus] = useStore<ServerStatusResponse>("serverStatus", {
success: false,
ok: false,
host: "",
@ -120,10 +122,12 @@ const AdminMenu = props => {
primaryText="Server Actions"
/>
)}
{etkeRoutesEnabled && <Menu.Item key="billing" to="/billing" leftIcon={<PaymentIcon />} primaryText="Billing" />}
<Menu.ResourceItems />
{menu &&
menu.map((item, index) => {
const { url, icon, label } = item;
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const IconComponent = Icons[icon] as React.ComponentType<any> | undefined;
return (
@ -143,6 +147,12 @@ const AdminMenu = props => {
};
export const AdminLayout = ({ children }) => {
// Set the document language based on the selected locale
const [locale, _setLocale] = useLocaleState();
useEffect(() => {
document.documentElement.lang = locale;
}, [locale]);
return (
<>
<Layout

View File

@ -7,10 +7,8 @@ import {
SimpleForm,
BooleanInput,
useTranslate,
RaRecord,
useNotify,
useRedirect,
useDelete,
NotificationType,
useDeleteMany,
Identifier,
@ -51,7 +49,7 @@ const DeleteRoomButton: React.FC<DeleteRoomButtonProps> = props => {
unselectAll();
redirect("/rooms");
},
onError: error => notify("resources.rooms.action.erase.failure", { type: "error" as NotificationType }),
onError: _error => notify("resources.rooms.action.erase.failure", { type: "error" as NotificationType }),
}
);
};

View File

@ -7,10 +7,8 @@ import {
SimpleForm,
BooleanInput,
useTranslate,
RaRecord,
useNotify,
useRedirect,
useDelete,
NotificationType,
useDeleteMany,
Identifier,
@ -57,7 +55,7 @@ const DeleteUserButton: React.FC<DeleteUserButtonProps> = props => {
unselectAll();
redirect("/users");
},
onError: error => notify("ra.notification.data_provider_error", { type: "error" as NotificationType }),
onError: _error => notify("ra.notification.data_provider_error", { type: "error" as NotificationType }),
}
);
};

View File

@ -74,7 +74,7 @@ export const ExperimentalFeaturesList = () => {
const updateFeature = async (feature_name: string, feature_value: boolean) => {
const updatedFeatures = { ...features, [feature_name]: feature_value } as ExperimentalFeaturesModel;
setFeatures(updatedFeatures);
const reponse = await dataProvider.updateFeatures(record.id, updatedFeatures);
await dataProvider.updateFeatures(record.id, updatedFeatures);
notify("ra.notification.updated", {
messageArgs: { smart_count: 1 },
type: "success",

View File

@ -1,4 +1,4 @@
import { Avatar, Box, Link, Typography } from "@mui/material";
import { Avatar, Box, Link } from "@mui/material";
import { useTheme } from "@mui/material/styles";
import { useEffect, useState } from "react";

View File

@ -29,7 +29,7 @@ const UserAccountData = () => {
return (
<Typography variant="body2">
{translate("ra.navigation.no_results", {
resource: "Account Data",
name: "Account Data",
_: "No results found.",
})}
</Typography>
@ -40,7 +40,7 @@ const UserAccountData = () => {
<>
<Stack direction="column" spacing={2} width="100%">
<Typography variant="h6">{translate("resources.users.account_data.title")}</Typography>
<Typography variant="body1">
<Typography variant="body1" component="div">
<Box>
<Accordion>
<AccordionSummary expandIcon={<ArrowDownwardIcon />}>

View File

@ -1,7 +1,7 @@
import { Stack, Typography } from "@mui/material";
import { TextField } from "@mui/material";
import { useEffect, useState } from "react";
import { useDataProvider, useNotify, useRecordContext, useTranslate } from "react-admin";
import { useDataProvider, useRecordContext, useTranslate } from "react-admin";
import { useFormContext } from "react-hook-form";
const RateLimitRow = ({
@ -10,8 +10,8 @@ const RateLimitRow = ({
updateRateLimit,
}: {
limit: string;
value: any;
updateRateLimit: (limit: string, value: any) => void;
value: object;
updateRateLimit: (limit: string, value: integer | null) => void;
}) => {
const translate = useTranslate();
@ -33,7 +33,6 @@ const RateLimitRow = ({
}}
>
<TextField
id="outlined-number"
type="number"
value={value}
onChange={handleChange}
@ -54,8 +53,6 @@ const RateLimitRow = ({
};
const UserRateLimits = () => {
const translate = useTranslate();
const notify = useNotify();
const record = useRecordContext();
const form = useFormContext();
const dataProvider = useDataProvider();
@ -79,7 +76,7 @@ const UserRateLimits = () => {
fetchRateLimits();
}, []);
const updateRateLimit = async (limit: string, value: any) => {
const updateRateLimit = async (limit: string, value: integer | null) => {
const updatedRateLimits = { ...rateLimits, [limit]: value };
setRateLimits(updatedRateLimits);
form.setValue(`rates.${limit}`, value, { shouldDirty: true });

View File

@ -0,0 +1,214 @@
import ContentCopyIcon from "@mui/icons-material/ContentCopy";
import DownloadIcon from "@mui/icons-material/Download";
import PaymentIcon from "@mui/icons-material/Payment";
import {
Box,
Typography,
Link,
Table,
TableBody,
TableCell,
TableContainer,
TableHead,
TableRow,
Paper,
Chip,
Button,
Tooltip,
} from "@mui/material";
import { Stack } from "@mui/material";
import IconButton from "@mui/material/IconButton";
import { useState, useEffect } from "react";
import { useDataProvider, useNotify } from "react-admin";
import { useAppContext } from "../../Context";
import { SynapseDataProvider, Payment } from "../../synapse/dataProvider";
const TruncatedUUID = ({ uuid }): React.ReactElement => {
const short = `${uuid.slice(0, 8)}...${uuid.slice(-6)}`;
const copyToClipboard = () => navigator.clipboard.writeText(uuid);
return (
<Tooltip title={uuid}>
<span style={{ display: "inline-flex", alignItems: "center" }}>
{short}
<IconButton size="small" onClick={copyToClipboard}>
<ContentCopyIcon fontSize="small" />
</IconButton>
</span>
</Tooltip>
);
};
const BillingPage = () => {
const { etkeccAdmin } = useAppContext();
const dataProvider = useDataProvider() as SynapseDataProvider;
const notify = useNotify();
const [paymentsData, setPaymentsData] = useState<Payment[]>([]);
const [total, setTotal] = useState(0);
const [loading, setLoading] = useState(true);
const [failure, setFailure] = useState<string | null>(null);
const [downloadingInvoice, setDownloadingInvoice] = useState<string | null>(null);
useEffect(() => {
const fetchBillingData = async () => {
if (!etkeccAdmin) return;
try {
setLoading(true);
const response = await dataProvider.getPayments(etkeccAdmin);
setPaymentsData(response.payments);
setTotal(response.total);
} catch (error) {
console.error("Error fetching billing data:", error);
setFailure(error instanceof Error ? error.message : error);
} finally {
setLoading(false);
}
};
fetchBillingData();
}, [etkeccAdmin, dataProvider, notify]);
const handleInvoiceDownload = async (transactionId: string) => {
if (!etkeccAdmin || downloadingInvoice) return;
try {
setDownloadingInvoice(transactionId);
await dataProvider.getInvoice(etkeccAdmin, transactionId);
notify("Invoice download started", { type: "info" });
} catch (error) {
// Use the specific error message from the dataProvider
const errorMessage = error instanceof Error ? error.message : "Error downloading invoice";
notify(errorMessage, { type: "error" });
console.error("Error downloading invoice:", error);
} finally {
setDownloadingInvoice(null);
}
};
const header = (
<Box>
<Typography variant="h4">
<PaymentIcon sx={{ verticalAlign: "middle", mr: 1 }} /> Billing
</Typography>
<Typography variant="body1">
View payments and generate invoices from here. More details about billing can be found{" "}
<Link href="https://etke.cc/help/extras/scheduler/#payments" target="_blank">
here
</Link>
.
<br />
If you'd like to change your billing email, or add company details, please{" "}
<Link href="https://etke.cc/contacts/" target="_blank">
contact etke.cc support
</Link>
.
</Typography>
</Box>
);
if (loading) {
return (
<Stack spacing={3} mt={3}>
{header}
<Box sx={{ mt: 3 }}>
<Typography>Loading billing information...</Typography>
</Box>
</Stack>
);
}
if (failure) {
return (
<Stack spacing={3} mt={3}>
{header}
<Box sx={{ mt: 3 }}>
<Typography>
There was a problem loading your billing information.
<br />
This might be a temporary issue - please try again in a few minutes.
<br />
If it persists, contact{" "}
<Link href="https://etke.cc/contacts/" target="_blank">
etke.cc support team
</Link>{" "}
with the following error message:
</Typography>
<Typography variant="body2" color="error" sx={{ mt: 1 }}>
{failure}
</Typography>
</Box>
</Stack>
);
}
return (
<Stack spacing={3} mt={3}>
{header}
<Box sx={{ mt: 2 }}>
<Typography variant="h5">Payment Summary</Typography>
<Box sx={{ mt: 1, display: "flex", alignItems: "center", gap: 1 }}>
<Typography variant="body1">Total Payments:</Typography>
<Chip label={total} color="primary" variant="outlined" />
</Box>
</Box>
<Box sx={{ mt: 2 }}>
<Typography variant="h5" sx={{ mb: 2 }}>
Payment History
</Typography>
{paymentsData.length === 0 ? (
<Typography variant="body1">
No payments found. If you believe that's an error, please{" "}
<Link href="https://etke.cc/contacts/" target="_blank">
contact etke.cc support
</Link>
.
</Typography>
) : (
<TableContainer component={Paper}>
<Table>
<TableHead>
<TableRow>
<TableCell>Transaction ID</TableCell>
<TableCell>Email</TableCell>
<TableCell>Type</TableCell>
<TableCell>Amount</TableCell>
<TableCell>Paid At</TableCell>
<TableCell>Download Invoice</TableCell>
</TableRow>
</TableHead>
<TableBody>
{paymentsData.map(payment => (
<TableRow key={payment.transaction_id}>
<TableCell>
<TruncatedUUID uuid={payment.transaction_id} />
</TableCell>
<TableCell>{payment.email}</TableCell>
<TableCell>{payment.is_subscription ? "Subscription" : "One-time"}</TableCell>
<TableCell>${payment.amount.toFixed(2)}</TableCell>
<TableCell>{new Date(payment.paid_at).toLocaleDateString()}</TableCell>
<TableCell>
<Button
variant="outlined"
size="small"
startIcon={<DownloadIcon />}
onClick={() => handleInvoiceDownload(payment.transaction_id)}
disabled={downloadingInvoice === payment.transaction_id}
>
{downloadingInvoice === payment.transaction_id ? "Downloading..." : "Invoice"}
</Button>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</TableContainer>
)}
</Box>
</Stack>
);
};
export default BillingPage;

View File

@ -5,7 +5,7 @@ import { ServerProcessResponse } from "../../synapse/dataProvider";
import { getTimeSince } from "../../utils/date";
const CurrentlyRunningCommand = () => {
const [serverProcess, setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
const [serverProcess, _setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
command: "",
locked_at: "",
});

View File

@ -65,3 +65,10 @@ On this page you can do the following:
When you open [Server Actions page](#server-status-page), you will see the Server Commands panel.
This panel contains all [the commands](https://etke.cc/help/extras/scheduler/#commands) you can run on your server in 1 click.
Once command is finished, you will get a notification about the result.
### Billing Page
![Billing Page](../../../screenshots/etke.cc/billing/page.webp)
When you click on the `Billing` sidebar menu item, you will be see the Billing page.
On this page you can see the list of successful payments and invoices.

View File

@ -1,6 +1,6 @@
import RestoreIcon from "@mui/icons-material/Restore";
import ScheduleIcon from "@mui/icons-material/Schedule";
import { Box, Typography, Link, Divider } from "@mui/material";
import { Box, Typography, Link } from "@mui/material";
import { Stack } from "@mui/material";
import CurrentlyRunningCommand from "./CurrentlyRunningCommand";

View File

@ -23,6 +23,7 @@ import { ServerCommand, ServerProcessResponse } from "../../synapse/dataProvider
import { Icons } from "../../utils/icons";
const renderIcon = (icon: string) => {
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const IconComponent = Icons[icon] as React.ComponentType<any> | undefined;
return IconComponent ? <IconComponent sx={{ verticalAlign: "middle", mr: 1 }} /> : null;
};
@ -80,6 +81,7 @@ const ServerCommandsPanel = () => {
// Update server process status
await updateServerProcessStatus(serverCommands[command]);
} catch (error) {
console.error("Error running command:", error);
setCommandIsRunning(false);
}
};

View File

@ -33,7 +33,7 @@ const useServerNotifications = () => {
notifications: [],
success: false,
});
const [serverProcess, setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
const [serverProcess, _setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
command: "",
locked_at: "",
});

View File

@ -59,11 +59,11 @@ const useServerStatus = () => {
host: "",
results: [],
});
const [serverProcess, setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
const [serverProcess, _setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
command: "",
locked_at: "",
});
const { command, locked_at } = serverProcess;
const { command } = serverProcess;
const { etkeccAdmin } = useAppContext();
const dataProvider = useDataProvider();
const isOkay = serverStatus.ok;

View File

@ -1,12 +1,11 @@
import CheckIcon from "@mui/icons-material/Check";
import CloseIcon from "@mui/icons-material/Close";
import EngineeringIcon from "@mui/icons-material/Engineering";
import { Alert, Box, Stack, Typography, Paper, Link, Chip, Divider, Tooltip, ChipProps } from "@mui/material";
import { Box, Stack, Typography, Paper, Link, Chip, Divider, ChipProps } from "@mui/material";
import { useStore } from "ra-core";
import CurrentlyRunningCommand from "./CurrentlyRunningCommand";
import { ServerProcessResponse, ServerStatusComponent, ServerStatusResponse } from "../../synapse/dataProvider";
import { getTimeSince } from "../../utils/date";
const StatusChip = ({
isOkay,
@ -40,17 +39,17 @@ const ServerComponentText = ({ text }: { text: string }) => {
};
const ServerStatusPage = () => {
const [serverStatus, setServerStatus] = useStore<ServerStatusResponse>("serverStatus", {
const [serverStatus, _setServerStatus] = useStore<ServerStatusResponse>("serverStatus", {
ok: false,
success: false,
host: "",
results: [],
});
const [serverProcess, setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
const [serverProcess, _setServerProcess] = useStore<ServerProcessResponse>("serverProcess", {
command: "",
locked_at: "",
});
const { command, locked_at } = serverProcess;
const { command } = serverProcess;
const successCheck = serverStatus.success;
const isOkay = serverStatus.ok;
const host = serverStatus.host;
@ -104,7 +103,7 @@ const ServerStatusPage = () => {
</Typography>
<Stack spacing={2} direction="row">
{Object.keys(groupedResults).map((category, idx) => (
{Object.keys(groupedResults).map((category, _idx) => (
<Box key={`category_${category}`} sx={{ flex: 1 }}>
<Typography variant="h5" mb={1}>
{category}

View File

@ -1,21 +0,0 @@
const transformCommandsToChoices = (commands: Record<string, any>) => {
return Object.entries(commands).map(([key, value]) => ({
id: key,
name: value.name,
description: value.description,
}));
};
const ScheduledCommandCreate = () => {
const commandChoices = transformCommandsToChoices(serverCommands);
return (
<SimpleForm>
<SelectInput
source="command"
choices={commandChoices}
optionText={choice => `${choice.name} - ${choice.description}`}
/>
</SimpleForm>
);
};

View File

@ -22,6 +22,7 @@ import { RecurringCommand } from "../../../../../synapse/dataProvider";
import { useServerCommands } from "../../../hooks/useServerCommands";
import { useRecurringCommands } from "../../hooks/useRecurringCommands";
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const transformCommandsToChoices = (commands: Record<string, any>) => {
return Object.entries(commands).map(([key, value]) => ({
id: key,
@ -111,13 +112,11 @@ const RecurringCommandEdit = () => {
delete submissionData.args;
}
let result;
if (isCreating) {
result = await dataProvider.createRecurringCommand(etkeccAdmin, submissionData);
await dataProvider.createRecurringCommand(etkeccAdmin, submissionData);
notify("recurring_commands.action.create_success", { type: "success" });
} else {
result = await dataProvider.updateRecurringCommand(etkeccAdmin, {
await dataProvider.updateRecurringCommand(etkeccAdmin, {
...submissionData,
id: id,
});
@ -129,6 +128,7 @@ const RecurringCommandEdit = () => {
navigate("/server_actions");
} catch (error) {
console.error("Error saving recurring command:", error);
notify("recurring_commands.action.update_failure", { type: "error" });
}
};

View File

@ -21,7 +21,7 @@ const ListActions = () => {
};
const RecurringCommandsList = () => {
const { data, isLoading, error } = useRecurringCommands();
const { data, isLoading } = useRecurringCommands();
const listContext = useList({
resource: "recurring",
@ -40,6 +40,7 @@ const RecurringCommandsList = () => {
<Paper>
<Datagrid
bulkActionButtons={false}
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
rowClick={(id: Identifier, resource: string, record: any) => {
if (!record) {
return "";

View File

@ -11,7 +11,6 @@ import {
useDataProvider,
Loading,
Button,
BooleanInput,
SelectInput,
} from "react-admin";
import { useWatch } from "react-hook-form";
@ -23,6 +22,7 @@ import { ScheduledCommand } from "../../../../../synapse/dataProvider";
import { useServerCommands } from "../../../hooks/useServerCommands";
import { useScheduledCommands } from "../../hooks/useScheduledCommands";
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const transformCommandsToChoices = (commands: Record<string, any>) => {
return Object.entries(commands).map(([key, value]) => ({
id: key,
@ -50,7 +50,7 @@ const ScheduledCommandEdit = () => {
const isCreating = typeof id === "undefined";
const [loading, setLoading] = useState(!isCreating);
const { data: scheduledCommands, isLoading: isLoadingList } = useScheduledCommands();
const { serverCommands, isLoading: isLoadingServerCommands } = useServerCommands();
const { serverCommands } = useServerCommands();
const pageTitle = isCreating ? "Create Scheduled Command" : "Edit Scheduled Command";
const commandChoices = transformCommandsToChoices(serverCommands);
@ -67,15 +67,12 @@ const ScheduledCommandEdit = () => {
const handleSubmit = async data => {
try {
let result;
data.scheduled_at = new Date(data.scheduled_at).toISOString();
if (isCreating) {
result = await dataProvider.createScheduledCommand(etkeccAdmin, data);
await dataProvider.createScheduledCommand(etkeccAdmin, data);
notify("scheduled_commands.action.create_success", { type: "success" });
} else {
result = await dataProvider.updateScheduledCommand(etkeccAdmin, {
await dataProvider.updateScheduledCommand(etkeccAdmin, {
...data,
id: id,
});
@ -84,6 +81,7 @@ const ScheduledCommandEdit = () => {
navigate("/server_actions");
} catch (error) {
console.log("Error saving scheduled command:", error);
notify("scheduled_commands.action.update_failure", { type: "error" });
}
};

View File

@ -4,8 +4,6 @@ import { useState, useEffect } from "react";
import {
Loading,
Button,
useDataProvider,
useNotify,
SimpleShowLayout,
TextField,
BooleanField,
@ -15,7 +13,6 @@ import {
import { useParams, useNavigate } from "react-router-dom";
import ScheduledDeleteButton from "./ScheduledDeleteButton";
import { useAppContext } from "../../../../../Context";
import { ScheduledCommand } from "../../../../../synapse/dataProvider";
import { useScheduledCommands } from "../../hooks/useScheduledCommands";

View File

@ -1,15 +1,13 @@
import AddIcon from "@mui/icons-material/Add";
import { Paper } from "@mui/material";
import { Loading, Button, useNotify, useRefresh, useCreatePath, useRecordContext } from "react-admin";
import { Loading, Button } from "react-admin";
import { ResourceContextProvider, useList } from "react-admin";
import { ListContextProvider, TextField } from "react-admin";
import { Datagrid } from "react-admin";
import { BooleanField, DateField, TopToolbar } from "react-admin";
import { useDataProvider } from "react-admin";
import { Identifier } from "react-admin";
import { useNavigate } from "react-router-dom";
import { useAppContext } from "../../../../../Context";
import { DATE_FORMAT } from "../../../../../utils/date";
import { useScheduledCommands } from "../../hooks/useScheduledCommands";
const ListActions = () => {
@ -27,7 +25,7 @@ const ListActions = () => {
};
const ScheduledCommandsList = () => {
const { data, isLoading, error } = useScheduledCommands();
const { data, isLoading } = useScheduledCommands();
const listContext = useList({
resource: "scheduled",
@ -46,6 +44,7 @@ const ScheduledCommandsList = () => {
<Paper>
<Datagrid
bulkActionButtons={false}
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
rowClick={(id: Identifier, resource: string, record: any) => {
if (!record) {
return "";

View File

@ -7,16 +7,7 @@ import DownloadingIcon from "@mui/icons-material/Downloading";
import FileOpenIcon from "@mui/icons-material/FileOpen";
import LockIcon from "@mui/icons-material/Lock";
import LockOpenIcon from "@mui/icons-material/LockOpen";
import {
Grid2 as Grid,
Box,
Dialog,
DialogContent,
DialogContentText,
DialogTitle,
Tooltip,
Link,
} from "@mui/material";
import { Box, Dialog, DialogContent, DialogContentText, DialogTitle, Tooltip } from "@mui/material";
import { alpha, useTheme } from "@mui/material/styles";
import { useMutation } from "@tanstack/react-query";
import { get } from "lodash";
@ -149,7 +140,6 @@ const PurgeRemoteMediaDialog = ({ open, onClose, onSubmit }) => {
};
export const PurgeRemoteMediaButton = (props: ButtonProps) => {
const theme = useTheme();
const [open, setOpen] = useState(false);
const notify = useNotify();
const dataProvider = useDataProvider<SynapseDataProvider>();

View File

@ -3,7 +3,7 @@ import { CardContent, CardHeader, Container } from "@mui/material";
import { useTranslate } from "ra-core";
import { ChangeEventHandler } from "react";
import { ParsedStats, Progress } from "./types";
import { ImportResult, ParsedStats, Progress } from "./types";
const TranslatableOption = ({ value, text }: { value: string; text: string }) => {
const translate = useTranslate();
@ -18,7 +18,7 @@ const ConflictModeCard = ({
progress,
}: {
stats: ParsedStats | null;
importResults: any;
importResults: ImportResult | null;
onConflictModeChanged: ChangeEventHandler<HTMLSelectElement>;
conflictMode: string;
progress: Progress;

View File

@ -5,7 +5,7 @@ import { Checkbox } from "@mui/material";
import { useTranslate } from "ra-core";
import { ChangeEventHandler } from "react";
import { ParsedStats, Progress } from "./types";
import { ImportResult, ParsedStats, Progress } from "./types";
const StatsCard = ({
stats,
@ -18,7 +18,7 @@ const StatsCard = ({
}: {
stats: ParsedStats | null;
progress: Progress;
importResults: any;
importResults: ImportResult | null;
useridMode: string;
passwordMode: boolean;
onUseridModeChanged: ChangeEventHandler<HTMLSelectElement>;

View File

@ -2,14 +2,14 @@ import { CardHeader, CardContent, Container, Link, Stack, Typography, Paper } fr
import { useTranslate } from "ra-core";
import { ChangeEventHandler } from "react";
import { Progress } from "./types";
import { ImportResult, Progress } from "./types";
const UploadCard = ({
importResults,
onFileChange,
progress,
}: {
importResults: any;
importResults: ImportResult | null;
onFileChange: ChangeEventHandler<HTMLInputElement>;
progress: Progress;
}) => {

View File

@ -273,7 +273,7 @@ const useImportFile = () => {
let retries = 0;
const submitRecord = async (recordData: ImportLine) => {
try {
const response = await dataProvider.getOne("users", { id: recordData.id });
await dataProvider.getOne("users", { id: recordData.id });
if (LOGGING) console.log("already existed");

View File

@ -204,11 +204,14 @@ const de: SynapseTranslationMessages = {
},
helper: {
password: "Durch die Änderung des Passworts wird der Benutzer von allen Sitzungen abgemeldet.",
password_required_for_reactivation: "Sie müssen ein Passwort angeben, um ein Konto wieder zu aktivieren.",
create_password: "Generiere ein starkes und sicheres Passwort mit dem Button unten.",
deactivate: "Sie müssen ein Passwort angeben, um ein Konto wieder zu aktivieren.",
suspend:
"Ein gesperrter Benutzer kann sich nicht mehr anmelden und wird in den schreibgeschützten Modus versetzt.",
erase: "DSGVO konformes Löschen der Benutzerdaten.",
admin: "Ein Serveradministrator hat volle Kontrolle über den Server und seine Benutzer.",
lock: "Verhindert, dass der Benutzer den Server nutzen kann. Dies ist eine nicht-destruktive Aktion, die rückgängig gemacht werden kann.",
erase_text:
"Das bedeutet, dass die von dem/den Benutzer(n) gesendeten Nachrichten für alle, die zum Zeitpunkt des Sendens im Raum waren, sichtbar bleiben, aber für Benutzer, die dem Raum später beitreten, nicht sichtbar sind.",
erase_admin_error: "Das Löschen des eigenen Benutzers ist nicht erlaubt.",

View File

@ -1,3 +1,13 @@
// SPDX-FileCopyrightText: 2020 Michael Albert
// SPDX-FileCopyrightText: 2020 - 2024 Manuel Stahl
// SPDX-FileCopyrightText: 2021 Dirk Klimpel
// SPDX-FileCopyrightText: 2023 Przemysław Romanik
// SPDX-FileCopyrightText: 2024 Alexander Tumin
// SPDX-FileCopyrightText: 2024 - 2025 Borislav Pantaleev
// SPDX-FileCopyrightText: 2024 - 2025 Nikita Chernyi
//
// SPDX-License-Identifier: Apache-2.0
import englishMessages from "ra-language-english";
import { SynapseTranslationMessages } from ".";
@ -171,10 +181,13 @@ const en: SynapseTranslationMessages = {
},
helper: {
password: "Changing password will log user out of all sessions.",
password_required_for_reactivation: "You must provide a password to re-activate an account.",
create_password: "Generate a strong and secure password using the button below.",
lock: "Prevent the user from usefully using their account. This is a non-destructive action that can be reversed.",
deactivate: "You must provide a password to re-activate an account.",
suspend: "Suspending user means they are put into a read-only mode.",
erase: "Mark the user as GDPR-erased",
erase: "In addition to deactivating the user, mark the user as GDPR-erased.",
admin: "A server administrator has full control over the server and its users.",
erase_text:
"This means messages sent by the user(-s) will still be visible by anyone who was in the room when these messages were sent, but hidden from users joining the room afterward.",
erase_admin_error: "Deleting own user is not allowed.",

View File

@ -162,6 +162,9 @@ const fa: SynapseTranslationMessages = {
user_type: "نوع کاربر",
},
helper: {
password_required_for_reactivation: "برای فعالسازی مجدد حساب باید رمز عبور وارد کنید.",
admin: "مدیر سرور دارای کنترل کامل بر روی سرور و کاربران آن است.",
lock: "ممنوعیت استفاده از سرور توسط کاربر. این یک عملیات غیر مخرب است که می تواند برگردانده شود.",
password: "با تغییر رمز عبور کاربر از تمام دستگاه ها خارج می شود.",
create_password: "رمز عبور قوی و امنی را با استفاده از دکمه زیر ایجاد کنید.",
deactivate: "برای فعالسازی مجدد حساب باید رمز عبور وارد کنید.",

View File

@ -170,10 +170,13 @@ const fr: SynapseTranslationMessages = {
},
helper: {
password: "Changer le mot de passe déconnectera l'utilisateur de toutes les sessions.",
password_required_for_reactivation: "Vous devez fournir un mot de passe pour réactiver le compte.",
create_password: "Générer un mot de passe fort et sécurisé en utilisant le bouton ci-dessous.",
deactivate: "Vous devrez fournir un mot de passe pour réactiver le compte.",
suspend: "L'utilisateur sera suspendu jusqu'à ce que vous le réactiviez.",
erase: "Marquer l'utilisateur comme effacé conformément au RGPD",
admin: "Un administrateur de serveur a un contrôle total sur le serveur et ses utilisateurs.",
lock: "Empêche l'utilisateur d'utiliser le serveur. C'est une action non destructive qui peut être annulée.",
erase_text:
"Cela signifie que les messages envoyés par le(s) utilisateur(s) seront toujours visibles par toute personne qui se trouvait dans la salle au moment où ces messages ont été envoyés, mais qu'ils seront cachés aux utilisateurs qui rejoindront la salle par la suite.",
erase_admin_error: "La suppression de son propre utilisateur n'est pas autorisée.",

3
src/i18n/index.d.ts vendored
View File

@ -161,9 +161,12 @@ interface SynapseTranslationMessages extends TranslationMessages {
};
helper: {
password: string;
password_required_for_reactivation: string;
create_password: string;
lock: string;
deactivate: string;
suspend: string;
admin: string;
erase: string;
erase_text: string;
erase_admin_error: string;

View File

@ -163,10 +163,13 @@ const it: SynapseTranslationMessages = {
},
helper: {
password: "Cambiando la password l'utente verrà disconnesso da tutte le sessioni attive.",
password_required_for_reactivation: "Devi fornire una password per riattivare l'account.",
create_password: "Genera una password forte e sicura utilizzando il pulsante sottostante.",
deactivate: "Devi fornire una password per riattivare l'account.",
suspend: "Sospendi l'utente",
erase: "Constrassegna l'utente come cancellato dal GDPR",
admin: "Un amministratore del server ha controllo totale sul server e sui suoi utenti.",
lock: "Impedisce all'utente di utilizzare il server. Questa è un'azione non distruttiva che può essere annullata.",
erase_text:
"Ciò significa che i messaggi inviati dall'utente (o dagli utenti) saranno ancora visibili da chiunque si trovasse nella stanza al momento dell'invio, ma saranno nascosti agli utenti che si uniranno alla stanza in seguito.",
erase_admin_error: "Non è consentito eliminare il proprio utente.",

519
src/i18n/ja.ts Normal file
View File

@ -0,0 +1,519 @@
// SPDX-FileCopyrightText: 2020 Michael Albert
// SPDX-FileCopyrightText: 2020 - 2024 Manuel Stahl
// SPDX-FileCopyrightText: 2021 Dirk Klimpel
// SPDX-FileCopyrightText: 2023 Przemysław Romanik
// SPDX-FileCopyrightText: 2024 Alexander Tumin
// SPDX-FileCopyrightText: 2024 - 2025 Borislav Pantaleev
// SPDX-FileCopyrightText: 2024 - 2025 Nikita Chernyi
// SPDX-FileCopyrightText: 2025 Suguru Hirahara
//
// SPDX-License-Identifier: Apache-2.0
import japaneseMessages from "@bicstone/ra-language-japanese";
import { SynapseTranslationMessages } from ".";
const ja: SynapseTranslationMessages = {
...japaneseMessages,
synapseadmin: {
auth: {
base_url: "ホームサーバーのURL",
welcome: "Synapse Adminにようこそ",
server_version: "Synapseのバージョン",
supports_specs: "次のMatrixのスペックをサポートしています",
username_error: "有効なユーザーIDを入力してください。形式は「@user:domain」です。",
protocol_error: "URLの先頭には「http://」または「https://」を置いてください",
url_error: "正しいMatrixのサーバーのURLではありません",
sso_sign_in: "シングルサインオン",
credentials: "認証情報",
access_token: "アクセストークン",
logout_acces_token_dialog: {
title: "既存のMatrixアクセストークンが使われています。",
content:
"このセッションを破棄しますか このセッションは、Matrixのクライアントなどで使われている可能性があります。または、管理パネルからログアウトしますか",
confirm: "破棄する",
cancel: "管理パネルからログアウト",
},
},
users: {
invalid_user_id: "ホームサーバーが指定されていないMatrixのユーザーIDです。",
tabs: {
sso: "シングルサインオン",
experimental: "実験的",
limits: "レート制限",
account_data: "アカウントのデータ",
},
},
rooms: {
details: "ルームの詳細",
tabs: {
basic: "基本情報",
members: "メンバー",
detail: "詳細",
permission: "権限",
media: "メディア",
},
},
reports: { tabs: { basic: "基本情報", detail: "詳細" } },
},
import_users: {
error: {
at_entry: "エントリー %{entry}: %{message}",
error: "エラー",
required_field: "必須のフィールド「%{field}」がありません",
invalid_value:
"%{row}行目に不正な値があります。「%{field}」のフィールドには「true」または「false」を指定してください",
unreasonably_big: "ファイルは%{size}メガバイトで大きすぎるため、読み込みを行いませんでした",
already_in_progress: "インポートを実行しています",
id_exits: "ID %{id} は既に存在しています",
},
title: "CSVでユーザーをインポート",
goToPdf: "Go to PDF",
cards: {
importstats: {
header: "インポートするユーザー",
users_total: "CSVファイルの%{smart_count}人のユーザー",
guest_count: "%{smart_count}人のゲスト",
admin_count: "%{smart_count}人の管理者",
},
conflicts: {
header: "競合を処理する方針",
mode: {
stop: "競合の発生時に停止",
skip: "エラーを表示して競合をスキップ",
},
},
ids: {
header: "ID",
all_ids_present: "全てのエントリーにIDsがあります",
count_ids_present: "%{smart_count}個のエントリーにIDがあります",
mode: {
ignore: "CSVファイルのIDを無視し、新しいIDを作成",
update: "既存のレコードを更新",
},
},
passwords: {
header: "パスワード",
all_passwords_present: "全てのエントリーにパスワードがあります",
count_passwords_present: "%{smart_count}個のエントリーにパスワードがあります",
use_passwords: "CSVファイルのパスワードを使用",
},
upload: {
header: "CSVファイルを送信",
explanation:
"作成またはアップデートするユーザーをコンマで区切って入力したファイルをアップロードできます。ファイルには「id」と「displayname」のフィールドを含めてください。参照用のファイルは以下からダウンロードできます。",
},
startImport: {
simulate_only: "シミュレーション",
run_import: "インポート",
},
results: {
header: "インポートの結果",
total: "合計%{smart_count}個のエントリー",
successful: "%{smart_count}個のエントリーをインポートしました",
skipped: "%{smart_count}個のエントリーをスキップしました",
download_skipped: "スキップしたエントリーをダウンロード",
with_error: "%{smart_count}個のエントリーでエラーが発生しました",
simulated_only: "シミュレーションのみ実行",
},
},
},
delete_media: {
name: "メディアファイル",
fields: {
before_ts: "最終アクセス日時がこれより以前のもの",
size_gt: "サイズがこれより大きいもの(バイト)",
keep_profiles: "プロフィールの画像は削除しない",
},
action: {
send: "メディアファイルを削除",
send_success: "リクエストを送信しました。",
send_failure: "エラーが発生しました。",
},
helper: {
send: "このAPIを使うとサーバーからローカルメディアファイルを削除できます。削除できるファイルは、ローカルのサムネイルファイルと、ダウンロードしたメディアファイルのコピーも含みます。外部のメディアリポジトリーにアップロードされたメディアファイルは削除できません。",
},
},
purge_remote_media: {
name: "リモートのメディアファイル",
fields: {
before_ts: "最終アクセス日時がこれより以前のもの",
},
action: {
send: "リモートのメディアファイルを削除",
send_success: "削除のリクエストを送信しました。",
send_failure: "エラーが発生しました。",
},
helper: {
send: "このAPIを使うとサーバーからリモートメディアファイルのキャッシュを削除できます。削除できるファイルは、ローカルのサムネイルファイルと、ダウンロードしたメディアファイルのコピーも含みます。サーバーのメディアリポジトリーにアップロードされたメディアファイルは削除できません。",
},
},
resources: {
users: {
name: "ユーザー",
email: "メールアドレス",
msisdn: "電話番号",
threepid: "メールアドレスまたは電話番号",
fields: {
avatar: "アバター",
id: "ユーザーID",
name: "名前",
is_guest: "ゲスト",
admin: "サーバーの管理者",
locked: "ロック",
suspended: "停止",
deactivated: "無効化",
erased: "消去",
guests: "ゲストを表示",
show_deactivated: "無効化されたユーザーを表示",
show_locked: "ロックされたユーザーを表示",
show_suspended: "停止されたユーザーを表示",
user_id: "ユーザーを検索",
displayname: "表示名",
password: "パスワード",
avatar_url: "アバターのURL",
avatar_src: "アバター",
medium: "Medium",
threepids: "サードパーティーのID",
address: "アドレス",
creation_ts_ms: "作成日時",
consent_version: "同意のバージョン",
auth_provider: "プロバイダー",
user_type: "ユーザーの種類",
},
helper: {
password: "パスワードを変更すると、全てのセッションからログアウトします。",
password_required_for_reactivation: "アカウントを再度有効にするにはパスワードを設定する必要があります",
create_password: "以下のボタンで強力なパスワードを生成できます。",
lock: "ユーザーにアカウントを使用できないよう設定。これは後から取り消せます。",
deactivate: "アカウントを再度有効にするにはパスワードを設定する必要があります。",
suspend: "ユーザーを停止すると、ユーザーは読み込み限定のモードに設定されます。",
erase: "ユーザーをGDPRに準拠した形で消去",
admin: "サーバーの管理者には、サーバーとユーザーに対する完全なコントロールの権利が与えられています。",
erase_text:
"ユーザーが送信したメッセージは、メッセージが送信された時点にルームに参加していたユーザーは今後もこれを閲覧できますが、その後で参加したユーザーには表示されません。",
erase_admin_error: "自分自身のユーザーは削除できません。",
modify_managed_user_error: "システムが管理しているユーザーは変更できません。",
username_available: "ユーザー名は利用できます",
},
action: {
erase: "ユーザーのデータを消去",
erase_avatar: "アバターを消去",
delete_media: "このユーザーがアップロードしたメディアファイルを削除",
redact_events: "このユーザーが送信したイベントを削除",
generate_password: "パスワードを生成",
overwrite_title: "注意!",
overwrite_content: "このユーザー名はすでに取得されています。既存のユーザーを上書きしてもよろしいですか?",
overwrite_cancel: "キャンセル",
overwrite_confirm: "上書きする",
},
badge: {
you: "あなた",
bot: "ボット",
admin: "管理者",
support: "サポート",
regular: "一般ユーザー",
system_managed: "システム管理",
},
limits: {
messages_per_second: "毎秒のメッセージ数",
messages_per_second_text: "毎秒ごとに実行できるアクションの数。",
burst_count: "バースト数",
burst_count_text: "制限が実行されるまで行えるアクションの数。",
},
account_data: {
title: "アカウントのデータ",
global: "グローバル",
rooms: "ルーム",
},
},
rooms: {
name: "ルーム",
fields: {
room_id: "ルームのID",
name: "名称",
canonical_alias: "エイリアス",
joined_members: "メンバー",
joined_local_members: "ローカルのメンバー",
joined_local_devices: "ローカルの端末",
state_events: "ステートイベント / 複雑さ",
version: "バージョン",
is_encrypted: "暗号化",
encryption: "暗号化",
federatable: "フェデレーションに対応",
public: "ルームディレクトリーに表示",
creator: "作成者",
join_rules: "参加のルール",
guest_access: "ゲストによるアクセス",
history_visibility: "履歴の見え方",
topic: "トピック",
avatar: "アバター",
actions: "アクション",
},
helper: {
forward_extremities:
"転送末端forward extremitiesは、ルーム内の有向非巡回グラフDAGの終端にあるイベント、つまり、子をもたないイベントのことをいいます。これが多ければ多いほど、Synapseが実行しなければならないステート解決これは負荷の大きい作業ですの数も多くなります。Synapseには、ルーム内に存在する末端の数を減らす仕組みが備わっていますが、バグによりそれが機能しない場合があります。もしルームに10個以上の転送末端がある場合は、どのルームがそれを引き起こしているかを確認して #1760 で参照されているSQLクエリーで転送末端を削除することを検討してみてください。",
},
enums: {
join_rules: {
public: "公開",
knock: "ノック",
invite: "招待",
private: "非公開",
},
guest_access: {
can_join: "ゲスト参加可",
forbidden: "ゲスト参加不可",
},
history_visibility: {
invited: "招待以後",
joined: "参加以後",
shared: "共有以後",
world_readable: "制限なし",
},
unencrypted: "非暗号化",
},
action: {
erase: {
title: "ルームの削除",
content:
"ルームを削除してよろしいですか? これは取り消せません。ルームのメッセージとメディアファイルはサーバーから削除されます!",
fields: {
block: "ユーザーがルームに参加できないように設定",
},
success: "ルームを削除しました。",
failure: "ルームを削除できませんでした。",
},
make_admin: {
assign_admin: "管理者を任命",
title: "%{roomName}のルームの管理者を任命",
confirm: "管理者にする",
content:
"管理者に任命するユーザーのMXIDを入力してください。\n注意これが機能するには、ルームには管理者となるローカルメンバーが最低1人以上いる必要があります。",
success: "ユーザーをルームの管理者に設定しました。",
failure: "ユーザーをルームの管理者に設定できませんでした。%{errMsg}",
},
},
},
reports: {
name: "報告されたイベント",
fields: {
id: "ID",
received_ts: "報告日時",
user_id: "報告者",
name: "ルーム名",
score: "点数",
reason: "理由",
event_id: "イベントのID",
event_json: {
origin: "送信元のサーバー",
origin_server_ts: "送信日時",
type: "イベントの種類",
content: {
msgtype: "内容の種類",
body: "内容",
format: "形式",
formatted_body: "フォーマット済の内容",
algorithm: "アルゴリズム",
url: "URL",
info: {
mimetype: "種類",
},
},
},
},
action: {
erase: {
title: "報告されたイベントを削除",
content: "報告されたイベントを削除してよろしいですか?これは取り消せません。",
},
},
},
connections: {
name: "接続",
fields: {
last_seen: "日時",
ip: "IPアドレス",
user_agent: "ユーザーエージェント",
},
},
devices: {
name: "端末",
fields: {
device_id: "端末のID",
display_name: "端末の名称",
last_seen_ts: "タイムスタンプ",
last_seen_ip: "IPアドレス",
},
action: {
erase: {
title: "%{id}を削除",
content: "「%{name}」を削除してよろしいですか?",
success: "端末を削除しました。",
failure: "エラーが発生しました。",
},
},
},
users_media: {
name: "メディアファイル",
fields: {
media_id: "メディアのID",
media_length: "ファイルの大きさ(バイト数)",
media_type: "種類",
upload_name: "ファイル名",
quarantined_by: "検疫の実行者",
safe_from_quarantine: "検疫で保護",
created_ts: "作成日時",
last_access_ts: "最終アクセス",
},
action: {
open: "メディアファイルを新しいウィンドウで開く",
},
},
protect_media: {
action: {
create: "未保護。保護を実行",
delete: "保護済。保護を削除",
none: "検疫済",
send_success: "保護に関する状態を変更しました。",
send_failure: "エラーが発生しました。",
},
},
quarantine_media: {
action: {
name: "検疫",
create: "検疫に追加",
delete: "検疫に追加されています。検疫から取り出す",
none: "検疫によって保護されています",
send_success: "検疫に関する状態を変更しました。",
send_failure: "エラーが発生しました。",
},
},
pushers: {
name: "プッシュ",
fields: {
app: "アプリケーション",
app_display_name: "アプリケーションの名称",
app_id: "アプリケーションのID",
device_display_name: "端末の名称",
kind: "種類",
lang: "言語",
profile_tag: "プロフィールのタグ",
pushkey: "プッシュ鍵",
data: { url: "URL" },
},
},
servernotices: {
name: "サーバーの告知",
send: "サーバーの告知を送信",
fields: {
body: "メッセージ",
},
action: {
send: "告知を送信",
send_success: "サーバーの告知を送信しました。",
send_failure: "エラーが発生しました。",
},
helper: {
send: "サーバーの告知を指定したユーザーに送信。「サーバーの告知」機能がサーバーで有効になっている必要があります。",
},
},
user_media_statistics: {
name: "ユーザーのメディア",
fields: {
media_count: "メディア数",
media_length: "メディアの大きさ",
},
},
forward_extremities: {
name: "転送末端",
fields: {
id: "イベントのID",
received_ts: "タイムスタンプ",
depth: "深さ",
state_group: "ステートのグループ",
},
},
room_state: {
name: "ステートイベント",
fields: {
type: "種類",
content: "内容",
origin_server_ts: "送信日時",
sender: "送信元",
},
},
room_media: {
name: "メディア",
fields: {
media_id: "メディアのID",
},
helper: {
info: "ルームにアップロードされたメディアファイルの一覧です。外部のレポジトリーにアップロードされたメディアファイルは削除できません。",
},
action: {
error: "%{errcode} (%{errstatus}) %{error}",
},
},
room_directory: {
name: "ルームのディレクトリー",
fields: {
world_readable: "ゲストユーザーは参加せず閲覧可",
guest_can_join: "ゲストユーザーが参加可能",
},
action: {
title: "ルームをディレクトリーから削除 |||| %{smart_count}個のルームをディレクトリーから削除",
content:
"このルームをディレクトリーから削除してよろしいですか? |||| %{smart_count}個のルームをディレクトリーから削除してよろしいですか?",
erase: "ルームをディレクトリーから削除",
create: "ルームをディレクトリーで公開",
send_success: "ルームを公開しました。",
send_failure: "エラーが発生しました。",
},
},
destinations: {
name: "フェデレーション",
fields: {
destination: "目的地",
failure_ts: "失敗した時点のタイムスタンプ",
retry_last_ts: "最後に試行した時点のタイムスタンプ",
retry_interval: "再試行までの間隔",
last_successful_stream_ordering: "最後に成功したストリーム",
stream_ordering: "ストリーム",
},
action: { reconnect: "再接続" },
},
registration_tokens: {
name: "登録トークン",
fields: {
token: "トークン",
valid: "有効なトークン",
uses_allowed: "使用が許可",
pending: "保留中",
completed: "完了",
expiry_time: "期限切れとなる日時",
length: "長さ",
},
helper: { length: "トークンが与えられていない場合のトークンの長さ。" },
},
},
scheduled_commands: {
action: {
create_success: "スケジュール済のコマンドを作成しました",
update_success: "スケジュール済のコマンドを更新しました",
update_failure: "エラーが発生しました",
delete_success: "スケジュール済のコマンドを削除しました",
delete_failure: "エラーが発生しました",
},
},
recurring_commands: {
action: {
create_success: "繰り返しを行うコマンドを作成しました",
update_success: "繰り返しを行うコマンドを更新しました",
update_failure: "エラーが発生しました",
delete_success: "繰り返しを行うコマンドを削除しました",
delete_failure: "エラーが発生しました",
},
},
};
export default ja;

View File

@ -208,11 +208,14 @@ const ru: SynapseTranslationMessages = {
},
helper: {
password: "Смена пароля завершит все сессии пользователя.",
password_required_for_reactivation: "Вы должны предоставить пароль для реактивации учётной записи.",
create_password: "Сгенерировать надёжный и безопасный пароль, используя кнопку ниже.",
deactivate: "Вы должны предоставить пароль для реактивации учётной записи.",
suspend:
"Приостановка учётной записи означает, что пользователь не сможет войти в свою учётную запись, пока она не будет снова активирована.",
erase: "Пометить пользователя как удалённого в соответствии с GDPR",
admin: "Администратор сервера имеет полный контроль над сервером и его пользователями.",
lock: "Предотвращает использование пользователем сервера. Это неразрушающее действие, которое может быть отменено.",
erase_text:
"Это означает, что сообщения, отправленные пользователем (-ами), будут по-прежнему видны всем, кто находился в комнате в момент их отправки, но будут скрыты от пользователей, присоединившихся к комнате после этого.",
erase_admin_error: "Удаление собственного пользователя запрещено.",

View File

@ -193,10 +193,13 @@ const zh: SynapseTranslationMessages = {
},
helper: {
password: "更改密码会使用户注销所有会话。",
password_required_for_reactivation: "您必须提供一串密码来激活账户。",
create_password: "使用下面的按钮生成一个强大和安全的密码。",
deactivate: "您必须提供一串密码来激活账户。",
suspend: "您必须提供一串密码来暂停账户。",
erase: "将用户标记为根据 GDPR 的要求抹除了",
admin: "服务器管理员对服务器和其用户有完全的控制权。",
lock: "阻止用户使用服务器。这是一个非破坏性的操作,可以被撤销。",
erase_text:
"这意味着用户发送的信息对于发送信息时在房间内的任何人来说都是可见的,但对于之后加入房间的用户来说则是隐藏的。",
erase_admin_error: "不允许删除自己的用户",

View File

@ -1,24 +1,20 @@
import { render, screen } from "@testing-library/react";
import { act, render, screen } from "@testing-library/react";
import polyglotI18nProvider from "ra-i18n-polyglot";
import { AdminContext } from "react-admin";
import { BrowserRouter } from "react-router-dom";
import LoginPage from "./LoginPage";
import { AppContext } from "../Context";
import englishMessages from "../i18n/en";
const i18nProvider = polyglotI18nProvider(() => englishMessages, "en", [{ locale: "en", name: "English" }]);
import { act } from "@testing-library/react";
describe("LoginForm", () => {
it("renders with no restriction to homeserver", async () => {
await act(async () => {
render(
<BrowserRouter>
<AdminContext i18nProvider={i18nProvider}>
<LoginPage />
</AdminContext>
</BrowserRouter>
<AdminContext i18nProvider={i18nProvider}>
<LoginPage />
</AdminContext>
);
});
@ -35,20 +31,18 @@ describe("LoginForm", () => {
it("renders with single restricted homeserver", () => {
render(
<BrowserRouter>
<AppContext.Provider
value={{
restrictBaseUrl: "https://matrix.example.com",
asManagedUsers: [],
menu: [],
corsCredentials: "include",
}}
>
<AdminContext i18nProvider={i18nProvider}>
<LoginPage />
</AdminContext>
</AppContext.Provider>
</BrowserRouter>
<AppContext.Provider
value={{
restrictBaseUrl: "https://matrix.example.com",
asManagedUsers: [],
menu: [],
corsCredentials: "include",
}}
>
<AdminContext i18nProvider={i18nProvider}>
<LoginPage />
</AdminContext>
</AppContext.Provider>
);
screen.getByText(englishMessages.synapseadmin.auth.welcome);
@ -73,9 +67,7 @@ describe("LoginForm", () => {
}}
>
<AdminContext i18nProvider={i18nProvider}>
<BrowserRouter>
<LoginPage />
</BrowserRouter>
<LoginPage />
</AdminContext>
</AppContext.Provider>
);

View File

@ -23,6 +23,7 @@ import {
useTranslate,
PasswordInput,
TextInput,
SelectInput,
useLocales,
} from "react-admin";
import { useFormContext } from "react-hook-form";
@ -51,16 +52,31 @@ const LoginPage = () => {
restrictBaseUrl.length > 0 &&
restrictBaseUrl[0] !== "" &&
restrictBaseUrl[0] !== null;
const baseUrlChoices = allowMultipleBaseUrls ? restrictBaseUrl.map(url => ({ id: url, name: url })) : [];
const allowAnyBaseUrl = !(allowSingleBaseUrl || allowMultipleBaseUrls);
const localStorageBaseUrl = localStorage.getItem("base_url");
let base_url = allowSingleBaseUrl ? restrictBaseUrl : localStorageBaseUrl;
if (allowMultipleBaseUrls && localStorageBaseUrl && !restrictBaseUrl.includes(localStorageBaseUrl)) {
// don't set base_url if it is not in the restrictBaseUrl array
base_url = null;
}
const [loading, setLoading] = useState(false);
const [supportPassAuth, setSupportPassAuth] = useState(true);
const [locale, setLocale] = useLocaleState();
const locales = useLocales();
const translate = useTranslate();
const base_url = allowSingleBaseUrl ? restrictBaseUrl : localStorage.getItem("base_url");
const [ssoBaseUrl, setSSOBaseUrl] = useState("");
const loginToken = new URLSearchParams(window.location.search).get("loginToken");
const [loginMethod, setLoginMethod] = useState<LoginMethod>("credentials");
const [serverVersion, setServerVersion] = useState("");
const [matrixVersions, setMatrixVersions] = useState("");
useEffect(() => {
if (base_url) {
checkServerInfo(base_url);
}
}, []);
useEffect(() => {
if (!loginToken) {
@ -133,54 +149,75 @@ const LoginPage = () => {
window.location.href = ssoFullUrl;
};
const checkServerInfo = async (url: string) => {
if (!isValidBaseUrl(url)) {
setServerVersion("");
setMatrixVersions("");
setSupportPassAuth(false);
setSSOBaseUrl("");
return;
}
try {
const serverVersion = await getServerVersion(url);
setServerVersion(`${translate("synapseadmin.auth.server_version")} ${serverVersion}`);
} catch {
setServerVersion("");
}
try {
const features = await getSupportedFeatures(url);
setMatrixVersions(`${translate("synapseadmin.auth.supports_specs")} ${features.versions.join(", ")}`);
} catch {
setMatrixVersions("");
}
// Set SSO Url
try {
const loginFlows = await getSupportedLoginFlows(url);
const supportPass = loginFlows.find(f => f.type === "m.login.password") !== undefined;
const supportSSO = loginFlows.find(f => f.type === "m.login.sso") !== undefined;
setSupportPassAuth(supportPass);
setSSOBaseUrl(supportSSO ? url : "");
} catch {
setSupportPassAuth(false);
setSSOBaseUrl("");
}
};
const UserData = ({ formData }) => {
const form = useFormContext();
const [serverVersion, setServerVersion] = useState("");
const [matrixVersions, setMatrixVersions] = useState("");
const handleUsernameChange = () => {
const handleUsernameChange = async () => {
if (formData.base_url || allowSingleBaseUrl) {
return;
}
// check if username is a full qualified userId then set base_url accordingly
const domain = splitMxid(formData.username)?.domain;
if (domain) {
getWellKnownUrl(domain).then(url => {
if (allowAnyBaseUrl || (allowMultipleBaseUrls && restrictBaseUrl.includes(url)))
form.setValue("base_url", url);
});
const url = await getWellKnownUrl(domain);
if (allowAnyBaseUrl || (allowMultipleBaseUrls && restrictBaseUrl.includes(url))) {
form.setValue("base_url", url, {
shouldValidate: true,
shouldDirty: true,
});
checkServerInfo(url);
}
}
};
useEffect(() => {
if (!formData.base_url) {
form.setValue("base_url", "");
const handleBaseUrlBlurOrChange = event => {
// Get the value either from the event (onChange) or from formData (onBlur)
const value = event?.target?.value || formData.base_url;
if (!value) {
return;
}
if (formData.base_url === "" && allowMultipleBaseUrls) {
form.setValue("base_url", restrictBaseUrl[0]);
}
if (!isValidBaseUrl(formData.base_url)) return;
getServerVersion(formData.base_url)
.then(serverVersion => setServerVersion(`${translate("synapseadmin.auth.server_version")} ${serverVersion}`))
.catch(() => setServerVersion(""));
getSupportedFeatures(formData.base_url)
.then(features =>
setMatrixVersions(`${translate("synapseadmin.auth.supports_specs")} ${features.versions.join(", ")}`)
)
.catch(() => setMatrixVersions(""));
// Set SSO Url
getSupportedLoginFlows(formData.base_url)
.then(loginFlows => {
const supportPass = loginFlows.find(f => f.type === "m.login.password") !== undefined;
const supportSSO = loginFlows.find(f => f.type === "m.login.sso") !== undefined;
setSupportPassAuth(supportPass);
setSSOBaseUrl(supportSSO ? formData.base_url : "");
})
.catch(() => setSSOBaseUrl(""));
}, [formData.base_url, form]);
// Trigger validation only when user finishes typing/selecting
form.trigger("base_url");
checkServerInfo(value);
};
useEffect(() => {
const params = new URLSearchParams(window.location.search);
@ -189,6 +226,7 @@ const LoginPage = () => {
const password = params.get("password");
const accessToken = params.get("accessToken");
let serverURL = params.get("server");
if (username) {
form.setValue("username", username);
}
@ -202,12 +240,19 @@ const LoginPage = () => {
form.setValue("accessToken", accessToken);
}
}
if (serverURL) {
const isFullUrl = serverURL.match(/^(http|https):\/\//);
if (!isFullUrl) {
serverURL = `https://${serverURL}`;
}
form.setValue("base_url", serverURL);
form.setValue("base_url", serverURL, {
shouldValidate: true,
shouldDirty: true,
});
checkServerInfo(serverURL);
}
}, [window.location.search]);
@ -227,7 +272,6 @@ const LoginPage = () => {
<>
<Box>
<TextInput
autoFocus
source="username"
label="ra.auth.username"
autoComplete="username"
@ -261,23 +305,30 @@ const LoginPage = () => {
</Box>
)}
<Box>
<TextInput
source="base_url"
label="synapseadmin.auth.base_url"
select={allowMultipleBaseUrls}
autoComplete="url"
{...(loading ? { disabled: true } : {})}
readOnly={allowSingleBaseUrl}
resettable={allowAnyBaseUrl}
validate={[required(), validateBaseUrl]}
>
{allowMultipleBaseUrls &&
restrictBaseUrl.map(url => (
<MenuItem key={url} value={url}>
{url}
</MenuItem>
))}
</TextInput>
{allowMultipleBaseUrls && (
<SelectInput
source="base_url"
label="synapseadmin.auth.base_url"
select={allowMultipleBaseUrls}
autoComplete="url"
{...(loading ? { disabled: true } : {})}
onChange={handleBaseUrlBlurOrChange}
validate={[required(), validateBaseUrl]}
choices={baseUrlChoices}
/>
)}
{!allowMultipleBaseUrls && (
<TextInput
source="base_url"
label="synapseadmin.auth.base_url"
autoComplete="url"
{...(loading ? { disabled: true } : {})}
readOnly={allowSingleBaseUrl}
resettable={allowAnyBaseUrl}
validate={[required(), validateBaseUrl]}
onBlur={handleBaseUrlBlurOrChange}
/>
)}
</Box>
<Typography className="serverVersion">{serverVersion}</Typography>
<Typography className="matrixVersions">{matrixVersions}</Typography>
@ -286,7 +337,7 @@ const LoginPage = () => {
};
return (
<Form defaultValues={{ base_url: base_url }} onSubmit={handleSubmit} mode="onTouched">
<Form defaultValues={{ base_url: base_url }} onSubmit={handleSubmit} mode="onBlur">
<LoginFormBox>
<Card className="card">
<Box className="avatar">

View File

@ -114,7 +114,6 @@ const destinationFieldRender = (record: RaRecord) => {
};
export const DestinationList = (props: ListProps) => {
const record = useRecordContext(props);
return (
<List
{...props}

View File

@ -3,7 +3,6 @@ import {
BooleanInput,
Create,
CreateProps,
Datagrid,
DatagridConfigurable,
DateField,
DateTimeInput,

View File

@ -2,7 +2,6 @@ import PageviewIcon from "@mui/icons-material/Pageview";
import ViewListIcon from "@mui/icons-material/ViewList";
import ReportIcon from "@mui/icons-material/Warning";
import {
Datagrid,
DatagridConfigurable,
DateField,
DeleteButton,

View File

@ -119,13 +119,9 @@ export const MakeAdminBtn = () => {
const { mutate, isPending } = useMutation({
mutationFn: async () => {
try {
const result = await dataProvider.makeRoomAdmin(record.room_id, userIdValue);
if (!result.success) {
throw new Error(result.error);
}
} catch (error) {
throw error;
const result = await dataProvider.makeRoomAdmin(record.room_id, userIdValue);
if (!result.success) {
throw new Error(result.error);
}
},
onSuccess: () => {
@ -203,7 +199,6 @@ export const MakeAdminBtn = () => {
export const RoomShow = (props: ShowProps) => {
const translate = useTranslate();
const record = useRecordContext();
return (
<Show {...props} actions={<RoomShowActions />} title={<RoomTitle />}>
<TabbedShowLayout>

View File

@ -1,6 +1,5 @@
import PermMediaIcon from "@mui/icons-material/PermMedia";
import {
Datagrid,
DatagridConfigurable,
ExportButton,
List,

View File

@ -115,7 +115,8 @@ const userFilters = [
<BooleanInput source="guests" alwaysOn />,
<BooleanInput label="resources.users.fields.show_deactivated" source="deactivated" alwaysOn />,
<BooleanInput label="resources.users.fields.show_locked" source="locked" alwaysOn />,
<BooleanInput label="resources.users.fields.show_suspended" source="suspended" alwaysOn />,
// waiting for https://github.com/element-hq/synapse/issues/18016
// <BooleanInput label="resources.users.fields.show_suspended" source="suspended" alwaysOn />,
];
const UserPreventSelfDelete: React.FC<{
@ -171,7 +172,7 @@ export const UserList = (props: ListProps) => (
<List
{...props}
filters={userFilters}
filterDefaultValues={{ deactivated: false, locked: false, suspended: false }}
filterDefaultValues={{ guests: false, deactivated: false, locked: false, suspended: false }}
sort={{ field: "name", order: "ASC" }}
actions={<UserListActions />}
pagination={<UserPagination />}
@ -208,7 +209,6 @@ export const UserList = (props: ListProps) => (
<BooleanField source="admin" label="resources.users.fields.admin" />
<BooleanField source="deactivated" label="resources.users.fields.deactivated" />
<BooleanField source="locked" label="resources.users.fields.locked" />
<BooleanField source="suspended" label="resources.users.fields.suspended" />
<BooleanField source="erased" sortable={false} label="resources.users.fields.erased" />
<DateField source="creation_ts" label="resources.users.fields.creation_ts_ms" showTime options={DATE_FORMAT} />
</DatagridConfigurable>
@ -219,13 +219,12 @@ export const UserList = (props: ListProps) => (
// here only local part of user_id
// maxLength = 255 - "@" - ":" - storage.getItem("home_server").length
// storage.getItem("home_server").length is not valid here
const validateUser = [required(), maxLength(253), regex(/^[a-z0-9._=\-\+/]+$/, "synapseadmin.users.invalid_user_id")];
const validateUser = [required(), maxLength(253), regex(/^[a-z0-9._=\-+/]+$/, "synapseadmin.users.invalid_user_id")];
const validateAddress = [required(), maxLength(255)];
const UserEditActions = () => {
const record = useRecordContext();
const translate = useTranslate();
const ownUserId = localStorage.getItem("user_id");
let ownUserIsSelected = false;
let asManagedUserIsSelected = false;
@ -262,6 +261,7 @@ export const UserCreate = (props: CreateProps) => {
const [userAvailabilityEl, setUserAvailabilityEl] = useState<React.ReactElement | false>(
<Typography component="span"></Typography>
);
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const [formData, setFormData] = useState<Record<string, any>>({});
const [create] = useCreate();
@ -284,6 +284,7 @@ export const UserCreate = (props: CreateProps) => {
}
};
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const postSave = (data: Record<string, any>) => {
setFormData(data);
if (!userIsAvailable) {
@ -426,7 +427,7 @@ const UserBooleanInput = props => {
return (
<UserPreventSelfDelete ownUserIsSelected={ownUserIsSelected} asManagedUserIsSelected={asManagedUserIsSelected}>
<BooleanInput {...props} disabled={ownUserIsSelected || asManagedUserIsSelected} />
<BooleanInput disabled={ownUserIsSelected || asManagedUserIsSelected} {...props} />
</UserPreventSelfDelete>
);
};
@ -434,6 +435,7 @@ const UserBooleanInput = props => {
const UserPasswordInput = props => {
const record = useRecordContext();
let asManagedUserIsSelected = false;
const translate = useTranslate();
// Get form context to update field value
const form = useFormContext();
@ -446,17 +448,34 @@ const UserPasswordInput = props => {
form.setValue("password", password, { shouldDirty: true });
};
// Get the current deactivated state and the original value
const deactivated = form.watch("deactivated");
const deactivatedFromRecord = record?.deactivated;
// Custom validation for reactivation case
const validatePasswordOnReactivation = value => {
if (deactivatedFromRecord === true && deactivated === false && !value) {
return translate("resources.users.helper.password_required_for_reactivation");
}
return undefined;
};
let passwordHelperText = "resources.users.helper.create_password";
if (asManagedUserIsSelected) {
passwordHelperText = "resources.users.helper.modify_managed_user_error";
} else if (deactivatedFromRecord === true && deactivated === false) {
passwordHelperText = "resources.users.helper.password_required_for_reactivation";
} else if (record) {
passwordHelperText = "resources.users.helper.password";
}
return (
<>
<PasswordInput
{...props}
helperText={
asManagedUserIsSelected
? "resources.users.helper.modify_managed_user_error"
: record
? "resources.users.helper.password"
: "resources.users.helper.create_password"
}
validate={validatePasswordOnReactivation}
helperText={passwordHelperText}
disabled={asManagedUserIsSelected}
/>
<Button
@ -470,8 +489,28 @@ const UserPasswordInput = props => {
);
};
const ErasedBooleanInput = props => {
const record = useRecordContext();
const form = useFormContext();
const deactivated = form.watch("deactivated");
const erased = form.watch("erased");
const erasedFromRecord = record?.erased;
const deactivatedFromRecord = record?.deactivated;
useEffect(() => {
// If the user was erased and deactivated, by unchecking Erased, we want to also uncheck Deactivated
if (erasedFromRecord === true && erased === false) {
form.setValue("deactivated", false);
}
}, [deactivatedFromRecord, erased, erasedFromRecord]);
return <UserBooleanInput disabled={!deactivated} {...props} />;
};
export const UserEdit = (props: EditProps) => {
const translate = useTranslate();
const theme = useTheme();
return (
<Edit
@ -515,12 +554,24 @@ export const UserEdit = (props: EditProps) => {
helperText="resources.users.helper.password"
/>
<SelectInput source="user_type" choices={choices_type} translateChoice={false} resettable />
<BooleanInput source="admin" />
<UserBooleanInput source="locked" />
<UserBooleanInput source="deactivated" helperText="resources.users.helper.deactivate" />
<BooleanInput source="admin" helperText="resources.users.helper.admin" />
<UserBooleanInput source="suspended" helperText="resources.users.helper.suspend" />
<BooleanInput source="erased" disabled />
<DateField source="creation_ts_ms" showTime options={DATE_FORMAT} />
<UserBooleanInput
sx={{ color: theme.palette.warning.main }}
source="locked"
helperText="resources.users.helper.lock"
/>
<UserBooleanInput
sx={{ color: theme.palette.error.main }}
source="deactivated"
helperText="resources.users.helper.deactivate"
/>
<ErasedBooleanInput
sx={{ color: theme.palette.error.main, marginLeft: "25px" }}
source="erased"
helperText="resources.users.helper.erase"
/>
<DateField sx={{ marginTop: "20px" }} source="creation_ts_ms" showTime options={DATE_FORMAT} />
<TextField source="consent_version" />
</FormTab>

View File

@ -190,8 +190,6 @@ const authProvider: AuthProvider = {
const access_token = localStorage.getItem("access_token");
return typeof access_token === "string" ? Promise.resolve() : Promise.reject();
},
// called when the user navigates to a new location, to check for permissions / roles
getPermissions: () => Promise.resolve(),
};
export default authProvider;

View File

@ -17,6 +17,7 @@ import { GetConfig } from "../utils/config";
import { MatrixError, displayError } from "../utils/error";
import { returnMXID } from "../utils/mxid";
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const CACHED_MANY_REF: Record<string, any> = {};
// Adds the access token to all requests
@ -33,7 +34,7 @@ const jsonClient = async (url: string, options: Options = {}) => {
try {
const response = await fetchUtils.fetchJson(url, options);
return response;
} catch (err: any) {
} catch (err) {
const error = err as HttpError;
const errorStatus = error.status;
const errorBody = error.body as MatrixError;
@ -45,16 +46,11 @@ const jsonClient = async (url: string, options: Options = {}) => {
}
};
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const filterUndefined = (obj: Record<string, any>) => {
return Object.fromEntries(Object.entries(obj).filter(([key, value]) => value !== undefined));
return Object.fromEntries(Object.entries(obj).filter(([_key, value]) => value !== undefined));
};
interface Action {
endpoint: string;
method?: string;
body?: Record<string, any>;
}
export interface Room {
room_id: string;
name?: string;
@ -338,6 +334,19 @@ export interface RecurringCommand {
time: string;
}
export interface Payment {
amount: number;
email: string;
is_subscription: boolean;
paid_at: string;
transaction_id: string;
}
export interface PaymentsResponse {
payments: Payment[];
total: number;
}
export interface SynapseDataProvider extends DataProvider {
deleteMedia: (params: DeleteMediaParams) => Promise<DeleteMediaResult>;
purgeRemoteMedia: (params: DeleteMediaParams) => Promise<DeleteMediaResult>;
@ -348,6 +357,11 @@ export interface SynapseDataProvider extends DataProvider {
getAccountData: (id: Identifier) => Promise<AccountDataModel>;
checkUsernameAvailability: (username: string) => Promise<UsernameAvailabilityResult>;
makeRoomAdmin: (room_id: string, user_id: string) => Promise<{ success: boolean; error?: string; errcode?: string }>;
suspendUser: (
id: Identifier,
suspendValue: boolean
) => Promise<{ success: boolean; error?: string; errcode?: string }>;
eraseUser: (id: Identifier) => Promise<{ success: boolean; error?: string; errcode?: string }>;
getServerRunningProcess: (etkeAdminUrl: string) => Promise<ServerProcessResponse>;
getServerStatus: (etkeAdminUrl: string) => Promise<ServerStatusResponse>;
getServerNotifications: (etkeAdminUrl: string) => Promise<ServerNotificationsResponse>;
@ -361,6 +375,8 @@ export interface SynapseDataProvider extends DataProvider {
createRecurringCommand: (etkeAdminUrl: string, command: Partial<RecurringCommand>) => Promise<RecurringCommand>;
updateRecurringCommand: (etkeAdminUrl: string, command: RecurringCommand) => Promise<RecurringCommand>;
deleteRecurringCommand: (etkeAdminUrl: string, id: string) => Promise<{ success: boolean }>;
getPayments: (etkeAdminUrl: string) => Promise<PaymentsResponse>;
getInvoice: (etkeAdminUrl: string, transactionId: string) => Promise<void>;
}
const resourceMap = {
@ -782,6 +798,7 @@ const baseDataProvider: SynapseDataProvider = {
const res = resourceMap[resource];
const endpoint_url = homeserver + res.path;
const { json } = await jsonClient(`${endpoint_url}/${encodeURIComponent(params.id)}`, {
method: "PUT",
body: JSON.stringify(params.data, filterNullValues),
@ -984,7 +1001,7 @@ const baseDataProvider: SynapseDataProvider = {
},
setRateLimits: async (id: Identifier, rateLimits: RateLimitsModel) => {
const filtered = Object.entries(rateLimits)
.filter(([key, value]) => value !== null && value !== undefined)
.filter(([_key, value]) => value !== null && value !== undefined)
.reduce((obj, [key, value]) => {
obj[key] = value;
return obj;
@ -1017,7 +1034,39 @@ const baseDataProvider: SynapseDataProvider = {
const endpoint_url = `${base_url}/_synapse/admin/v1/rooms/${encodeURIComponent(room_id)}/make_room_admin`;
try {
const { json } = await jsonClient(endpoint_url, { method: "POST", body: JSON.stringify({ user_id }) });
await jsonClient(endpoint_url, { method: "POST", body: JSON.stringify({ user_id }) });
return { success: true };
} catch (error) {
if (error instanceof HttpError) {
return { success: false, error: error.body.error, errcode: error.body.errcode };
}
throw error;
}
},
suspendUser: async (id: Identifier, suspendValue: boolean) => {
const base_url = localStorage.getItem("base_url");
const endpoint_url = `${base_url}/_synapse/admin/v1/suspend/${encodeURIComponent(returnMXID(id))}`;
try {
await jsonClient(endpoint_url, {
method: "PUT",
body: JSON.stringify({ suspend: suspendValue }),
});
return { success: true };
} catch (error) {
if (error instanceof HttpError) {
return { success: false, error: error.body.error, errcode: error.body.errcode };
}
throw error;
}
},
eraseUser: async (id: Identifier) => {
const base_url = localStorage.getItem("base_url");
const endpoint_url = `${base_url}/_synapse/admin/v1/deactivate/${encodeURIComponent(returnMXID(id))}`;
try {
await jsonClient(endpoint_url, {
method: "POST",
body: JSON.stringify({ erase: true }),
});
return { success: true };
} catch (error) {
if (error instanceof HttpError) {
@ -1173,7 +1222,7 @@ const baseDataProvider: SynapseDataProvider = {
return {};
} catch (error) {
console.error("Error fetching server commands, error");
console.error("Error fetching server commands:", error);
}
return {};
@ -1233,7 +1282,7 @@ const baseDataProvider: SynapseDataProvider = {
return [];
} catch (error) {
console.error("Error fetching scheduled commands, error");
console.error("Error fetching scheduled commands:", error);
}
return [];
},
@ -1258,7 +1307,7 @@ const baseDataProvider: SynapseDataProvider = {
return [];
} catch (error) {
console.error("Error fetching recurring commands, error");
console.error("Error fetching recurring commands:", error);
}
return [];
},
@ -1418,6 +1467,92 @@ const baseDataProvider: SynapseDataProvider = {
return { success: false };
}
},
getPayments: async (etkeAdminUrl: string) => {
const response = await fetch(`${etkeAdminUrl}/payments`, {
headers: {
Authorization: `Bearer ${localStorage.getItem("access_token")}`,
},
});
if (!response.ok) {
throw new Error(`Failed to fetch payments: ${response.status} ${response.statusText}`);
}
const status = response.status;
if (status === 200) {
const json = await response.json();
return json as PaymentsResponse;
}
if (status === 204) {
return { payments: [], total: 0 };
}
throw new Error(`${response.status} ${response.statusText}`); // Handle unexpected status codes
},
getInvoice: async (etkeAdminUrl: string, transactionId: string) => {
try {
const response = await fetch(`${etkeAdminUrl}/payments/${transactionId}/invoice`, {
headers: {
Authorization: `Bearer ${localStorage.getItem("access_token")}`,
},
});
if (!response.ok) {
let errorMessage = `Error fetching invoice: ${response.status} ${response.statusText}`;
// Handle specific error codes
switch (response.status) {
case 404:
errorMessage = "Invoice not found for this transaction";
break;
case 500:
errorMessage = "Server error while generating invoice. Please try again later";
break;
case 401:
errorMessage = "Unauthorized access. Please check your permissions";
break;
case 403:
errorMessage = "Access forbidden. You don't have permission to download this invoice";
break;
default:
errorMessage = `Failed to fetch invoice (${response.status}): ${response.statusText}`;
}
console.error(errorMessage);
throw new Error(errorMessage);
}
// Get the file as a blob
const blob = await response.blob();
// Create a download link
const url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
// Try to get filename from response headers
const contentDisposition = response.headers.get("Content-Disposition");
let filename = `invoice_${transactionId}.pdf`;
if (contentDisposition) {
const filenameMatch = contentDisposition.match(/filename="(.+)"/);
if (filenameMatch) {
filename = filenameMatch[1];
}
}
link.download = filename;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
} catch (error) {
console.error("Error downloading invoice:", error);
throw error; // Re-throw to let the UI handle the error
}
},
};
const dataProvider = withLifecycleCallbacks(baseDataProvider, [
@ -1427,28 +1562,43 @@ const dataProvider = withLifecycleCallbacks(baseDataProvider, [
const avatarFile = params.data.avatar_file?.rawFile;
const avatarErase = params.data.avatar_erase;
const rates = params.data.rates;
const suspended = params.data.suspended;
const previousSuspended = params.previousData?.suspended;
const deactivated = params.data.deactivated;
const erased = params.data.erased;
if (rates) {
await dataProvider.setRateLimits(params.id, rates);
delete params.data.rates;
}
if (suspended !== undefined && suspended !== previousSuspended) {
await (dataProvider as SynapseDataProvider).suspendUser(params.id, suspended);
delete params.data.suspended;
}
if (deactivated !== undefined && erased !== undefined) {
await (dataProvider as SynapseDataProvider).eraseUser(params.id);
delete params.data.deactivated;
delete params.data.erased;
}
if (avatarErase) {
params.data.avatar_url = "";
return params;
}
if (avatarFile instanceof File) {
const reponse = await dataProvider.uploadMedia({
const response = await dataProvider.uploadMedia({
file: avatarFile,
filename: params.data.avatar_file.title,
content_type: params.data.avatar_file.rawFile.type,
});
params.data.avatar_url = reponse.content_uri;
params.data.avatar_url = response.content_uri;
}
return params;
},
beforeDelete: async (params: DeleteParams<any>, dataProvider: DataProvider) => {
beforeDelete: async (params: DeleteParams<any>, _dataProvider: DataProvider) => {
if (params.meta?.deleteMedia) {
const base_url = localStorage.getItem("base_url");
const endpoint_url = `${base_url}/_synapse/admin/v1/users/${encodeURIComponent(returnMXID(params.id))}/media`;
@ -1463,7 +1613,7 @@ const dataProvider = withLifecycleCallbacks(baseDataProvider, [
return params;
},
beforeDeleteMany: async (params: DeleteManyParams<any>, dataProvider: DataProvider) => {
beforeDeleteMany: async (params: DeleteManyParams<any>, _dataProvider: DataProvider) => {
await Promise.all(
params.ids.map(async id => {
if (params.meta?.deleteMedia) {

View File

@ -1,6 +1,4 @@
import { Identifier, fetchUtils } from "react-admin";
import { isMXID } from "../utils/mxid";
import { fetchUtils } from "react-admin";
export const splitMxid = mxid => {
const re = /^@(?<name>[a-zA-Z0-9._=\-/]+):(?<domain>[a-zA-Z0-9\-.]+\.[a-zA-Z]+)$/;

View File

@ -67,9 +67,9 @@ export const FetchConfig = async () => {
};
// load config from context
// we deliberately processing each key separately to avoid overwriting the whole config, loosing some keys, and messing
// we deliberately processing each key separately to avoid overwriting the whole config, losing some keys, and messing
// with typescript types
export const LoadConfig = (context: any) => {
export const LoadConfig = (context: object) => {
if (context?.restrictBaseUrl) {
config.restrictBaseUrl = context.restrictBaseUrl as string | string[];
}

View File

@ -4,10 +4,10 @@
* @returns The decoded string, or the original string if decoding fails.
* @example decodeURIComponent("Hello%20World") // "Hello World"
*/
const decodeURLComponent = (str: any): any => {
const decodeURLComponent = (str: string): string => {
try {
return decodeURIComponent(str);
} catch (e) {
} catch {
return str;
}
};

View File

@ -1,8 +1,8 @@
export const getServerAndMediaIdFromMxcUrl = (mxcUrl: string): { serverName: string; mediaId: string } => {
const re = /^mxc:\/\/([^/]+)\/(\w+)/;
const re = /^mxc:\/\/([^/]+)\/([\w-]+)$/;
const ret = re.exec(mxcUrl);
if (ret == null) {
throw new Error("Invalid mxcUrl");
return { serverName: "", mediaId: "" };
}
const serverName = ret[1];
const mediaId = ret[2];
@ -17,7 +17,8 @@ export const fetchAuthenticatedMedia = async (mxcUrl: string, type: MediaType):
const { serverName, mediaId } = getServerAndMediaIdFromMxcUrl(mxcUrl);
if (!serverName || !mediaId) {
throw new Error("Invalid mxcUrl");
console.error("Invalid mxcUrl", mxcUrl, "serverName:", serverName, "mediaId:", mediaId);
return new Response(null, { status: 400, statusText: "Invalid mxcUrl" });
}
let url = "";

4111
yarn.lock

File diff suppressed because it is too large Load Diff