mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-05 21:47:48 +01:00
Compare commits
68 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
794ec127cd | ||
|
|
912ae0adfc | ||
|
|
7c3dcf20ef | ||
|
|
c12a5c01f6 | ||
|
|
6fd2b6b6dc | ||
|
|
bf0a766302 | ||
|
|
be4da9d010 | ||
|
|
b7ca6244dd | ||
|
|
e6cf86ed4a | ||
|
|
3736c1fcab | ||
|
|
3af86ffebb | ||
|
|
0aea6a6c3f | ||
|
|
261c907f52 | ||
|
|
2a6debbc79 | ||
|
|
e9a31bafab | ||
|
|
bf2efce74d | ||
|
|
7cbba1ff90 | ||
|
|
c347677402 | ||
|
|
fd75f22e16 | ||
|
|
aac573a48d | ||
|
|
2245cdda55 | ||
|
|
cf9109384e | ||
|
|
db1fb4b899 | ||
|
|
20048ff567 | ||
|
|
e6c7692677 | ||
|
|
19bdc0ec34 | ||
|
|
cd8c224ffa | ||
|
|
b1ca6b8e1a | ||
|
|
3fd8247a40 | ||
|
|
798ca3dea9 | ||
|
|
5c5b6f17d9 | ||
|
|
8e6c7ec152 | ||
|
|
2cc38b9a4f | ||
|
|
50aa416612 | ||
|
|
96bd6eedc2 | ||
|
|
d12b0d5a53 | ||
|
|
e2d6794d12 | ||
|
|
50ccb0b14d | ||
|
|
132d8f4f6b | ||
|
|
c085cf1e72 | ||
|
|
ebb1a50e3f | ||
|
|
8f82976fe5 | ||
|
|
6da46dd3b1 | ||
|
|
5fc3bdee08 | ||
|
|
bcc867323f | ||
|
|
a46a234b76 | ||
|
|
f0df2122de | ||
|
|
ce695850bd | ||
|
|
8c12afced5 | ||
|
|
8c1e50d9e7 | ||
|
|
20f5134606 | ||
|
|
facc98018b | ||
|
|
581828d49a | ||
|
|
587027df37 | ||
|
|
85736c55c9 | ||
|
|
1f47ee8f11 | ||
|
|
1eb6ac6d90 | ||
|
|
295c6ea796 | ||
|
|
68c2b04090 | ||
|
|
1494458ba6 | ||
|
|
f7086c8aa3 | ||
|
|
59ccc90b2f | ||
|
|
1e9e911877 | ||
|
|
dc67024be2 | ||
|
|
b3591c3e69 | ||
|
|
9243187490 | ||
|
|
6b1080ad43 | ||
|
|
52a4f1a423 |
6
.github/DISCUSSION_TEMPLATE/support.yml
vendored
6
.github/DISCUSSION_TEMPLATE/support.yml
vendored
@@ -4,8 +4,8 @@ body:
|
||||
value: |
|
||||
### ⚠️ Before opening a discussion:
|
||||
|
||||
- [Check the troubleshooting guide](https://gethomepage.dev/latest/troubleshooting/).
|
||||
- [Search existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) [and discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions).
|
||||
- [Check the troubleshooting guide](https://gethomepage.dev/troubleshooting/).
|
||||
- [Search existing issues](https://github.com/gethomepage/homepage/search?q=&type=issues) [and discussions](https://github.com/gethomepage/homepage/search?q=&type=discussions) (including closed ones!).
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
@@ -51,6 +51,6 @@ body:
|
||||
id: troubleshooting
|
||||
attributes:
|
||||
label: Troubleshooting
|
||||
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/latest/more/troubleshooting/#service-widget-errors), if relevant.
|
||||
description: Please include output from your [troubleshooting tests](https://gethomepage.dev/more/troubleshooting/#service-widget-errors), if relevant.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -3,7 +3,7 @@
|
||||
<!--
|
||||
Please include a summary of the change. Screenshots and/or videos can also be helpful if appropriate.
|
||||
|
||||
*** Please see the development guidelines for new widgets: https://gethomepage.dev/latest/more/development/#service-widget-guidelines
|
||||
*** Please see the development guidelines for new widgets: https://gethomepage.dev/more/development/#service-widget-guidelines
|
||||
*** If you do not follow these guidelines your PR will likely be closed without review.
|
||||
|
||||
New service widgets should include example(s) of relevant API output as well as updates to the docs for the new widget.
|
||||
@@ -26,6 +26,6 @@ What type of change does your PR introduce to Homepage?
|
||||
## Checklist:
|
||||
|
||||
- [ ] If applicable, I have added corresponding documentation changes.
|
||||
- [ ] If applicable, I have reviewed the [feature](https://gethomepage.dev/latest/more/development/#new-feature-guidelines) and / or [service widget guidelines](https://gethomepage.dev/latest/more/development/#service-widget-guidelines).
|
||||
- [ ] I have checked that all code style checks pass using [pre-commit hooks](https://gethomepage.dev/latest/more/development/#code-formatting-with-pre-commit-hooks) and [linting checks](https://gethomepage.dev/latest/more/development/#code-linting).
|
||||
- [ ] If applicable, I have reviewed the [feature](https://gethomepage.dev/more/development/#new-feature-guidelines) and / or [service widget guidelines](https://gethomepage.dev/more/development/#service-widget-guidelines).
|
||||
- [ ] I have checked that all code style checks pass using [pre-commit hooks](https://gethomepage.dev/more/development/#code-formatting-with-pre-commit-hooks) and [linting checks](https://gethomepage.dev/more/development/#code-linting).
|
||||
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
|
||||
|
||||
6
.github/workflows/crowdin.yml
vendored
6
.github/workflows/crowdin.yml
vendored
@@ -8,7 +8,7 @@ on:
|
||||
paths: [
|
||||
'/public/locales/en/**',
|
||||
]
|
||||
branches: [ main ]
|
||||
branches: [ dev ]
|
||||
|
||||
jobs:
|
||||
synchronize-with-crowdin:
|
||||
@@ -23,8 +23,8 @@ jobs:
|
||||
with:
|
||||
upload_translations: false
|
||||
download_translations: true
|
||||
crowdin_branch_name: main
|
||||
localization_branch_name: l10n_main
|
||||
crowdin_branch_name: dev
|
||||
localization_branch_name: l10n_dev
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
||||
|
||||
3
.github/workflows/docker-publish.yml
vendored
3
.github/workflows/docker-publish.yml
vendored
@@ -12,13 +12,14 @@ on:
|
||||
branches:
|
||||
- main
|
||||
- feature/**
|
||||
- dev
|
||||
# Publish semver tags as releases.
|
||||
tags: [ 'v*.*.*' ]
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- 'mkdocs.yml'
|
||||
pull_request:
|
||||
branches: [ "main" ]
|
||||
branches: [ "dev" ]
|
||||
paths-ignore:
|
||||
- 'docs/**'
|
||||
- 'mkdocs.yml'
|
||||
|
||||
26
.github/workflows/docs-publish.yml
vendored
26
.github/workflows/docs-publish.yml
vendored
@@ -50,7 +50,6 @@ jobs:
|
||||
restore-keys: |
|
||||
mkdocs-material-
|
||||
- run: sudo apt-get install pngquant
|
||||
- run: pip install mike
|
||||
- run: pip install mkdocs-material mkdocs-redirects "mkdocs-material[imaging]"
|
||||
- name: Test Docs Build
|
||||
run: MKINSIDERS=false mkdocs build
|
||||
@@ -62,8 +61,10 @@ jobs:
|
||||
- pre-commit
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: main
|
||||
- name: Configure Git Credentials
|
||||
run: |
|
||||
git config user.name github-actions[bot]
|
||||
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.x
|
||||
@@ -75,24 +76,9 @@ jobs:
|
||||
restore-keys: |
|
||||
mkdocs-material-
|
||||
- run: sudo apt-get install pngquant
|
||||
- run: pip install mike==2.0.0
|
||||
- run: pip install git+https://${GH_TOKEN}@github.com/benphelps/mkdocs-material-insiders.git
|
||||
- run: pip install mkdocs-redirects "mkdocs-material[imaging]"
|
||||
- name: Set Git config
|
||||
run: |
|
||||
git config --global user.name "GitHub Action"
|
||||
git config --global user.email "action@github.com"
|
||||
- name: Sync gh-pages
|
||||
run: |
|
||||
git fetch origin gh-pages
|
||||
git checkout gh-pages
|
||||
git pull origin gh-pages
|
||||
git checkout main
|
||||
- name: Docs Deploy for Main
|
||||
if: github.ref == 'refs/heads/main'
|
||||
run: MKINSIDERS=true mike deploy --update --push ${{github.ref_name}}
|
||||
- name: Docs Deploy for Tags
|
||||
if: github.ref != 'refs/heads/main'
|
||||
run: MKINSIDERS=true mike deploy --update --push ${{github.ref_name}} latest
|
||||
- name: Docs Deploy
|
||||
run: MKINSIDERS=true mkdocs gh-deploy --force
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
|
||||
20
.github/workflows/reaction-comments.yml
vendored
Normal file
20
.github/workflows/reaction-comments.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: 'Reaction Comments'
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created, edited]
|
||||
pull_request_review_comment:
|
||||
types: [created, edited]
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
permissions:
|
||||
actions: write
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
action:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/reaction-comments@v4
|
||||
@@ -38,11 +38,11 @@ People _love_ thorough bug reports. I'm not even kidding.
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
Please see the [documentation regarding development](https://gethomepage.dev/latest/more/development/) and specifically the [guidelines for new service widgets](https://gethomepage.dev/latest/more/development/#service-widget-guidelines) if you are considering making one.
|
||||
Please see the [documentation regarding development](https://gethomepage.dev/more/development/) and specifically the [guidelines for new service widgets](https://gethomepage.dev/more/development/#service-widget-guidelines) if you are considering making one.
|
||||
|
||||
## Use a Consistent Coding Style
|
||||
|
||||
Please see information in the docs regarding [code formatting with pre-commit hooks](https://gethomepage.dev/latest/more/development/#code-formatting-with-pre-commit-hooks).
|
||||
Please see information in the docs regarding [code formatting with pre-commit hooks](https://gethomepage.dev/more/development/#code-formatting-with-pre-commit-hooks).
|
||||
|
||||
## License
|
||||
|
||||
|
||||
12
README.md
12
README.md
@@ -20,7 +20,7 @@
|
||||
|
||||
<a href="https://discord.gg/k4ruYNrudu"><img alt="Discord" src="https://img.shields.io/discord/1019316731635834932"></a>
|
||||
|
||||
<a href="http://gethomepage.dev/latest/" title="Docs"><img title="Docs" src="https://github.com/gethomepage/homepage/actions/workflows/docs-publish.yml/badge.svg"/></a>
|
||||
<a href="https://gethomepage.dev/" title="Docs"><img title="Docs" src="https://github.com/gethomepage/homepage/actions/workflows/docs-publish.yml/badge.svg"/></a>
|
||||
|
||||
<a href="https://paypal.me/phelpsben" title="Donate"><img alt="GitHub Sponsors" src="https://img.shields.io/github/sponsors/benphelps"></a>
|
||||
</p>
|
||||
@@ -48,19 +48,19 @@ With features like quick search, bookmarks, weather support, a wide range of int
|
||||
|
||||
## Docker Integration
|
||||
|
||||
Homepage has built-in support for Docker, and can automatically discover and add services to the homepage based on labels. See the [Docker Service Discovery](https://gethomepage.dev/latest/configs/docker/#automatic-service-discovery) page for more information.
|
||||
Homepage has built-in support for Docker, and can automatically discover and add services to the homepage based on labels. See the [Docker Service Discovery](https://gethomepage.dev/configs/docker/#automatic-service-discovery) page for more information.
|
||||
|
||||
## Service Widgets
|
||||
|
||||
Homepage also has support for over 100 3rd party services, including all popular starr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd party APIs. See the [Service](https://gethomepage.dev/latest/widgets/) page for more information.
|
||||
Homepage also has support for over 100 3rd party services, including all popular starr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd party APIs. See the [Service](https://gethomepage.dev/widgets/) page for more information.
|
||||
|
||||
## Information Widgets
|
||||
|
||||
Homepage has built-in support for a number of information providers, including weather, time, date, search, glances and more. System and status information presented at the top of the page. See the [Information Providers](https://gethomepage.dev/latest/widgets/) page for more information.
|
||||
Homepage has built-in support for a number of information providers, including weather, time, date, search, glances and more. System and status information presented at the top of the page. See the [Information Providers](https://gethomepage.dev/widgets/) page for more information.
|
||||
|
||||
## Customization
|
||||
|
||||
Homepage is highly customizable, with support for custom themes, custom CSS & JS, custom layouts, formatting, localization and more. See the [Settings](https://gethomepage.dev/latest/configs/settings/) page for more information.
|
||||
Homepage is highly customizable, with support for custom themes, custom CSS & JS, custom layouts, formatting, localization and more. See the [Settings](https://gethomepage.dev/configs/settings/) page for more information.
|
||||
|
||||
# Getting Started
|
||||
|
||||
@@ -170,7 +170,7 @@ If you have any questions, suggestions, or general issues, please start a discus
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
In addition to the docs, the [troubleshooting guide](https://gethomepage.dev/latest/troubleshooting/) can help reveal many basic config or network issues. If you're having a problem, it's a good place to start.
|
||||
In addition to the docs, the [troubleshooting guide](https://gethomepage.dev/troubleshooting/) can help reveal many basic config or network issues. If you're having a problem, it's a good place to start.
|
||||
|
||||
## Contributing & Contributors
|
||||
|
||||
|
||||
1
docs/CNAME
Normal file
1
docs/CNAME
Normal file
@@ -0,0 +1 @@
|
||||
gethomepage.dev
|
||||
@@ -65,9 +65,13 @@ Services may have descriptions,
|
||||
|
||||
Services may have an icon attached to them, you can use icons from [Dashboard Icons](https://github.com/walkxcode/dashboard-icons) automatically, by passing the name of the icon, with, or without `.png` or with `.svg` to use the svg version.
|
||||
|
||||
You can also specify prefixed icons from [Material Design Icons](https://materialdesignicons.com) with `mdi-XX` or [Simple Icons](https://simpleicons.org/) with `si-XX`.
|
||||
You can also specify prefixed icons from:
|
||||
|
||||
You can specify a custom color by adding a hex color code as suffix e.g. `mdi-XX-#f0d453` or `si-XX-#a712a2`.
|
||||
- [Material Design Icons](https://pictogrammers.com/library/mdi/) with `mdi-XX`
|
||||
- [Simple Icons](https://simpleicons.org/) with `si-XX`
|
||||
- [selfh.st/icons](https://selfh.st/icons/) with `sh-XX` to use the png version or `sh-XX.svg/png/webp` for a specific version
|
||||
|
||||
You can specify a custom color for `mdi` and `si` icons by adding a hex color code as a suffix e.g. `mdi-XX-#f0d453` or `si-XX-#a712a2`.
|
||||
|
||||
To use a remote icon, use the absolute URL (e.g. `https://...`).
|
||||
|
||||
@@ -171,7 +175,7 @@ Services may be connected to a Docker container, either running on the local mac
|
||||
|
||||
!!! note
|
||||
|
||||
This can also be controlled with `showStats`. See [show docker stats](docker.md#show-docker-stats) for more information
|
||||
This can also be controlled with `showStats`. See [show docker stats](docker.md#show-stats) for more information
|
||||
|
||||
<img width="1038" alt="Docker Stats Expanded" src="https://github.com/gethomepage/homepage/assets/88257202/f95fd595-449e-48ae-af67-fd89618904ec">
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ icon: simple/docker
|
||||
You have a few options for deploying homepage, depending on your needs. We offer docker images for a majority of platforms. You can also install and run homepage from source if Docker is not your thing. It can even be installed on Kubernetes with Helm.
|
||||
</p>
|
||||
|
||||
!!! danger
|
||||
!!! warning
|
||||
|
||||
Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system) and Homepage currently does not (and is not planned to) include any authentication layer itself. Thus, we recommend homepage be deployed behind a reverse proxy including authentication, SSL etc, and / or behind a VPN.
|
||||
|
||||
|
||||
@@ -31,15 +31,15 @@ You may need to set the permissions of the folders to be able to edit the files.
|
||||
|
||||
- To use the [Docker integration](../configs/docker.md), you only need to use the `container:` parameter. There is no need to set the server.
|
||||
|
||||
!!! note
|
||||
!!! note
|
||||
|
||||
To view detailed container statistics (CPU, RAM, etc.), or if you use a remote docker socket, `container:` will still need to be set. For example:
|
||||
To view detailed container statistics (CPU, RAM, etc.), or if you use a remote docker socket, `container:` will still need to be set. For example:
|
||||
|
||||
```
|
||||
- Plex:
|
||||
icon: /icons/plex.png
|
||||
href: https://app.plex.com
|
||||
container: plex
|
||||
```
|
||||
```
|
||||
- Plex:
|
||||
icon: /icons/plex.png
|
||||
href: https://app.plex.com
|
||||
container: plex
|
||||
```
|
||||
|
||||
- When you upload a new image into the **/images** folder, you will need to restart the container for it to show up in the WebUI. Please see the [service icons](../configs/services.md#icons) for more information.
|
||||
|
||||
@@ -57,6 +57,11 @@
|
||||
--carbon-text-color: var(--md-typeset-color) !important;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="default"] .carbon-text {
|
||||
color: var(--md-code-fg-color) !important;
|
||||
--carbon-text-color: #313131 !important;
|
||||
}
|
||||
|
||||
.md-typeset__table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ hide:
|
||||
|
||||
All service widgets work essentially the same, that is, homepage makes a proxied call to an API made available by that service. The majority of the time widgets don't work it is a configuration issue. Of course, sometimes things do break. Some basic steps to try:
|
||||
|
||||
1. Ensure that you follow the rule mentioned on https://gethomepage.dev/latest/configs/service-widgets/. **Unless otherwise noted, URLs should not end with a / or other API path. Each widget will handle the path on its own.**. This is very important as including a trailing slash can result in an error.
|
||||
1. Ensure that you follow the rule mentioned on https://gethomepage.dev/configs/service-widgets/. **Unless otherwise noted, URLs should not end with a / or other API path. Each widget will handle the path on its own.**. This is very important as including a trailing slash can result in an error.
|
||||
|
||||
2. Verify the homepage installation can connect to the IP address or host you are using for the widget `url`. This is most simply achieved by pinging the server from the homepage machine, in Docker this means _from inside the container_ itself, e.g.:
|
||||
|
||||
|
||||
@@ -48,15 +48,14 @@ self-hosted / open-source alternative, we ask that any widgets, etc. are develop
|
||||
|
||||
## New Feature Guidelines
|
||||
|
||||
- New features should be linked to an existing feature request with at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.
|
||||
- If you have ideas for a larger feature, please open a discussion first.
|
||||
- Please note that though it is a requirement, a discussion with 10 'up-votes' in no way guarantees that a PR will be merged.
|
||||
- New features should usually be linked to an existing feature request. The purpose of this requirement is to avoid the addition (and maintenance) of features that might only benefit a small number of users.
|
||||
- If you have ideas for a larger feature you may want to open a discussion first.
|
||||
|
||||
## Service Widget Guidelines
|
||||
|
||||
To ensure cohesiveness of various widgets, the following should be used as a guide for developing new widgets:
|
||||
|
||||
- Please only submit widgets that have been requested and have at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of service widgets that might only benefit a small number of users.
|
||||
- Please only submit widgets that target a feature request discussion with at least 10 'up-votes'. The purpose of this requirement is to avoid the addition (and maintenance) of service widgets that might only benefit a small number of users.
|
||||
- Note that we reserve the right to decline widgets for projects that are very young (eg < ~1y) or those with a small reach (eg low GitHub stars). Again, this is in an effort to keep overall widget maintenance under control.
|
||||
- Widgets should be only one row of blocks
|
||||
- Widgets should be no more than 4 blocks wide and generally conform to the styling / design choices of other widgets
|
||||
|
||||
@@ -71,7 +71,7 @@ Homepage provides a set of common translations that you can use in your widgets.
|
||||
| `common.ms` | `1,000 ms` | Format a number in milliseconds. |
|
||||
| `common.date` | `2024-01-01` | Format a date. |
|
||||
| `common.relativeDate` | `1 day ago` | Format a relative date. |
|
||||
| `common.uptime` | `1 day, 1 hour` | Format an uptime. |
|
||||
| `common.duration` | `1 day, 1 hour` | Format an duration. |
|
||||
|
||||
### Text
|
||||
|
||||
|
||||
20
docs/widgets/services/beszel.md
Normal file
20
docs/widgets/services/beszel.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Beszel
|
||||
description: Beszel Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Beszel]()
|
||||
|
||||
The widget has two modes, a single system with detailed info if `systemId` is provided, or an overview of all systems if `systemId` is not provided.
|
||||
|
||||
Allowed fields for 'overview' mode: `["systems", "up"]`
|
||||
Allowed fields for a single system: `["name", "status", "updated", "cpu", "memory", "disk", "network"]`
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: beszel
|
||||
url: http://beszel.host.or.ip
|
||||
username: username # email
|
||||
password: password
|
||||
systemId: systemId # optional
|
||||
```
|
||||
@@ -7,6 +7,8 @@ Learn more about [Changedetection.io](https://github.com/dgtlmoon/changedetectio
|
||||
|
||||
Find your API key under `Settings > API`.
|
||||
|
||||
Allowed fields: `["diffsDetected", "totalObserved"]`.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: changedetectionio
|
||||
|
||||
@@ -11,8 +11,11 @@ Learn more about [Gluetun](https://github.com/qdm12/gluetun).
|
||||
|
||||
Allowed fields: `["public_ip", "region", "country"]`.
|
||||
|
||||
To setup authentication, follow [the official Gluetun documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication).
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: gluetun
|
||||
url: http://gluetun.host.or.ip:port
|
||||
key: gluetunkey # Not required if /v1/publicip/ip endpoint is configured with `auth = none`
|
||||
```
|
||||
|
||||
19
docs/widgets/services/headscale.md
Normal file
19
docs/widgets/services/headscale.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Headscale
|
||||
description: Headscale Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Headscale](https://headscale.net/).
|
||||
|
||||
You will need to generate an API access token from the [command line](https://headscale.net/ref/remote-cli/#create-an-api-key) using `headscale apikeys create` command.
|
||||
|
||||
To find your node ID, you can use `headscale nodes list` command.
|
||||
|
||||
Allowed fields: `["name", "address", "last_seen", "status"]`.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: headscale
|
||||
nodeId: nodeid
|
||||
key: headscaleapiaccesstoken
|
||||
```
|
||||
@@ -5,6 +5,11 @@ description: Immich Widget Configuration
|
||||
|
||||
Learn more about [Immich](https://github.com/immich-app/immich).
|
||||
|
||||
| Immich Version | Homepage Widget Version |
|
||||
| -------------- | ----------------------- |
|
||||
| < v1.118 | 1 (default) |
|
||||
| >= v1.118 | 2 |
|
||||
|
||||
Find your API key under `Account Settings > API Keys`.
|
||||
|
||||
Allowed fields: `["users" ,"photos", "videos", "storage"]`.
|
||||
@@ -16,4 +21,5 @@ widget:
|
||||
type: immich
|
||||
url: http://immich.host.or.ip
|
||||
key: adminapikeyadminapikeyadminapikey
|
||||
version: 2 # optional, default is 1
|
||||
```
|
||||
|
||||
@@ -14,6 +14,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
||||
- [Autobrr](autobrr.md)
|
||||
- [Azure DevOps](azuredevops.md)
|
||||
- [Bazarr](bazarr.md)
|
||||
- [Beszel](beszel.md)
|
||||
- [Caddy](caddy.md)
|
||||
- [Calendar](calendar.md)
|
||||
- [Calibre-Web](calibre-web.md)
|
||||
@@ -44,6 +45,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
||||
- [Gotify](gotify.md)
|
||||
- [Grafana](grafana.md)
|
||||
- [HDHomeRun](hdhomerun.md)
|
||||
- [Headscale](headscale.md)
|
||||
- [Healthchecks](healthchecks.md)
|
||||
- [Home Assistant](homeassistant.md)
|
||||
- [HomeBox](homebox.md)
|
||||
@@ -59,7 +61,9 @@ You can also find a list of all available service widgets in the sidebar navigat
|
||||
- [Kopia](kopia.md)
|
||||
- [Lidarr](lidarr.md)
|
||||
- [Linkwarden](linkwarden.md)
|
||||
- [Lubelogger](lubelogger.md)
|
||||
- [Mastodon](mastodon.md)
|
||||
- [Mailcow](mailcow.md)
|
||||
- [Mealie](mealie.md)
|
||||
- [Medusa](medusa.md)
|
||||
- [Mikrotik](mikrotik.md)
|
||||
@@ -126,6 +130,7 @@ You can also find a list of all available service widgets in the sidebar navigat
|
||||
- [Uptime Kuma](uptime-kuma.md)
|
||||
- [UptimeRobot](uptimerobot.md)
|
||||
- [UrBackup](urbackup.md)
|
||||
- [Vikunja](vikunja.md)
|
||||
- [Watchtower](watchtower.md)
|
||||
- [WGEasy](wgeasy.md)
|
||||
- [WhatsUpDocker](whatsupdocker.md)
|
||||
|
||||
20
docs/widgets/services/lubelogger.md
Normal file
20
docs/widgets/services/lubelogger.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: LubeLogger
|
||||
description: LubeLogger Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [LubeLogger](https://github.com/hargata/lubelog) (v1.3.7 or higher is required).
|
||||
|
||||
The widget comes in two 'flavors', one shows data for all vehicles or for just a specific vehicle with the `vehicleID` parameter.
|
||||
|
||||
Allowed fields: `["vehicles", "serviceRecords", "reminders"]`.
|
||||
For the single-vehicle version: `["vehicle", "serviceRecords", "reminders", "nextReminder"]`.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: lubelogger
|
||||
url: https://lubelogger.host.or.ip
|
||||
username: lubeloggerusername
|
||||
password: lubeloggerpassword
|
||||
vehicleID: 1 # optional, changes to single-vehicle version
|
||||
```
|
||||
15
docs/widgets/services/mailcow.md
Normal file
15
docs/widgets/services/mailcow.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Mailcow
|
||||
description: Mailcow Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Mailcow](https://github.com/mailcow/mailcow-dockerized).
|
||||
|
||||
Allowed fields: `["domains", "mailboxes", "mails", "storage"]`.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: mailcow
|
||||
url: https://mailcow.host.or.ip
|
||||
key: mailcowapikey
|
||||
```
|
||||
@@ -9,8 +9,11 @@ _Note that the project was renamed from PiAlert to NetAlertX._
|
||||
|
||||
Allowed fields: `["total", "connected", "new_devices", "down_alerts"]`.
|
||||
|
||||
If you have enabled a password on your NetAlertX instance, you will need to provide the `SYNC_api_token` as the `key` in your config.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: netalertx
|
||||
url: http://ip:port
|
||||
key: netalertxsyncapitoken # optional, only if password is enabled
|
||||
```
|
||||
|
||||
@@ -3,7 +3,9 @@ title: PhotoPrism
|
||||
description: PhotoPrism Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [PhotoPrism](https://github.com/photoprism/photoprism)..
|
||||
Learn more about [PhotoPrism](https://github.com/photoprism/photoprism).
|
||||
|
||||
Authentication is possible via [app passwords](https://docs.photoprism.app/user-guide/settings/account/#apps-and-devices) or username/password.
|
||||
|
||||
Allowed fields: `["albums", "photos", "videos", "people"]`.
|
||||
|
||||
@@ -11,6 +13,7 @@ Allowed fields: `["albums", "photos", "videos", "people"]`.
|
||||
widget:
|
||||
type: photoprism
|
||||
url: http://photoprism.host.or.ip:port
|
||||
username: admin
|
||||
password: password
|
||||
username: admin # required only if using username/password
|
||||
password: password # required only if using username/password
|
||||
key: # required only if using app passwords
|
||||
```
|
||||
|
||||
@@ -5,8 +5,6 @@ description: PiHole Widget Configuration
|
||||
|
||||
Learn more about [PiHole](https://github.com/pi-hole/pi-hole).
|
||||
|
||||
As of v2022.12 [PiHole requires the use of an API key](https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/#page-content) if an admin password is set. Older versions do not require any authentication even if the admin uses a password.
|
||||
|
||||
Allowed fields: `["queries", "blocked", "blocked_percent", "gravity"]`.
|
||||
|
||||
Note: by default the "blocked" and "blocked_percent" fields are merged e.g. "1,234 (15%)" but explicitly including the "blocked_percent" field will change them to display separately.
|
||||
@@ -16,7 +14,5 @@ widget:
|
||||
type: pihole
|
||||
url: http://pi.hole.or.ip
|
||||
version: 6 # required if running v6 or higher, defaults to 5
|
||||
key: yourpiholeapikey # optional
|
||||
key: yourpiholeapikey # optional, in v6 can be your password or app password
|
||||
```
|
||||
|
||||
_Added in v0.1.0, updated in v0.8.9_
|
||||
|
||||
@@ -7,7 +7,7 @@ Learn more about [Unifi Controller](https://ui.com/).
|
||||
|
||||
_(Find the Unifi Controller information widget [here](../info/unifi_controller.md))_
|
||||
|
||||
You can display general connectivity status from your Unifi (Network) Controller. When authenticating you will want to use an account that has at least read privileges.
|
||||
You can display general connectivity status from your Unifi (Network) Controller. When authenticating you will want to use a local account that has at least read privileges.
|
||||
|
||||
An optional 'site' parameter can be supplied, if it is not the widget will use the default site for the controller.
|
||||
|
||||
|
||||
18
docs/widgets/services/vikunja.md
Normal file
18
docs/widgets/services/vikunja.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: Vikunja
|
||||
description: Vikunja Widget Configuration
|
||||
---
|
||||
|
||||
Learn more about [Vikunja](https://vikunja.io).
|
||||
|
||||
Allowed fields: `["projects", "tasks7d", "tasksOverdue", "tasksInProgress"]`.
|
||||
|
||||
A list of the next 5 tasks ordered by due date is disabled by default, but can be enabled with the `enableTaskList` option.
|
||||
|
||||
```yaml
|
||||
widget:
|
||||
type: vikunja
|
||||
url: http[s]://vikunja.host.or.ip[:port]
|
||||
key: vikunjaapikey
|
||||
enableTaskList: true # optional, defaults to false
|
||||
```
|
||||
@@ -37,6 +37,7 @@ nav:
|
||||
- widgets/services/autobrr.md
|
||||
- widgets/services/azuredevops.md
|
||||
- widgets/services/bazarr.md
|
||||
- widgets/services/beszel.md
|
||||
- widgets/services/caddy.md
|
||||
- widgets/services/calendar.md
|
||||
- widgets/services/calibre-web.md
|
||||
@@ -47,6 +48,7 @@ nav:
|
||||
- widgets/services/crowdsec.md
|
||||
- widgets/services/customapi.md
|
||||
- widgets/services/deluge.md
|
||||
- widgets/services/develancacheui.md
|
||||
- widgets/services/diskstation.md
|
||||
- widgets/services/downloadstation.md
|
||||
- widgets/services/emby.md
|
||||
@@ -66,6 +68,7 @@ nav:
|
||||
- widgets/services/gotify.md
|
||||
- widgets/services/grafana.md
|
||||
- widgets/services/hdhomerun.md
|
||||
- widgets/services/headscale.md
|
||||
- widgets/services/healthchecks.md
|
||||
- widgets/services/homeassistant.md
|
||||
- widgets/services/homebox.md
|
||||
@@ -81,7 +84,9 @@ nav:
|
||||
- widgets/services/kopia.md
|
||||
- widgets/services/lidarr.md
|
||||
- widgets/services/linkwarden.md
|
||||
- widgets/services/lubelogger.md
|
||||
- widgets/services/mastodon.md
|
||||
- widgets/services/mailcow.md
|
||||
- widgets/services/mealie.md
|
||||
- widgets/services/medusa.md
|
||||
- widgets/services/mikrotik.md
|
||||
@@ -148,6 +153,7 @@ nav:
|
||||
- widgets/services/uptime-kuma.md
|
||||
- widgets/services/uptimerobot.md
|
||||
- widgets/services/urbackup.md
|
||||
- widgets/services/vikunja.md
|
||||
- widgets/services/watchtower.md
|
||||
- widgets/services/wgeasy.md
|
||||
- widgets/services/whatsupdocker.md
|
||||
@@ -231,8 +237,6 @@ extra_css:
|
||||
- "stylesheets/extra.css"
|
||||
|
||||
extra:
|
||||
version:
|
||||
provider: mike
|
||||
social:
|
||||
- icon: fontawesome/brands/discord
|
||||
link: https://discord.gg/k4ruYNrudu
|
||||
|
||||
@@ -84,12 +84,12 @@ function prettyBytes(number, options) {
|
||||
return `${prefix + numberString} ${unit}`;
|
||||
}
|
||||
|
||||
function uptime(uptimeInSeconds, i18next) {
|
||||
const mo = Math.floor(uptimeInSeconds / (3600 * 24 * 31));
|
||||
const d = Math.floor((uptimeInSeconds % (3600 * 24 * 31)) / (3600 * 24));
|
||||
const h = Math.floor((uptimeInSeconds % (3600 * 24)) / 3600);
|
||||
const m = Math.floor((uptimeInSeconds % 3600) / 60);
|
||||
const s = Math.floor(uptimeInSeconds % 60);
|
||||
function duration(durationInSeconds, i18next) {
|
||||
const mo = Math.floor(durationInSeconds / (3600 * 24 * 31));
|
||||
const d = Math.floor((durationInSeconds % (3600 * 24 * 31)) / (3600 * 24));
|
||||
const h = Math.floor((durationInSeconds % (3600 * 24)) / 3600);
|
||||
const m = Math.floor((durationInSeconds % 3600) / 60);
|
||||
const s = Math.floor(durationInSeconds % 60);
|
||||
|
||||
const moDisplay = mo > 0 ? mo + i18next.t("common.months") : "";
|
||||
const dDisplay = d > 0 ? d + i18next.t("common.days") : "";
|
||||
@@ -156,7 +156,7 @@ module.exports = {
|
||||
i18next.services.formatter.add("relativeDate", (value, lng, options) =>
|
||||
relativeDate(new Date(value), new Intl.RelativeTimeFormat(lng, { ...options })),
|
||||
);
|
||||
i18next.services.formatter.add("uptime", (value, lng) => uptime(value, i18next));
|
||||
i18next.services.formatter.add("duration", (value, lng) => duration(value, i18next));
|
||||
},
|
||||
type: "3rdParty",
|
||||
},
|
||||
|
||||
118
package-lock.json
generated
118
package-lock.json
generated
@@ -14,7 +14,7 @@
|
||||
"classnames": "^2.5.1",
|
||||
"compare-versions": "^6.1.0",
|
||||
"dockerode": "^4.0.2",
|
||||
"follow-redirects": "^1.15.6",
|
||||
"follow-redirects": "^1.15.9",
|
||||
"gamedig": "^5.1.2",
|
||||
"i18next": "^21.10.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
@@ -36,27 +36,27 @@
|
||||
"swr": "^1.3.0",
|
||||
"systeminformation": "^5.23.2",
|
||||
"tough-cookie": "^4.1.3",
|
||||
"urbackup-server-api": "^0.52.0",
|
||||
"urbackup-server-api": "^0.52.1",
|
||||
"winston": "^3.11.0",
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.8",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"eslint-config-next": "^14.2.3",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.8.0",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"eslint-plugin-react": "^7.34.2",
|
||||
"eslint-plugin-react": "^7.37.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"postcss": "^8.4.38",
|
||||
"postcss": "^8.4.47",
|
||||
"prettier": "^3.2.5",
|
||||
"tailwind-scrollbar": "^3.0.5",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"typescript": "^5.4.5"
|
||||
"tailwindcss": "^3.4.14",
|
||||
"typescript": "^5.6.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"osx-temperature-sensor": "^1.0.8"
|
||||
@@ -164,11 +164,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "8.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
|
||||
"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
|
||||
"version": "8.57.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
|
||||
"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
}
|
||||
@@ -191,14 +190,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/config-array": {
|
||||
"version": "0.11.14",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
|
||||
"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
|
||||
"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
|
||||
"deprecated": "Use @eslint/config-array instead",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@humanwhocodes/object-schema": "^2.0.2",
|
||||
"@humanwhocodes/object-schema": "^2.0.3",
|
||||
"debug": "^4.3.1",
|
||||
"minimatch": "^3.0.5"
|
||||
},
|
||||
@@ -225,8 +223,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
|
||||
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
|
||||
"deprecated": "Use @eslint/object-schema instead",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause"
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@isaacs/cliui": {
|
||||
"version": "8.0.2",
|
||||
@@ -2942,17 +2939,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.57.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
|
||||
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
|
||||
"version": "8.57.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
|
||||
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.6.1",
|
||||
"@eslint/eslintrc": "^2.1.4",
|
||||
"@eslint/js": "8.57.0",
|
||||
"@humanwhocodes/config-array": "^0.11.14",
|
||||
"@eslint/js": "8.57.1",
|
||||
"@humanwhocodes/config-array": "^0.13.0",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
"@ungap/structured-clone": "^1.2.0",
|
||||
@@ -3139,11 +3135,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-module-utils": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.9.0.tgz",
|
||||
"integrity": "sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==",
|
||||
"version": "2.12.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
|
||||
"integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "^3.2.7"
|
||||
},
|
||||
@@ -3167,11 +3162,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-import": {
|
||||
"version": "2.30.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz",
|
||||
"integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==",
|
||||
"version": "2.31.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
|
||||
"integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@rtsao/scc": "^1.1.0",
|
||||
"array-includes": "^3.1.8",
|
||||
@@ -3181,7 +3175,7 @@
|
||||
"debug": "^3.2.7",
|
||||
"doctrine": "^2.1.0",
|
||||
"eslint-import-resolver-node": "^0.3.9",
|
||||
"eslint-module-utils": "^2.9.0",
|
||||
"eslint-module-utils": "^2.12.0",
|
||||
"hasown": "^2.0.2",
|
||||
"is-core-module": "^2.15.1",
|
||||
"is-glob": "^4.0.3",
|
||||
@@ -3190,13 +3184,14 @@
|
||||
"object.groupby": "^1.0.3",
|
||||
"object.values": "^1.2.0",
|
||||
"semver": "^6.3.1",
|
||||
"string.prototype.trimend": "^1.0.8",
|
||||
"tsconfig-paths": "^3.15.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
|
||||
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-import/node_modules/debug": {
|
||||
@@ -3285,11 +3280,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-react": {
|
||||
"version": "7.35.2",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.2.tgz",
|
||||
"integrity": "sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==",
|
||||
"version": "7.37.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz",
|
||||
"integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"array-includes": "^3.1.8",
|
||||
"array.prototype.findlast": "^1.2.5",
|
||||
@@ -3659,16 +3653,15 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.8",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.8.tgz",
|
||||
"integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==",
|
||||
"version": "1.15.9",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
|
||||
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4.0"
|
||||
},
|
||||
@@ -6193,9 +6186,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.45",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz",
|
||||
"integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==",
|
||||
"version": "8.4.47",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
|
||||
"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -6211,11 +6204,10 @@
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"picocolors": "^1.0.1",
|
||||
"source-map-js": "^1.2.0"
|
||||
"picocolors": "^1.1.0",
|
||||
"source-map-js": "^1.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
@@ -7189,10 +7181,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
|
||||
"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
|
||||
"license": "BSD-3-Clause",
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
||||
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@@ -7721,11 +7712,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tailwindcss": {
|
||||
"version": "3.4.10",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz",
|
||||
"integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==",
|
||||
"version": "3.4.14",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz",
|
||||
"integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@alloc/quick-lru": "^5.2.0",
|
||||
"arg": "^5.0.2",
|
||||
@@ -8111,11 +8101,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.5.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
||||
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
||||
"version": "5.6.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
|
||||
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -8196,10 +8185,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/urbackup-server-api": {
|
||||
"version": "0.52.0",
|
||||
"resolved": "https://registry.npmjs.org/urbackup-server-api/-/urbackup-server-api-0.52.0.tgz",
|
||||
"integrity": "sha512-KfroCFZEWCuCkWye1F1JwI2fkO1za/Mf1a8TNGTujzxU0ZGzDqhA1zCOcvV97q7nH1TKFNpw5tMZ06fSCKv2UA==",
|
||||
"license": "MIT",
|
||||
"version": "0.52.1",
|
||||
"resolved": "https://registry.npmjs.org/urbackup-server-api/-/urbackup-server-api-0.52.1.tgz",
|
||||
"integrity": "sha512-gAxF9MdXxnceqUr/1Uj2LuGZQb/bvZ3Ply9zH/UTSWGkwKL5C0qMPrBvKRyTHbPMG/NBuHF6BzavkF7GNvOLew==",
|
||||
"dependencies": {
|
||||
"async-mutex": "^0.5.0",
|
||||
"node-fetch": "^2.7.0"
|
||||
|
||||
16
package.json
16
package.json
@@ -16,7 +16,7 @@
|
||||
"classnames": "^2.5.1",
|
||||
"compare-versions": "^6.1.0",
|
||||
"dockerode": "^4.0.2",
|
||||
"follow-redirects": "^1.15.6",
|
||||
"follow-redirects": "^1.15.9",
|
||||
"gamedig": "^5.1.2",
|
||||
"i18next": "^21.10.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
@@ -38,27 +38,27 @@
|
||||
"swr": "^1.3.0",
|
||||
"systeminformation": "^5.23.2",
|
||||
"tough-cookie": "^4.1.3",
|
||||
"urbackup-server-api": "^0.52.0",
|
||||
"urbackup-server-api": "^0.52.1",
|
||||
"winston": "^3.11.0",
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.8",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"eslint-config-next": "^14.2.3",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.8.0",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"eslint-plugin-react": "^7.34.2",
|
||||
"eslint-plugin-react": "^7.37.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"postcss": "^8.4.38",
|
||||
"postcss": "^8.4.47",
|
||||
"prettier": "^3.2.5",
|
||||
"tailwind-scrollbar": "^3.0.5",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"typescript": "^5.4.5"
|
||||
"tailwindcss": "^3.4.14",
|
||||
"typescript": "^5.6.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"osx-temperature-sensor": "^1.0.8"
|
||||
|
||||
336
pnpm-lock.yaml
generated
336
pnpm-lock.yaml
generated
@@ -27,8 +27,8 @@ importers:
|
||||
specifier: ^4.0.2
|
||||
version: 4.0.2
|
||||
follow-redirects:
|
||||
specifier: ^1.15.6
|
||||
version: 1.15.8
|
||||
specifier: ^1.15.9
|
||||
version: 1.15.9
|
||||
gamedig:
|
||||
specifier: ^5.1.2
|
||||
version: 5.1.3
|
||||
@@ -93,8 +93,8 @@ importers:
|
||||
specifier: ^4.1.3
|
||||
version: 4.1.4
|
||||
urbackup-server-api:
|
||||
specifier: ^0.52.0
|
||||
version: 0.52.0
|
||||
specifier: ^0.52.1
|
||||
version: 0.52.1
|
||||
winston:
|
||||
specifier: ^3.11.0
|
||||
version: 3.14.2
|
||||
@@ -108,52 +108,52 @@ importers:
|
||||
devDependencies:
|
||||
'@tailwindcss/forms':
|
||||
specifier: ^0.5.8
|
||||
version: 0.5.9(tailwindcss@3.4.10)
|
||||
version: 0.5.9(tailwindcss@3.4.14)
|
||||
autoprefixer:
|
||||
specifier: ^10.4.20
|
||||
version: 10.4.20(postcss@8.4.45)
|
||||
version: 10.4.20(postcss@8.4.47)
|
||||
eslint:
|
||||
specifier: ^8.57.0
|
||||
version: 8.57.0
|
||||
specifier: ^8.57.1
|
||||
version: 8.57.1
|
||||
eslint-config-airbnb:
|
||||
specifier: ^19.0.4
|
||||
version: 19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.35.2(eslint@8.57.0))(eslint@8.57.0)
|
||||
version: 19.0.4(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.1(eslint@8.57.1))(eslint@8.57.1)
|
||||
eslint-config-next:
|
||||
specifier: ^14.2.3
|
||||
version: 14.2.8(eslint@8.57.0)(typescript@5.5.4)
|
||||
version: 14.2.8(eslint@8.57.1)(typescript@5.6.3)
|
||||
eslint-config-prettier:
|
||||
specifier: ^9.1.0
|
||||
version: 9.1.0(eslint@8.57.0)
|
||||
version: 9.1.0(eslint@8.57.1)
|
||||
eslint-plugin-import:
|
||||
specifier: ^2.29.1
|
||||
version: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
specifier: ^2.31.0
|
||||
version: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||
eslint-plugin-jsx-a11y:
|
||||
specifier: ^6.8.0
|
||||
version: 6.10.0(eslint@8.57.0)
|
||||
version: 6.10.0(eslint@8.57.1)
|
||||
eslint-plugin-prettier:
|
||||
specifier: ^5.2.1
|
||||
version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3)
|
||||
version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3)
|
||||
eslint-plugin-react:
|
||||
specifier: ^7.34.2
|
||||
version: 7.35.2(eslint@8.57.0)
|
||||
specifier: ^7.37.1
|
||||
version: 7.37.1(eslint@8.57.1)
|
||||
eslint-plugin-react-hooks:
|
||||
specifier: ^4.6.2
|
||||
version: 4.6.2(eslint@8.57.0)
|
||||
version: 4.6.2(eslint@8.57.1)
|
||||
postcss:
|
||||
specifier: ^8.4.38
|
||||
version: 8.4.45
|
||||
specifier: ^8.4.47
|
||||
version: 8.4.47
|
||||
prettier:
|
||||
specifier: ^3.2.5
|
||||
version: 3.3.3
|
||||
tailwind-scrollbar:
|
||||
specifier: ^3.0.5
|
||||
version: 3.1.0(tailwindcss@3.4.10)
|
||||
version: 3.1.0(tailwindcss@3.4.14)
|
||||
tailwindcss:
|
||||
specifier: ^3.4.3
|
||||
version: 3.4.10
|
||||
specifier: ^3.4.14
|
||||
version: 3.4.14
|
||||
typescript:
|
||||
specifier: ^5.4.5
|
||||
version: 5.5.4
|
||||
specifier: ^5.6.3
|
||||
version: 5.6.3
|
||||
|
||||
packages:
|
||||
|
||||
@@ -189,8 +189,8 @@ packages:
|
||||
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
'@eslint/js@8.57.0':
|
||||
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
|
||||
'@eslint/js@8.57.1':
|
||||
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
'@headlessui/react@1.7.19':
|
||||
@@ -200,8 +200,8 @@ packages:
|
||||
react: ^16 || ^17 || ^18
|
||||
react-dom: ^16 || ^17 || ^18
|
||||
|
||||
'@humanwhocodes/config-array@0.11.14':
|
||||
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
|
||||
'@humanwhocodes/config-array@0.13.0':
|
||||
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
|
||||
engines: {node: '>=10.10.0'}
|
||||
deprecated: Use @eslint/config-array instead
|
||||
|
||||
@@ -1077,6 +1077,27 @@ packages:
|
||||
eslint-plugin-import-x:
|
||||
optional: true
|
||||
|
||||
eslint-module-utils@2.12.0:
|
||||
resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': '*'
|
||||
eslint: '*'
|
||||
eslint-import-resolver-node: '*'
|
||||
eslint-import-resolver-typescript: '*'
|
||||
eslint-import-resolver-webpack: '*'
|
||||
peerDependenciesMeta:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
eslint:
|
||||
optional: true
|
||||
eslint-import-resolver-node:
|
||||
optional: true
|
||||
eslint-import-resolver-typescript:
|
||||
optional: true
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
|
||||
eslint-module-utils@2.9.0:
|
||||
resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -1098,12 +1119,12 @@ packages:
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
|
||||
eslint-plugin-import@2.30.0:
|
||||
resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==}
|
||||
eslint-plugin-import@2.31.0:
|
||||
resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': '*'
|
||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
|
||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
|
||||
peerDependenciesMeta:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
@@ -1134,8 +1155,8 @@ packages:
|
||||
peerDependencies:
|
||||
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
|
||||
|
||||
eslint-plugin-react@7.35.2:
|
||||
resolution: {integrity: sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==}
|
||||
eslint-plugin-react@7.37.1:
|
||||
resolution: {integrity: sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
|
||||
@@ -1148,9 +1169,10 @@ packages:
|
||||
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
eslint@8.57.0:
|
||||
resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
|
||||
eslint@8.57.1:
|
||||
resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
|
||||
hasBin: true
|
||||
|
||||
espree@9.6.1:
|
||||
@@ -1239,8 +1261,8 @@ packages:
|
||||
fn.name@1.1.0:
|
||||
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
|
||||
|
||||
follow-redirects@1.15.8:
|
||||
resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==}
|
||||
follow-redirects@1.15.9:
|
||||
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
|
||||
engines: {node: '>=4.0'}
|
||||
peerDependencies:
|
||||
debug: '*'
|
||||
@@ -2095,8 +2117,8 @@ packages:
|
||||
resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
postcss@8.4.45:
|
||||
resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==}
|
||||
postcss@8.4.47:
|
||||
resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
prelude-ls@1.2.1:
|
||||
@@ -2371,6 +2393,10 @@ packages:
|
||||
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
source-map-js@1.2.1:
|
||||
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
split-ca@1.0.1:
|
||||
resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==}
|
||||
|
||||
@@ -2506,8 +2532,8 @@ packages:
|
||||
peerDependencies:
|
||||
tailwindcss: 3.x
|
||||
|
||||
tailwindcss@3.4.10:
|
||||
resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==}
|
||||
tailwindcss@3.4.14:
|
||||
resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
hasBin: true
|
||||
|
||||
@@ -2620,8 +2646,8 @@ packages:
|
||||
resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
typescript@5.5.4:
|
||||
resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
|
||||
typescript@5.6.3:
|
||||
resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
@@ -2645,8 +2671,8 @@ packages:
|
||||
peerDependencies:
|
||||
browserslist: '>= 4.21.0'
|
||||
|
||||
urbackup-server-api@0.52.0:
|
||||
resolution: {integrity: sha512-KfroCFZEWCuCkWye1F1JwI2fkO1za/Mf1a8TNGTujzxU0ZGzDqhA1zCOcvV97q7nH1TKFNpw5tMZ06fSCKv2UA==}
|
||||
urbackup-server-api@0.52.1:
|
||||
resolution: {integrity: sha512-gAxF9MdXxnceqUr/1Uj2LuGZQb/bvZ3Ply9zH/UTSWGkwKL5C0qMPrBvKRyTHbPMG/NBuHF6BzavkF7GNvOLew==}
|
||||
|
||||
uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
@@ -2784,9 +2810,9 @@ snapshots:
|
||||
enabled: 2.0.0
|
||||
kuler: 2.0.0
|
||||
|
||||
'@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
|
||||
'@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)':
|
||||
dependencies:
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/regexpp@4.11.0': {}
|
||||
@@ -2805,7 +2831,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@eslint/js@8.57.0': {}
|
||||
'@eslint/js@8.57.1': {}
|
||||
|
||||
'@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
@@ -2814,7 +2840,7 @@ snapshots:
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
'@humanwhocodes/config-array@0.11.14':
|
||||
'@humanwhocodes/config-array@0.13.0':
|
||||
dependencies:
|
||||
'@humanwhocodes/object-schema': 2.0.3
|
||||
debug: 4.3.6
|
||||
@@ -2952,10 +2978,10 @@ snapshots:
|
||||
dependencies:
|
||||
defer-to-connect: 2.0.1
|
||||
|
||||
'@tailwindcss/forms@0.5.9(tailwindcss@3.4.10)':
|
||||
'@tailwindcss/forms@0.5.9(tailwindcss@3.4.14)':
|
||||
dependencies:
|
||||
mini-svg-data-uri: 1.4.4
|
||||
tailwindcss: 3.4.10
|
||||
tailwindcss: 3.4.14
|
||||
|
||||
'@tanstack/react-virtual@3.10.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
@@ -3011,36 +3037,36 @@ snapshots:
|
||||
|
||||
'@types/triple-beam@1.3.5': {}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.11.0
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/scope-manager': 7.2.0
|
||||
'@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/type-utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 7.2.0
|
||||
debug: 4.3.6
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
natural-compare: 1.4.0
|
||||
semver: 7.6.3
|
||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
||||
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 7.2.0
|
||||
'@typescript-eslint/types': 7.2.0
|
||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4)
|
||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 7.2.0
|
||||
debug: 4.3.6
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -3049,21 +3075,21 @@ snapshots:
|
||||
'@typescript-eslint/types': 7.2.0
|
||||
'@typescript-eslint/visitor-keys': 7.2.0
|
||||
|
||||
'@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/type-utils@7.2.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
debug: 4.3.6
|
||||
eslint: 8.57.0
|
||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
||||
eslint: 8.57.1
|
||||
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@7.2.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.4)':
|
||||
'@typescript-eslint/typescript-estree@7.2.0(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.2.0
|
||||
'@typescript-eslint/visitor-keys': 7.2.0
|
||||
@@ -3072,21 +3098,21 @@ snapshots:
|
||||
is-glob: 4.0.3
|
||||
minimatch: 9.0.3
|
||||
semver: 7.6.3
|
||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
||||
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/utils@7.2.0(eslint@8.57.1)(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
|
||||
'@types/json-schema': 7.0.15
|
||||
'@types/semver': 7.5.8
|
||||
'@typescript-eslint/scope-manager': 7.2.0
|
||||
'@typescript-eslint/types': 7.2.0
|
||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4)
|
||||
eslint: 8.57.0
|
||||
'@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
|
||||
eslint: 8.57.1
|
||||
semver: 7.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -3220,14 +3246,14 @@ snapshots:
|
||||
|
||||
asynckit@0.4.0: {}
|
||||
|
||||
autoprefixer@10.4.20(postcss@8.4.45):
|
||||
autoprefixer@10.4.20(postcss@8.4.47):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
caniuse-lite: 1.0.30001657
|
||||
fraction.js: 4.3.7
|
||||
normalize-range: 0.1.2
|
||||
picocolors: 1.1.0
|
||||
postcss: 8.4.45
|
||||
postcss: 8.4.47
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
available-typed-arrays@1.0.7:
|
||||
@@ -3755,49 +3781,49 @@ snapshots:
|
||||
|
||||
escape-string-regexp@4.0.0: {}
|
||||
|
||||
eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1):
|
||||
dependencies:
|
||||
confusing-browser-globals: 1.0.11
|
||||
eslint: 8.57.0
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint: 8.57.1
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||
object.assign: 4.1.5
|
||||
object.entries: 1.1.8
|
||||
semver: 6.3.1
|
||||
|
||||
eslint-config-airbnb@19.0.4(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.35.2(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-config-airbnb@19.0.4(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.1(eslint@8.57.1))(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.0
|
||||
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
||||
eslint-plugin-react: 7.35.2(eslint@8.57.0)
|
||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
||||
eslint: 8.57.1
|
||||
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1))(eslint@8.57.1)
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1)
|
||||
eslint-plugin-react: 7.37.1(eslint@8.57.1)
|
||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1)
|
||||
object.assign: 4.1.5
|
||||
object.entries: 1.1.8
|
||||
|
||||
eslint-config-next@14.2.8(eslint@8.57.0)(typescript@5.5.4):
|
||||
eslint-config-next@14.2.8(eslint@8.57.1)(typescript@5.6.3):
|
||||
dependencies:
|
||||
'@next/eslint-plugin-next': 14.2.8
|
||||
'@rushstack/eslint-patch': 1.10.4
|
||||
'@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
eslint: 8.57.0
|
||||
'@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
|
||||
eslint-plugin-react: 7.35.2(eslint@8.57.0)
|
||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||
eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1)
|
||||
eslint-plugin-react: 7.37.1(eslint@8.57.1)
|
||||
eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1)
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.6.3
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
- eslint-plugin-import-x
|
||||
- supports-color
|
||||
|
||||
eslint-config-prettier@9.1.0(eslint@8.57.0):
|
||||
eslint-config-prettier@9.1.0(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
dependencies:
|
||||
@@ -3807,37 +3833,48 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0):
|
||||
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
debug: 4.3.6
|
||||
enhanced-resolve: 5.17.1
|
||||
eslint: 8.57.0
|
||||
eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint: 8.57.1
|
||||
eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)
|
||||
fast-glob: 3.3.2
|
||||
get-tsconfig: 4.8.0
|
||||
is-bun-module: 1.1.0
|
||||
is-glob: 4.0.3
|
||||
optionalDependencies:
|
||||
eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)
|
||||
transitivePeerDependencies:
|
||||
- '@typescript-eslint/parser'
|
||||
- eslint-import-resolver-node
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
|
||||
eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
eslint: 8.57.0
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0):
|
||||
eslint-module-utils@2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1):
|
||||
dependencies:
|
||||
'@rtsao/scc': 1.1.0
|
||||
array-includes: 3.1.8
|
||||
@@ -3846,9 +3883,9 @@ snapshots:
|
||||
array.prototype.flatmap: 1.3.2
|
||||
debug: 3.2.7
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.9.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1)
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.15.1
|
||||
is-glob: 4.0.3
|
||||
@@ -3857,15 +3894,16 @@ snapshots:
|
||||
object.groupby: 1.0.3
|
||||
object.values: 1.2.0
|
||||
semver: 6.3.1
|
||||
string.prototype.trimend: 1.0.8
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3)
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0):
|
||||
eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1):
|
||||
dependencies:
|
||||
aria-query: 5.1.3
|
||||
array-includes: 3.1.8
|
||||
@@ -3876,7 +3914,7 @@ snapshots:
|
||||
damerau-levenshtein: 1.0.8
|
||||
emoji-regex: 9.2.2
|
||||
es-iterator-helpers: 1.0.19
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
language-tags: 1.0.9
|
||||
@@ -3885,20 +3923,20 @@ snapshots:
|
||||
safe-regex-test: 1.0.3
|
||||
string.prototype.includes: 2.0.0
|
||||
|
||||
eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3):
|
||||
eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3):
|
||||
dependencies:
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
prettier: 3.3.3
|
||||
prettier-linter-helpers: 1.0.0
|
||||
synckit: 0.9.1
|
||||
optionalDependencies:
|
||||
eslint-config-prettier: 9.1.0(eslint@8.57.0)
|
||||
eslint-config-prettier: 9.1.0(eslint@8.57.1)
|
||||
|
||||
eslint-plugin-react-hooks@4.6.2(eslint@8.57.0):
|
||||
eslint-plugin-react-hooks@4.6.2(eslint@8.57.1):
|
||||
dependencies:
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
|
||||
eslint-plugin-react@7.35.2(eslint@8.57.0):
|
||||
eslint-plugin-react@7.37.1(eslint@8.57.1):
|
||||
dependencies:
|
||||
array-includes: 3.1.8
|
||||
array.prototype.findlast: 1.2.5
|
||||
@@ -3906,7 +3944,7 @@ snapshots:
|
||||
array.prototype.tosorted: 1.1.4
|
||||
doctrine: 2.1.0
|
||||
es-iterator-helpers: 1.0.19
|
||||
eslint: 8.57.0
|
||||
eslint: 8.57.1
|
||||
estraverse: 5.3.0
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
@@ -3927,13 +3965,13 @@ snapshots:
|
||||
|
||||
eslint-visitor-keys@3.4.3: {}
|
||||
|
||||
eslint@8.57.0:
|
||||
eslint@8.57.1:
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1)
|
||||
'@eslint-community/regexpp': 4.11.0
|
||||
'@eslint/eslintrc': 2.1.4
|
||||
'@eslint/js': 8.57.0
|
||||
'@humanwhocodes/config-array': 0.11.14
|
||||
'@eslint/js': 8.57.1
|
||||
'@humanwhocodes/config-array': 0.13.0
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
'@ungap/structured-clone': 1.2.0
|
||||
@@ -4055,7 +4093,7 @@ snapshots:
|
||||
|
||||
fn.name@1.1.0: {}
|
||||
|
||||
follow-redirects@1.15.8: {}
|
||||
follow-redirects@1.15.9: {}
|
||||
|
||||
for-each@0.3.3:
|
||||
dependencies:
|
||||
@@ -4854,28 +4892,28 @@ snapshots:
|
||||
|
||||
possible-typed-array-names@1.0.0: {}
|
||||
|
||||
postcss-import@15.1.0(postcss@8.4.45):
|
||||
postcss-import@15.1.0(postcss@8.4.47):
|
||||
dependencies:
|
||||
postcss: 8.4.45
|
||||
postcss: 8.4.47
|
||||
postcss-value-parser: 4.2.0
|
||||
read-cache: 1.0.0
|
||||
resolve: 1.22.8
|
||||
|
||||
postcss-js@4.0.1(postcss@8.4.45):
|
||||
postcss-js@4.0.1(postcss@8.4.47):
|
||||
dependencies:
|
||||
camelcase-css: 2.0.1
|
||||
postcss: 8.4.45
|
||||
postcss: 8.4.47
|
||||
|
||||
postcss-load-config@4.0.2(postcss@8.4.45):
|
||||
postcss-load-config@4.0.2(postcss@8.4.47):
|
||||
dependencies:
|
||||
lilconfig: 3.1.2
|
||||
yaml: 2.5.1
|
||||
optionalDependencies:
|
||||
postcss: 8.4.45
|
||||
postcss: 8.4.47
|
||||
|
||||
postcss-nested@6.2.0(postcss@8.4.45):
|
||||
postcss-nested@6.2.0(postcss@8.4.47):
|
||||
dependencies:
|
||||
postcss: 8.4.45
|
||||
postcss: 8.4.47
|
||||
postcss-selector-parser: 6.1.2
|
||||
|
||||
postcss-selector-parser@6.1.2:
|
||||
@@ -4891,11 +4929,11 @@ snapshots:
|
||||
picocolors: 1.1.0
|
||||
source-map-js: 1.2.0
|
||||
|
||||
postcss@8.4.45:
|
||||
postcss@8.4.47:
|
||||
dependencies:
|
||||
nanoid: 3.3.7
|
||||
picocolors: 1.1.0
|
||||
source-map-js: 1.2.0
|
||||
source-map-js: 1.2.1
|
||||
|
||||
prelude-ls@1.2.1: {}
|
||||
|
||||
@@ -5201,6 +5239,8 @@ snapshots:
|
||||
|
||||
source-map-js@1.2.0: {}
|
||||
|
||||
source-map-js@1.2.1: {}
|
||||
|
||||
split-ca@1.0.1: {}
|
||||
|
||||
ssh2@1.15.0:
|
||||
@@ -5349,11 +5389,11 @@ snapshots:
|
||||
|
||||
systeminformation@5.23.5: {}
|
||||
|
||||
tailwind-scrollbar@3.1.0(tailwindcss@3.4.10):
|
||||
tailwind-scrollbar@3.1.0(tailwindcss@3.4.14):
|
||||
dependencies:
|
||||
tailwindcss: 3.4.10
|
||||
tailwindcss: 3.4.14
|
||||
|
||||
tailwindcss@3.4.10:
|
||||
tailwindcss@3.4.14:
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
arg: 5.0.2
|
||||
@@ -5369,11 +5409,11 @@ snapshots:
|
||||
normalize-path: 3.0.0
|
||||
object-hash: 3.0.0
|
||||
picocolors: 1.1.0
|
||||
postcss: 8.4.45
|
||||
postcss-import: 15.1.0(postcss@8.4.45)
|
||||
postcss-js: 4.0.1(postcss@8.4.45)
|
||||
postcss-load-config: 4.0.2(postcss@8.4.45)
|
||||
postcss-nested: 6.2.0(postcss@8.4.45)
|
||||
postcss: 8.4.47
|
||||
postcss-import: 15.1.0(postcss@8.4.47)
|
||||
postcss-js: 4.0.1(postcss@8.4.47)
|
||||
postcss-load-config: 4.0.2(postcss@8.4.47)
|
||||
postcss-nested: 6.2.0(postcss@8.4.47)
|
||||
postcss-selector-parser: 6.1.2
|
||||
resolve: 1.22.8
|
||||
sucrase: 3.35.0
|
||||
@@ -5448,9 +5488,9 @@ snapshots:
|
||||
|
||||
triple-beam@1.4.1: {}
|
||||
|
||||
ts-api-utils@1.3.0(typescript@5.5.4):
|
||||
ts-api-utils@1.3.0(typescript@5.6.3):
|
||||
dependencies:
|
||||
typescript: 5.5.4
|
||||
typescript: 5.6.3
|
||||
|
||||
ts-interface-checker@0.1.13: {}
|
||||
|
||||
@@ -5509,7 +5549,7 @@ snapshots:
|
||||
is-typed-array: 1.1.13
|
||||
possible-typed-array-names: 1.0.0
|
||||
|
||||
typescript@5.5.4: {}
|
||||
typescript@5.6.3: {}
|
||||
|
||||
unbox-primitive@1.0.2:
|
||||
dependencies:
|
||||
@@ -5530,7 +5570,7 @@ snapshots:
|
||||
escalade: 3.2.0
|
||||
picocolors: 1.1.0
|
||||
|
||||
urbackup-server-api@0.52.0:
|
||||
urbackup-server-api@0.52.1:
|
||||
dependencies:
|
||||
async-mutex: 0.5.0
|
||||
node-fetch: 2.7.0
|
||||
|
||||
@@ -325,15 +325,15 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "Navraë",
|
||||
"totalNoError": "Success",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
"totalAuthoritative": "Authoritative",
|
||||
"totalRecursive": "Recursive",
|
||||
"totalCached": "Cached",
|
||||
"totalNoError": "Sukses",
|
||||
"totalServerFailure": "Mislukkings",
|
||||
"totalNxDomain": "NX-domeine",
|
||||
"totalRefused": "Geweier",
|
||||
"totalAuthoritative": "Gesaghebbend",
|
||||
"totalRecursive": "Rekursief",
|
||||
"totalCached": "Gekas",
|
||||
"totalBlocked": "Geblok",
|
||||
"totalDropped": "Dropped",
|
||||
"totalDropped": "Geval",
|
||||
"totalClients": "Kliënte"
|
||||
},
|
||||
"tdarr": {
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Skermskote",
|
||||
"totalfilesize": "Totale Grootte"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domeine",
|
||||
"mailboxes": "Posbusse",
|
||||
"mails": "E-posse",
|
||||
"storage": "Bergplek"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Waarskuwings",
|
||||
"criticals": "Kritici"
|
||||
@@ -933,11 +939,19 @@
|
||||
"tags": "Merkers"
|
||||
},
|
||||
"zabbix": {
|
||||
"unclassified": "Not classified",
|
||||
"unclassified": "Nie geklassifiseer nie",
|
||||
"information": "Informasie",
|
||||
"warning": "Warning",
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
"warning": "Waarskuwing",
|
||||
"average": "Gemiddeld",
|
||||
"high": "Hoog",
|
||||
"disaster": "Ramp"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "لقطات شاشة",
|
||||
"totalfilesize": "الحجم الكلي"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "مجالات",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "التخزين"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "تحذيرات",
|
||||
"criticals": "حرج"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "متوسط",
|
||||
"high": "عالي",
|
||||
"disaster": "كارثة"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Dominis",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Emmagatzematge"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Avisos",
|
||||
"criticals": "Crítics"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domény",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Úložiště"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domæner",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Lager"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Advarsler",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Bildschirmfotos",
|
||||
"totalfilesize": "Gesamtgröße"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domänen",
|
||||
"mailboxes": "Postfächer",
|
||||
"mails": "E-Mails",
|
||||
"storage": "Speicher"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnungen",
|
||||
"criticals": "Kritisch"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Durchschnitt",
|
||||
"high": "Hoch",
|
||||
"disaster": "Katastrophe"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Fahrzeug",
|
||||
"vehicles": "Fahrzeuge",
|
||||
"serviceRecords": "Wartungseinträge",
|
||||
"reminders": "Erinnerungen",
|
||||
"nextReminder": "Nächste Erinnerung",
|
||||
"none": "Keine"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Τομείς",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Αποθηκευτικός χώρος"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"ms": "{{value, number}}",
|
||||
"date": "{{value, date}}",
|
||||
"relativeDate": "{{value, relativeDate}}",
|
||||
"uptime": "{{value, uptime}}",
|
||||
"duration": "{{value, duration}}",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,38 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
},
|
||||
"vikunja": {
|
||||
"projects": "Active Projects",
|
||||
"tasks7d": "Tasks Due This Week",
|
||||
"tasksOverdue": "Overdue Tasks",
|
||||
"tasksInProgress": "Tasks In Progress"
|
||||
},
|
||||
"headscale": {
|
||||
"name": "Name",
|
||||
"address": "Address",
|
||||
"last_seen": "Last Seen",
|
||||
"status": "Status",
|
||||
"online": "Online",
|
||||
"offline": "Offline"
|
||||
},
|
||||
"beszel": {
|
||||
"name": "Name",
|
||||
"systems": "Systems",
|
||||
"up": "Up",
|
||||
"status": "Status",
|
||||
"updated": "Updated",
|
||||
"cpu": "CPU",
|
||||
"memory": "MEM",
|
||||
"disk": "Disk",
|
||||
"network": "NET"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -325,15 +325,15 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "Consultas",
|
||||
"totalNoError": "Success",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
"totalAuthoritative": "Authoritative",
|
||||
"totalRecursive": "Recursive",
|
||||
"totalCached": "Cached",
|
||||
"totalNoError": "Éxitos",
|
||||
"totalServerFailure": "Fallas",
|
||||
"totalNxDomain": "Dominios NX",
|
||||
"totalRefused": "Rechazados",
|
||||
"totalAuthoritative": "Autoritarios",
|
||||
"totalRecursive": "Recursivos",
|
||||
"totalCached": "En caché",
|
||||
"totalBlocked": "Bloqueado",
|
||||
"totalDropped": "Dropped",
|
||||
"totalDropped": "Descartados",
|
||||
"totalClients": "Clientes"
|
||||
},
|
||||
"tdarr": {
|
||||
@@ -844,11 +844,17 @@
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Plataformas",
|
||||
"totalRoms": "Games",
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
"totalRoms": "Juegos",
|
||||
"saves": "Guardados",
|
||||
"states": "Estados",
|
||||
"screenshots": "Capturas de pantalla",
|
||||
"totalfilesize": "Tamaño total"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Dominios",
|
||||
"mailboxes": "Buzones de correo",
|
||||
"mails": "Correos",
|
||||
"storage": "Almacenamiento"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Advertencias",
|
||||
@@ -933,11 +939,19 @@
|
||||
"tags": "Etiquetas"
|
||||
},
|
||||
"zabbix": {
|
||||
"unclassified": "Not classified",
|
||||
"unclassified": "No clasificado",
|
||||
"information": "Información",
|
||||
"warning": "Warning",
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
"warning": "Advertencia",
|
||||
"average": "Promedio",
|
||||
"high": "Alto",
|
||||
"disaster": "Desastre"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehículo",
|
||||
"vehicles": "Vehículos",
|
||||
"serviceRecords": "Registros de servicio",
|
||||
"reminders": "Recordatorios",
|
||||
"nextReminder": "Siguiente recordatorio",
|
||||
"none": "Nada"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Verkkotunnuksia",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domaines",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Stockage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Avertissements",
|
||||
"criticals": "Urgent"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domene",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Spremište"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Upozorenja",
|
||||
"criticals": "Kritično"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domainek",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Tárhely"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Figyelmeztetések",
|
||||
"criticals": "Kritikusok"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Jármű",
|
||||
"vehicles": "Járművek",
|
||||
"serviceRecords": "Szolgáltatások nyílvántartása",
|
||||
"reminders": "Emlékeztetők",
|
||||
"nextReminder": "Következő emlékeztető",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Jumlah Domain",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Penyimpanan"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Peringatan",
|
||||
"criticals": "Kritis"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domini",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Archiviazione"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Avvisi",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "スクリーンショット",
|
||||
"totalfilesize": "合計サイズ"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "ドメイン",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "ストレージ"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "警告",
|
||||
"criticals": "重大"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "平均",
|
||||
"high": "高い",
|
||||
"disaster": "災害"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
},
|
||||
"freshrss": {
|
||||
"subscriptions": "구독",
|
||||
"unread": "읽지 않음"
|
||||
"unread": "미열람"
|
||||
},
|
||||
"fritzbox": {
|
||||
"connectionStatus": "상태",
|
||||
@@ -376,7 +376,7 @@
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"configured": "구성됨",
|
||||
"errored": "오류"
|
||||
},
|
||||
"strelaysrv": {
|
||||
@@ -404,12 +404,12 @@
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "읽음",
|
||||
"unread": "읽지 않음"
|
||||
"unread": "미열람"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "사용자",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
"loginsLast24H": "로그인 (24h)",
|
||||
"failedLoginsLast24H": "실패한 로그인 (24h)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MEM",
|
||||
@@ -538,9 +538,9 @@
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "대기열",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
"videos": "동영상",
|
||||
"channels": "채널",
|
||||
"playlists": "재생 목록"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
@@ -559,7 +559,7 @@
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "채널",
|
||||
"hd": "HD",
|
||||
"tunerCount": "Tuners",
|
||||
"channelNumber": "채널",
|
||||
@@ -648,9 +648,9 @@
|
||||
},
|
||||
"immich": {
|
||||
"users": "사용자",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"photos": "사진",
|
||||
"videos": "동영상",
|
||||
"storage": "저장됨"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
@@ -663,10 +663,10 @@
|
||||
"series": "시리즈",
|
||||
"archives": "Archives",
|
||||
"chapters": "Chapters",
|
||||
"categories": "Categories"
|
||||
"categories": "분류"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"libraries": "서재",
|
||||
"series": "시리즈",
|
||||
"books": "책"
|
||||
},
|
||||
@@ -682,8 +682,8 @@
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"photos": "사진",
|
||||
"videos": "동영상",
|
||||
"people": "People"
|
||||
},
|
||||
"fileflows": {
|
||||
@@ -699,12 +699,12 @@
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users",
|
||||
"numfiles": "Files",
|
||||
"numshares": "Shared Items"
|
||||
"cpuload": "CPU 부하량",
|
||||
"memoryusage": "메모리 사용량",
|
||||
"freespace": "여유 공간",
|
||||
"activeusers": "활성 유저",
|
||||
"numfiles": "파일",
|
||||
"numshares": "공유된 항목"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "상태",
|
||||
@@ -754,8 +754,8 @@
|
||||
},
|
||||
"calibreweb": {
|
||||
"books": "책",
|
||||
"authors": "Authors",
|
||||
"categories": "Categories",
|
||||
"authors": "저자",
|
||||
"categories": "분류",
|
||||
"series": "시리즈"
|
||||
},
|
||||
"jdownloader": {
|
||||
@@ -766,7 +766,7 @@
|
||||
},
|
||||
"kavita": {
|
||||
"seriesCount": "시리즈",
|
||||
"totalFiles": "Files"
|
||||
"totalFiles": "파일"
|
||||
},
|
||||
"azuredevops": {
|
||||
"result": "Result",
|
||||
@@ -802,7 +802,7 @@
|
||||
"mealie": {
|
||||
"recipes": "Recipes",
|
||||
"users": "사용자",
|
||||
"categories": "Categories",
|
||||
"categories": "분류",
|
||||
"tags": "태그"
|
||||
},
|
||||
"openmediavault": {
|
||||
@@ -843,12 +843,18 @@
|
||||
"noEventsFound": "No events found"
|
||||
},
|
||||
"romm": {
|
||||
"platforms": "Platforms",
|
||||
"totalRoms": "Games",
|
||||
"saves": "Saves",
|
||||
"states": "States",
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
"platforms": "기종",
|
||||
"totalRoms": "게임",
|
||||
"saves": "세이브",
|
||||
"states": "스테이트",
|
||||
"screenshots": "스크린샷",
|
||||
"totalfilesize": "전체 용량"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "저장됨"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
@@ -857,7 +863,7 @@
|
||||
"plantit": {
|
||||
"events": "Events",
|
||||
"plants": "Plants",
|
||||
"photos": "Photos",
|
||||
"photos": "사진",
|
||||
"species": "Species"
|
||||
},
|
||||
"gitea": {
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domain",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Amaran",
|
||||
"criticals": "Kritikal"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots ",
|
||||
"totalfilesize": "Totale grootte"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domeinen",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Opslag"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Waarschuwingen",
|
||||
"criticals": "Kritiek"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domener",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Lagring"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Advarsler",
|
||||
"criticals": "Kritiske"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,8 +463,8 @@
|
||||
"51-night": "Lekka mżawka",
|
||||
"53-day": "Mżawka",
|
||||
"53-night": "Mżawka",
|
||||
"55-day": "Ciężka mżawka",
|
||||
"55-night": "Ciężka mżawka",
|
||||
"55-day": "Gęsta mżawka",
|
||||
"55-night": "Gęsta mżawka",
|
||||
"56-day": "Lekko chłodna mżawka",
|
||||
"56-night": "Lekko chłodna mżawka",
|
||||
"57-day": "Chłodna mżawka",
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domeny",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Pamięć"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Ostrzeżenia",
|
||||
"criticals": "Krytyczny"
|
||||
@@ -905,7 +911,7 @@
|
||||
"total": "Całkowite"
|
||||
},
|
||||
"swagdashboard": {
|
||||
"proxied": "Poprzez proxy",
|
||||
"proxied": "Proxy",
|
||||
"auth": "Z uwietrzytelnieniem",
|
||||
"outdated": "Nieaktualne",
|
||||
"banned": "Zbanowano"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domínios",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Armazenamento"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Avisos",
|
||||
"criticals": "Críticos"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domínios",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Armazenamento"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Alertas",
|
||||
"criticals": "Críticos"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domenii",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Домены",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Хранилище"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Предупреждения",
|
||||
"criticals": "Критические"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domény",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Úložisko"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Upozornenia",
|
||||
"criticals": "Kritické"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Posnetki zaslona",
|
||||
"totalfilesize": "Skupna velikost"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domene",
|
||||
"mailboxes": "Nabiralniki",
|
||||
"mails": "Pošta",
|
||||
"storage": "Shramba"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Opozorila",
|
||||
"criticals": "Kritično"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Povprečno",
|
||||
"high": "Visoko",
|
||||
"disaster": "Katastrofa"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vozilo",
|
||||
"vehicles": "Vozila",
|
||||
"serviceRecords": "Zapisi servisov",
|
||||
"reminders": "Opomniki",
|
||||
"nextReminder": "Naslednji opomnik",
|
||||
"none": "Brez"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "డొమైన్లు",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Ekran görüntüleri",
|
||||
"totalfilesize": "Toplam Kapasite"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Etki Alanları",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Depo"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Uyarılar",
|
||||
"criticals": "Kritik"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Ortalama",
|
||||
"high": "Yüksek",
|
||||
"disaster": "Felaket"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Домени",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Сховище"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Попередження",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
"ping": "Ping",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"not_available": "Not Available"
|
||||
"not_available": "Không khả dụng"
|
||||
},
|
||||
"siteMonitor": {
|
||||
"http_status": "HTTP status",
|
||||
@@ -95,7 +95,7 @@
|
||||
"response": "Response",
|
||||
"down": "Down",
|
||||
"up": "Up",
|
||||
"not_available": "Not Available"
|
||||
"not_available": "Không khả dụng"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Đang chơi",
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "Domains",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "Warnings",
|
||||
"criticals": "Criticals"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "域",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "儲存空間"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "警告",
|
||||
"criticals": "嚴重"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
"uptime": "运行时间",
|
||||
"days": "天",
|
||||
"wan": "WAN",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"lan": "局域网",
|
||||
"wlan": "无线局域网",
|
||||
"devices": "设备",
|
||||
"lan_devices": "LAN 设备",
|
||||
"wlan_devices": "无线局域网设备",
|
||||
@@ -325,15 +325,15 @@
|
||||
},
|
||||
"technitium": {
|
||||
"totalQueries": "查询",
|
||||
"totalNoError": "Success",
|
||||
"totalServerFailure": "Failures",
|
||||
"totalNoError": "成功",
|
||||
"totalServerFailure": "失败",
|
||||
"totalNxDomain": "NX Domains",
|
||||
"totalRefused": "Refused",
|
||||
"totalAuthoritative": "Authoritative",
|
||||
"totalRecursive": "Recursive",
|
||||
"totalCached": "Cached",
|
||||
"totalRefused": "已拒绝",
|
||||
"totalAuthoritative": "权威",
|
||||
"totalRecursive": "递归",
|
||||
"totalCached": "缓存",
|
||||
"totalBlocked": "阻止",
|
||||
"totalDropped": "Dropped",
|
||||
"totalDropped": "丢弃",
|
||||
"totalClients": "客户端"
|
||||
},
|
||||
"tdarr": {
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "域",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "储存空间"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "警告",
|
||||
"criticals": "严重"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,6 +850,12 @@
|
||||
"screenshots": "Screenshots",
|
||||
"totalfilesize": "Total Size"
|
||||
},
|
||||
"mailcow": {
|
||||
"domains": "網域",
|
||||
"mailboxes": "Mailboxes",
|
||||
"mails": "Mails",
|
||||
"storage": "儲存空間"
|
||||
},
|
||||
"netdata": {
|
||||
"warnings": "警告",
|
||||
"criticals": "嚴重"
|
||||
@@ -939,5 +945,13 @@
|
||||
"average": "Average",
|
||||
"high": "High",
|
||||
"disaster": "Disaster"
|
||||
},
|
||||
"lubelogger": {
|
||||
"vehicle": "Vehicle",
|
||||
"vehicles": "Vehicles",
|
||||
"serviceRecords": "Service Records",
|
||||
"reminders": "Reminders",
|
||||
"nextReminder": "Next Reminder",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ export default function BookmarksGroup({ bookmarks, layout, disableCollapse, gro
|
||||
className={classNames(
|
||||
"bookmark-group",
|
||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/4 lg:basis-1/5 xl:basis-1/6",
|
||||
layout?.header === false ? "flex-1 px-1 -my-1" : "flex-1 p-1",
|
||||
layout?.header === false ? "flex-1 px-1 -my-1 overflow-hidden" : "flex-1 p-1 overflow-hidden",
|
||||
)}
|
||||
>
|
||||
<Disclosure defaultOpen={!(layout?.initiallyCollapsed ?? groupsInitiallyCollapsed) ?? true}>
|
||||
|
||||
@@ -13,6 +13,7 @@ export default function Item({ bookmark }) {
|
||||
<a
|
||||
href={bookmark.href}
|
||||
title={bookmark.name}
|
||||
rel="noreferrer"
|
||||
target={bookmark.target ?? settings.target ?? "_blank"}
|
||||
className={classNames(
|
||||
settings.cardBlur !== undefined && `backdrop-blur${settings.cardBlur.length ? "-" : ""}${settings.cardBlur}`,
|
||||
@@ -28,9 +29,9 @@ export default function Item({ bookmark }) {
|
||||
)}
|
||||
{!bookmark.icon && bookmark.abbr}
|
||||
</div>
|
||||
<div className="flex-1 flex items-center justify-between rounded-r-md bookmark-text">
|
||||
<div className="flex-1 grow pl-3 py-2 text-xs bookmark-name">{bookmark.name}</div>
|
||||
<div className="px-2 py-2 truncate text-theme-500 dark:text-theme-300 text-xs bookmark-description">
|
||||
<div className="flex-1 overflow-hidden flex items-center justify-between rounded-r-md bookmark-text">
|
||||
<div className="pl-3 py-2 text-xs bookmark-name">{bookmark.name}</div>
|
||||
<div className="shrink truncate px-2 py-2 text-theme-500 dark:text-theme-300 text-xs bookmark-description">
|
||||
{description}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -98,6 +98,12 @@ export default function QuickLaunch({ servicesAndBookmarks, searchString, setSea
|
||||
} else if (event.key === "ArrowUp" && currentItemIndex > 0) {
|
||||
setCurrentItemIndex(currentItemIndex - 1);
|
||||
event.preventDefault();
|
||||
} else if (
|
||||
event.key === "ArrowRight" &&
|
||||
results[currentItemIndex] &&
|
||||
results[currentItemIndex].type === "searchSuggestion"
|
||||
) {
|
||||
setSearchString(results[currentItemIndex].name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,35 @@ export default function ResolvedIcon({ icon, width = 32, height = 32, alt = "log
|
||||
// check mdi- or si- prefixed icons
|
||||
const prefix = icon.split("-")[0];
|
||||
|
||||
if (prefix === "sh") {
|
||||
const iconName = icon.replace("sh-", "").replace(".svg", "").replace(".png", "").replace(".webp", "");
|
||||
|
||||
let extension;
|
||||
if (icon.endsWith(".svg")) {
|
||||
extension = "svg";
|
||||
} else if (icon.endsWith(".webp")) {
|
||||
extension = "webp";
|
||||
} else {
|
||||
extension = "png";
|
||||
}
|
||||
|
||||
return (
|
||||
<Image
|
||||
src={`https://cdn.jsdelivr.net/gh/selfhst/icons@main/${extension}/${iconName}.${extension}`}
|
||||
width={width}
|
||||
height={height}
|
||||
style={{
|
||||
width,
|
||||
height,
|
||||
objectFit: "contain",
|
||||
maxHeight: "100%",
|
||||
maxWidth: "100%",
|
||||
}}
|
||||
alt={alt}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (prefix in iconSetURLs) {
|
||||
// default to theme setting
|
||||
let iconName = icon.replace(`${prefix}-`, "").replace(".svg", "");
|
||||
|
||||
@@ -25,7 +25,7 @@ export default function Uptime({ refresh = 1500 }) {
|
||||
return (
|
||||
<Resource
|
||||
icon={FaRegClock}
|
||||
value={t("common.uptime", { value: data.uptime })}
|
||||
value={t("common.duration", { value: data.uptime })}
|
||||
label={t("resources.uptime")}
|
||||
percentage={percent}
|
||||
/>
|
||||
|
||||
@@ -8,7 +8,7 @@ export default function Document() {
|
||||
name="description"
|
||||
content="A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations."
|
||||
/>
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<link rel="manifest" href="/site.webmanifest?v=4" crossOrigin="use-credentials" />
|
||||
</Head>
|
||||
<body>
|
||||
|
||||
@@ -21,7 +21,7 @@ export default async function handler(req, res) {
|
||||
|
||||
if (!widget) {
|
||||
logger.debug("Unknown proxy service type: %s", type);
|
||||
return res.status(403).json({ error: "Unkown proxy service type" });
|
||||
return res.status(403).json({ error: "Unknown proxy service type" });
|
||||
}
|
||||
|
||||
const serviceProxyHandler = widget.proxyHandler || genericProxyHandler;
|
||||
@@ -107,7 +107,7 @@ export default async function handler(req, res) {
|
||||
}
|
||||
|
||||
logger.debug("Unknown proxy service type: %s", type);
|
||||
return res.status(403).json({ error: "Unkown proxy service type" });
|
||||
return res.status(403).json({ error: "Unknown proxy service type" });
|
||||
} catch (e) {
|
||||
if (e) logger.error(e);
|
||||
return res.status(500).send({ error: "Unexpected error" });
|
||||
|
||||
@@ -2,7 +2,7 @@ import cachedFetch from "utils/proxy/cached-fetch";
|
||||
|
||||
export default async function handler(req, res) {
|
||||
const { latitude, longitude, units, cache, timezone } = req.query;
|
||||
const degrees = units === "imperial" ? "fahrenheit" : "celsius";
|
||||
const degrees = units === "metric" ? "celsius" : "fahrenheit";
|
||||
const timezeone = timezone ?? "auto";
|
||||
const apiUrl = `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}&daily=sunrise,sunset¤t_weather=true&temperature_unit=${degrees}&timezone=${timezeone}`;
|
||||
return res.send(await cachedFetch(apiUrl, cache));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/latest/configs/bookmarks
|
||||
# https://gethomepage.dev/configs/bookmarks
|
||||
|
||||
- Developer:
|
||||
- Github:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/latest/configs/docker/
|
||||
# https://gethomepage.dev/configs/docker/
|
||||
|
||||
# my-docker:
|
||||
# host: 127.0.0.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/latest/configs/services
|
||||
# https://gethomepage.dev/configs/services
|
||||
|
||||
- My First Group:
|
||||
- My First Service:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/latest/configs/settings
|
||||
# https://gethomepage.dev/configs/settings
|
||||
|
||||
providers:
|
||||
openweathermap: openweathermapapikey
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/latest/configs/service-widgets
|
||||
# https://gethomepage.dev/configs/service-widgets
|
||||
|
||||
- resources:
|
||||
cpu: true
|
||||
|
||||
@@ -368,6 +368,9 @@ export function cleanServiceGroups(groups) {
|
||||
repositoryId,
|
||||
userEmail,
|
||||
|
||||
// beszel
|
||||
systemId,
|
||||
|
||||
// calendar
|
||||
firstDayInWeek,
|
||||
integrations,
|
||||
@@ -406,7 +409,7 @@ export function cleanServiceGroups(groups) {
|
||||
// frigate
|
||||
enableRecentEvents,
|
||||
|
||||
// glances, mealie, pihole, pfsense
|
||||
// glances, immich, mealie, pihole, pfsense
|
||||
version,
|
||||
|
||||
// glances
|
||||
@@ -442,6 +445,9 @@ export function cleanServiceGroups(groups) {
|
||||
namespace,
|
||||
podSelector,
|
||||
|
||||
// lubelogger
|
||||
vehicleID,
|
||||
|
||||
// mjpeg
|
||||
fit,
|
||||
stream,
|
||||
@@ -475,6 +481,9 @@ export function cleanServiceGroups(groups) {
|
||||
// unifi
|
||||
site,
|
||||
|
||||
// vikunja
|
||||
enableTaskList,
|
||||
|
||||
// wgeasy
|
||||
threshold,
|
||||
|
||||
@@ -505,6 +514,10 @@ export function cleanServiceGroups(groups) {
|
||||
if (repositoryId) cleanedService.widget.repositoryId = repositoryId;
|
||||
}
|
||||
|
||||
if (type === "beszel") {
|
||||
if (systemId) cleanedService.widget.systemId = systemId;
|
||||
}
|
||||
|
||||
if (type === "coinmarketcap") {
|
||||
if (currency) cleanedService.widget.currency = currency;
|
||||
if (symbols) cleanedService.widget.symbols = symbols;
|
||||
@@ -565,8 +578,8 @@ export function cleanServiceGroups(groups) {
|
||||
if (snapshotHost) cleanedService.widget.snapshotHost = snapshotHost;
|
||||
if (snapshotPath) cleanedService.widget.snapshotPath = snapshotPath;
|
||||
}
|
||||
if (["glances", "mealie", "pfsense", "pihole"].includes(type)) {
|
||||
if (version) cleanedService.widget.version = version;
|
||||
if (["glances", "immich", "mealie", "pfsense", "pihole"].includes(type)) {
|
||||
if (version) cleanedService.widget.version = parseInt(version, 10);
|
||||
}
|
||||
if (type === "glances") {
|
||||
if (metric) cleanedService.widget.metric = metric;
|
||||
@@ -627,6 +640,12 @@ export function cleanServiceGroups(groups) {
|
||||
if (type === "technitium") {
|
||||
if (range !== undefined) cleanedService.widget.range = range;
|
||||
}
|
||||
if (type === "lubelogger") {
|
||||
if (vehicleID !== undefined) cleanedService.widget.vehicleID = parseInt(vehicleID, 10);
|
||||
}
|
||||
if (type === "vikunja") {
|
||||
if (enableTaskList !== undefined) cleanedService.widget.enableTaskList = !!enableTaskList;
|
||||
}
|
||||
}
|
||||
|
||||
return cleanedService;
|
||||
|
||||
@@ -39,11 +39,14 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
"authentik",
|
||||
"cloudflared",
|
||||
"ghostfolio",
|
||||
"headscale",
|
||||
"linkwarden",
|
||||
"mealie",
|
||||
"netalertx",
|
||||
"tailscale",
|
||||
"tandoor",
|
||||
"pterodactyl",
|
||||
"vikunja",
|
||||
].includes(widget.type)
|
||||
) {
|
||||
headers.Authorization = `Bearer ${widget.key}`;
|
||||
|
||||
@@ -14,11 +14,11 @@ export async function sendJsonRpcRequest(url, method, params, widget) {
|
||||
accept: "application/json",
|
||||
};
|
||||
|
||||
if (widget.username && widget.password) {
|
||||
if (widget?.username && widget?.password) {
|
||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||
}
|
||||
|
||||
if (widget.key) {
|
||||
if (widget?.key) {
|
||||
headers.Authorization = `Bearer ${widget.key}`;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,11 +39,8 @@ export default function Component({ service }) {
|
||||
<Block label="audiobookshelf.podcasts" value={t("common.number", { value: totalPodcasts })} />
|
||||
<Block
|
||||
label="audiobookshelf.podcastsDuration"
|
||||
value={t("common.number", {
|
||||
value: totalPodcastsDuration / 60,
|
||||
maximumFractionDigits: 0,
|
||||
style: "unit",
|
||||
unit: "minute",
|
||||
value={t("common.duration", {
|
||||
value: totalPodcastsDuration,
|
||||
})}
|
||||
/>
|
||||
<Block label="audiobookshelf.books" value={t("common.number", { value: totalBooks })} />
|
||||
|
||||
60
src/widgets/beszel/component.jsx
Normal file
60
src/widgets/beszel/component.jsx
Normal file
@@ -0,0 +1,60 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { widget } = service;
|
||||
const { systemId } = widget;
|
||||
|
||||
const { data: systems, error: systemsError } = useWidgetAPI(widget, "systems");
|
||||
|
||||
const MAX_ALLOWED_FIELDS = 4;
|
||||
if (!widget.fields?.length > 0) {
|
||||
widget.fields = systemId ? ["name", "status", "cpu", "memory"] : ["systems", "up"];
|
||||
}
|
||||
if (widget.fields?.length > MAX_ALLOWED_FIELDS) {
|
||||
widget.fields = widget.fields.slice(0, MAX_ALLOWED_FIELDS);
|
||||
}
|
||||
|
||||
if (systemsError) {
|
||||
return <Container service={service} error={systemsError} />;
|
||||
}
|
||||
|
||||
if (!systems) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="beszel.systems" />
|
||||
<Block label="beszel.up" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
if (systemId) {
|
||||
const system = systems.items.find((item) => item.id === systemId);
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="beszel.name" value={system.name} />
|
||||
<Block label="beszel.status" value={t(`beszel.${system.status}`)} />
|
||||
<Block label="beszel.updated" value={t("common.relativeDate", { value: system.updated })} />
|
||||
<Block label="beszel.cpu" value={t("common.percent", { value: system.info.cpu, maximumFractionDigits: 2 })} />
|
||||
<Block label="beszel.memory" value={t("common.percent", { value: system.info.mp, maximumFractionDigits: 2 })} />
|
||||
<Block label="beszel.disk" value={t("common.percent", { value: system.info.dp, maximumFractionDigits: 2 })} />
|
||||
<Block label="beszel.network" value={t("common.percent", { value: system.info.b, maximumFractionDigits: 2 })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const upTotal = systems.items.filter((item) => item.status === "up").length;
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="beszel.systems" value={systems.totalItems} />
|
||||
<Block label="beszel.up" value={`${upTotal} / ${systems.totalItems}`} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
99
src/widgets/beszel/proxy.js
Normal file
99
src/widgets/beszel/proxy.js
Normal file
@@ -0,0 +1,99 @@
|
||||
import cache from "memory-cache";
|
||||
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||
import { httpProxy } from "utils/proxy/http";
|
||||
import widgets from "widgets/widgets";
|
||||
import createLogger from "utils/logger";
|
||||
|
||||
const proxyName = "beszelProxyHandler";
|
||||
const tokenCacheKey = `${proxyName}__token`;
|
||||
const logger = createLogger(proxyName);
|
||||
|
||||
async function login(loginUrl, username, password, service) {
|
||||
const authResponse = await httpProxy(loginUrl, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ identity: username, password }),
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
|
||||
const status = authResponse[0];
|
||||
let data = authResponse[2];
|
||||
try {
|
||||
data = JSON.parse(Buffer.from(authResponse[2]).toString());
|
||||
|
||||
if (status === 200) {
|
||||
cache.put(`${tokenCacheKey}.${service}`, data.token);
|
||||
}
|
||||
} catch (e) {
|
||||
logger.error(`Error ${status} logging into beszel`, JSON.stringify(authResponse[2]));
|
||||
}
|
||||
return [status, data.token ?? data];
|
||||
}
|
||||
|
||||
export default async function beszelProxyHandler(req, res) {
|
||||
const { group, service, endpoint } = req.query;
|
||||
|
||||
if (group && service) {
|
||||
const widget = await getServiceWidget(group, service);
|
||||
|
||||
if (!widgets?.[widget.type]?.api) {
|
||||
return res.status(403).json({ error: "Service does not support API calls" });
|
||||
}
|
||||
|
||||
if (widget) {
|
||||
const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget }));
|
||||
const loginUrl = formatApiCall(widgets[widget.type].api, { endpoint: "admins/auth-with-password", ...widget });
|
||||
|
||||
let status;
|
||||
let data;
|
||||
|
||||
let token = cache.get(`${tokenCacheKey}.${service}`);
|
||||
if (!token) {
|
||||
[status, token] = await login(loginUrl, widget.username, widget.password, service);
|
||||
if (status !== 200) {
|
||||
logger.debug(`HTTTP ${status} logging into npm api: ${token}`);
|
||||
return res.status(status).send(token);
|
||||
}
|
||||
}
|
||||
|
||||
[status, , data] = await httpProxy(url, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
|
||||
if (status === 403) {
|
||||
logger.debug(`HTTTP ${status} retrieving data from npm api, logging in and trying again.`);
|
||||
cache.del(`${tokenCacheKey}.${service}`);
|
||||
[status, token] = await login(loginUrl, widget.username, widget.password, service);
|
||||
|
||||
if (status !== 200) {
|
||||
logger.debug(`HTTTP ${status} logging into npm api: ${data}`);
|
||||
return res.status(status).send(data);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
[status, , data] = await httpProxy(url, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
if (status !== 200) {
|
||||
return res.status(status).send(data);
|
||||
}
|
||||
|
||||
return res.send(data);
|
||||
}
|
||||
}
|
||||
|
||||
return res.status(400).json({ error: "Invalid proxy service type" });
|
||||
}
|
||||
14
src/widgets/beszel/widget.js
Normal file
14
src/widgets/beszel/widget.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import beszelProxyHandler from "./proxy";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/{endpoint}",
|
||||
proxyHandler: beszelProxyHandler,
|
||||
|
||||
mappings: {
|
||||
systems: {
|
||||
endpoint: "collections/systems/records?page=1&perPage=500&sort=%2Bcreated",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -8,6 +8,7 @@ const components = {
|
||||
autobrr: dynamic(() => import("./autobrr/component")),
|
||||
azuredevops: dynamic(() => import("./azuredevops/component")),
|
||||
bazarr: dynamic(() => import("./bazarr/component")),
|
||||
beszel: dynamic(() => import("./beszel/component")),
|
||||
caddy: dynamic(() => import("./caddy/component")),
|
||||
calendar: dynamic(() => import("./calendar/component")),
|
||||
calibreweb: dynamic(() => import("./calibreweb/component")),
|
||||
@@ -41,6 +42,7 @@ const components = {
|
||||
gotify: dynamic(() => import("./gotify/component")),
|
||||
grafana: dynamic(() => import("./grafana/component")),
|
||||
hdhomerun: dynamic(() => import("./hdhomerun/component")),
|
||||
headscale: dynamic(() => import("./headscale/component")),
|
||||
peanut: dynamic(() => import("./peanut/component")),
|
||||
homeassistant: dynamic(() => import("./homeassistant/component")),
|
||||
homebox: dynamic(() => import("./homebox/component")),
|
||||
@@ -56,6 +58,8 @@ const components = {
|
||||
kopia: dynamic(() => import("./kopia/component")),
|
||||
lidarr: dynamic(() => import("./lidarr/component")),
|
||||
linkwarden: dynamic(() => import("./linkwarden/component")),
|
||||
lubelogger: dynamic(() => import("./lubelogger/component")),
|
||||
mailcow: dynamic(() => import("./mailcow/component")),
|
||||
mastodon: dynamic(() => import("./mastodon/component")),
|
||||
mealie: dynamic(() => import("./mealie/component")),
|
||||
medusa: dynamic(() => import("./medusa/component")),
|
||||
@@ -123,6 +127,7 @@ const components = {
|
||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||
uptimerobot: dynamic(() => import("./uptimerobot/component")),
|
||||
urbackup: dynamic(() => import("./urbackup/component")),
|
||||
vikunja: dynamic(() => import("./vikunja/component")),
|
||||
watchtower: dynamic(() => import("./watchtower/component")),
|
||||
wgeasy: dynamic(() => import("./wgeasy/component")),
|
||||
whatsupdocker: dynamic(() => import("./whatsupdocker/component")),
|
||||
|
||||
@@ -40,7 +40,7 @@ export default function Component({ service }) {
|
||||
/>
|
||||
<Block
|
||||
label="frigate.uptime"
|
||||
value={t("common.uptime", {
|
||||
value={t("common.duration", {
|
||||
value: data.uptime,
|
||||
})}
|
||||
/>
|
||||
|
||||
@@ -44,7 +44,7 @@ export default function Component({ service }) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="fritzbox.connectionStatus" value={t(`fritzbox.connectionStatus${fritzboxData.connectionStatus}`)} />
|
||||
<Block label="fritzbox.uptime" value={t("common.uptime", { value: fritzboxData.uptime })} />
|
||||
<Block label="fritzbox.uptime" value={t("common.duration", { value: fritzboxData.uptime })} />
|
||||
<Block label="fritzbox.maxDown" value={t("common.byterate", { value: fritzboxData.maxDown / 8, decimals: 1 })} />
|
||||
<Block label="fritzbox.maxUp" value={t("common.byterate", { value: fritzboxData.maxUp / 8, decimals: 1 })} />
|
||||
<Block label="fritzbox.down" value={t("common.byterate", { value: fritzboxData.down, decimals: 1 })} />
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user