Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ff099fba1 |
+1
-1
@@ -1 +1 @@
|
|||||||
22.20.0
|
22.19.0
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ jobs:
|
|||||||
- name: Run pnpm install
|
- name: Run pnpm install
|
||||||
run: pnpm rebuild && pnpm install --frozen-lockfile
|
run: pnpm rebuild && pnpm install --frozen-lockfile
|
||||||
- name: Run linter
|
- name: Run linter
|
||||||
run: pnpm lint:p
|
run: pnpm lint
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
- name: Run formatter
|
- name: Run formatter
|
||||||
run: pnpm format
|
run: pnpm format
|
||||||
|
|||||||
@@ -91,8 +91,6 @@ format-%:
|
|||||||
pnpm --filter $(call map-package,$*) run format:fix
|
pnpm --filter $(call map-package,$*) run format:fix
|
||||||
lint-%:
|
lint-%:
|
||||||
pnpm --filter $(call map-package,$*) run lint:fix
|
pnpm --filter $(call map-package,$*) run lint:fix
|
||||||
lint-web:
|
|
||||||
pnpm --filter $(call map-package,$*) run lint:p
|
|
||||||
check-%:
|
check-%:
|
||||||
pnpm --filter $(call map-package,$*) run check
|
pnpm --filter $(call map-package,$*) run check
|
||||||
check-web:
|
check-web:
|
||||||
|
|||||||
@@ -38,25 +38,26 @@
|
|||||||
<a href="readme_i18n/README_th_TH.md">ภาษาไทย</a>
|
<a href="readme_i18n/README_th_TH.md">ภาษาไทย</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
## Disclaimer
|
||||||
|
|
||||||
> [!WARNING]
|
- ⚠️ The project is under **very active** development.
|
||||||
> ⚠️ Always follow [3-2-1](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) backup plan for your precious photos and videos!
|
- ⚠️ Expect bugs and breaking changes.
|
||||||
>
|
- ⚠️ **Do not use the app as the only way to store your photos and videos.**
|
||||||
|
- ⚠️ Always follow [3-2-1](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) backup plan for your precious photos and videos!
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> You can find the main documentation, including installation guides, at https://immich.app/.
|
> You can find the main documentation, including installation guides, at https://immich.app/.
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
- [Documentation](https://docs.immich.app/)
|
- [Documentation](https://immich.app/docs)
|
||||||
- [About](https://docs.immich.app/overview/introduction)
|
- [About](https://immich.app/docs/overview/introduction)
|
||||||
- [Installation](https://docs.immich.app/install/requirements)
|
- [Installation](https://immich.app/docs/install/requirements)
|
||||||
- [Roadmap](https://immich.app/roadmap)
|
- [Roadmap](https://immich.app/roadmap)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
- [Translations](https://docs.immich.app/developer/translations)
|
- [Translations](https://immich.app/docs/developer/translations)
|
||||||
- [Contributing](https://docs.immich.app/overview/support-the-project)
|
- [Contributing](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
@@ -105,7 +106,7 @@ Access the demo [here](https://demo.immich.app). For the mobile app, you can use
|
|||||||
|
|
||||||
## Translations
|
## Translations
|
||||||
|
|
||||||
Read more about translations [here](https://docs.immich.app/developer/translations).
|
Read more about translations [here](https://immich.app/docs/developer/translations).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
22.20.0
|
22.19.0
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
A command-line interface for interfacing with the self-hosted photo manager [Immich](https://immich.app/).
|
A command-line interface for interfacing with the self-hosted photo manager [Immich](https://immich.app/).
|
||||||
|
|
||||||
Please see the [Immich CLI documentation](https://docs.immich.app/features/command-line-interface).
|
Please see the [Immich CLI documentation](https://immich.app/docs/features/command-line-interface).
|
||||||
|
|
||||||
# For developers
|
# For developers
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.95",
|
"version": "2.2.94",
|
||||||
"description": "Command Line Interface (CLI) for Immich",
|
"description": "Command Line Interface (CLI) for Immich",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": "./dist/index.js",
|
"exports": "./dist/index.js",
|
||||||
@@ -68,6 +68,6 @@
|
|||||||
"micromatch": "^4.0.8"
|
"micromatch": "^4.0.8"
|
||||||
},
|
},
|
||||||
"volta": {
|
"volta": {
|
||||||
"node": "22.20.0"
|
"node": "22.19.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
|
||||||
#
|
#
|
||||||
# Make sure to use the docker-compose.yml of the current release:
|
# Make sure to use the docker-compose.yml of the current release:
|
||||||
#
|
#
|
||||||
@@ -8,8 +8,8 @@
|
|||||||
# The compose file on main may not be compatible with the latest release.
|
# The compose file on main may not be compatible with the latest release.
|
||||||
|
|
||||||
# For development see:
|
# For development see:
|
||||||
# - https://docs.immich.app/developer/setup
|
# - https://immich.app/docs/developer/setup
|
||||||
# - https://docs.immich.app/developer/troubleshooting
|
# - https://immich.app/docs/developer/troubleshooting
|
||||||
|
|
||||||
name: immich-dev
|
name: immich-dev
|
||||||
|
|
||||||
@@ -55,8 +55,8 @@ services:
|
|||||||
IMMICH_BUILD_IMAGE_URL: https://github.com/immich-app/immich/pkgs/container/immich-server
|
IMMICH_BUILD_IMAGE_URL: https://github.com/immich-app/immich/pkgs/container/immich-server
|
||||||
IMMICH_THIRD_PARTY_SOURCE_URL: https://github.com/immich-app/immich/
|
IMMICH_THIRD_PARTY_SOURCE_URL: https://github.com/immich-app/immich/
|
||||||
IMMICH_THIRD_PARTY_BUG_FEATURE_URL: https://github.com/immich-app/immich/issues
|
IMMICH_THIRD_PARTY_BUG_FEATURE_URL: https://github.com/immich-app/immich/issues
|
||||||
IMMICH_THIRD_PARTY_DOCUMENTATION_URL: https://docs.immich.app
|
IMMICH_THIRD_PARTY_DOCUMENTATION_URL: https://immich.app/docs
|
||||||
IMMICH_THIRD_PARTY_SUPPORT_URL: https://docs.immich.app/community-guides
|
IMMICH_THIRD_PARTY_SUPPORT_URL: https://immich.app/docs/community-guides
|
||||||
ulimits:
|
ulimits:
|
||||||
nofile:
|
nofile:
|
||||||
soft: 1048576
|
soft: 1048576
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
|
||||||
#
|
#
|
||||||
# Make sure to use the docker-compose.yml of the current release:
|
# Make sure to use the docker-compose.yml of the current release:
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
|
||||||
#
|
#
|
||||||
# Make sure to use the docker-compose.yml of the current release:
|
# Make sure to use the docker-compose.yml of the current release:
|
||||||
#
|
#
|
||||||
@@ -36,7 +36,7 @@ services:
|
|||||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
||||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
|
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables
|
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
|
||||||
|
|
||||||
# The location where your uploaded files are stored
|
# The location where your uploaded files are stored
|
||||||
UPLOAD_LOCATION=./library
|
UPLOAD_LOCATION=./library
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# you can inline the config for a backend by copying its contents
|
# you can inline the config for a backend by copying its contents
|
||||||
# into the immich-machine-learning service in the docker-compose.yml file.
|
# into the immich-machine-learning service in the docker-compose.yml file.
|
||||||
|
|
||||||
# See https://docs.immich.app/features/ml-hardware-acceleration for info on usage.
|
# See https://immich.app/docs/features/ml-hardware-acceleration for info on usage.
|
||||||
|
|
||||||
services:
|
services:
|
||||||
armnn:
|
armnn:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# you can inline the config for a backend by copying its contents
|
# you can inline the config for a backend by copying its contents
|
||||||
# into the immich-microservices service in the docker-compose.yml file.
|
# into the immich-microservices service in the docker-compose.yml file.
|
||||||
|
|
||||||
# See https://docs.immich.app/features/hardware-transcoding for more info on using hardware transcoding.
|
# See https://immich.app/docs/features/hardware-transcoding for more info on using hardware transcoding.
|
||||||
|
|
||||||
services:
|
services:
|
||||||
cpu: {}
|
cpu: {}
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
22.20.0
|
22.19.0
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 65
|
|
||||||
---
|
|
||||||
|
|
||||||
# One-Click [Cloud Service]
|
|
||||||
|
|
||||||
:::note
|
|
||||||
This version of Immich is provided via cloud service provider's one-click marketplaces. Hosting costs are set by the cloud service providers.
|
|
||||||
Support for these are provided by the individual cloud service providers.
|
|
||||||
|
|
||||||
**Please report issues to the corresponding [Github Repository][github].**
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
Simply goto the providers marketplace and choose Immich, then follow the provided instructions.
|
|
||||||
|
|
||||||
## One-Click Immich marketplace providers
|
|
||||||
|
|
||||||
### DigitalOcean
|
|
||||||
|
|
||||||
https://marketplace.digitalocean.com/apps/immich
|
|
||||||
|
|
||||||
### Vultr
|
|
||||||
|
|
||||||
https://www.vultr.com/marketplace/apps/immich
|
|
||||||
|
|
||||||
## Issues
|
|
||||||
|
|
||||||
For issues, open an issue on the associated [GitHub Repository][github].
|
|
||||||
|
|
||||||
[github]: https://github.com/imagegenius/docker-immich/
|
|
||||||
@@ -4,7 +4,9 @@ sidebar_position: 95
|
|||||||
|
|
||||||
# Upgrading
|
# Upgrading
|
||||||
|
|
||||||
:::tip Breaking changes
|
:::danger Read the release notes
|
||||||
|
Immich is currently under heavy development, which means you can expect [breaking changes][breaking] and bugs. You should read the release notes prior to updating and take special care when using automated tools like [Watchtower][watchtower].
|
||||||
|
|
||||||
You can see versions that had breaking changes [here][breaking].
|
You can see versions that had breaking changes [here][breaking].
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
Now that you have imported some pictures, you should setup server backups to preserve your memories.
|
Now that you have imported some pictures, you should setup server backups to preserve your memories.
|
||||||
You can do so by following our [backup guide](/administration/backup-and-restore.md).
|
You can do so by following our [backup guide](/administration/backup-and-restore.md).
|
||||||
|
|
||||||
:::info
|
:::danger
|
||||||
A 3-2-1 backup strategy is still crucial. The team has the responsibility to ensure that the application doesn’t cause loss of your precious memories; however, we cannot guarantee that hard drives will not fail, or an electrical event causes unexpected shutdown of your server/system, leading to data loss. Therefore, we still encourage users to follow best practices when safeguarding their data. Keep multiple copies of your most precious data: at least two local copies and one copy offsite in cold storage.
|
Immich is still under heavy development _and_ handles very important data.
|
||||||
|
It is essential that you set up good backups, and test them.
|
||||||
:::
|
:::
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ const prism = require('prism-react-renderer');
|
|||||||
const config = {
|
const config = {
|
||||||
title: 'Immich',
|
title: 'Immich',
|
||||||
tagline: 'High performance self-hosted photo and video backup solution directly from your mobile phone',
|
tagline: 'High performance self-hosted photo and video backup solution directly from your mobile phone',
|
||||||
url: 'https://docs.immich.app',
|
url: 'https://immich.app',
|
||||||
baseUrl: '/',
|
baseUrl: '/',
|
||||||
onBrokenLinks: 'throw',
|
onBrokenLinks: 'throw',
|
||||||
onBrokenMarkdownLinks: 'warn',
|
onBrokenMarkdownLinks: 'warn',
|
||||||
@@ -65,6 +65,11 @@ const config = {
|
|||||||
themeConfig:
|
themeConfig:
|
||||||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||||
({
|
({
|
||||||
|
announcementBar: {
|
||||||
|
id: 'site_announcement_immich',
|
||||||
|
content: `⚠️ The project is under <strong>very active</strong> development. Expect bugs and changes. Do not use it as <strong>the only way</strong> to store your photos and videos!`,
|
||||||
|
isCloseable: false,
|
||||||
|
},
|
||||||
docs: {
|
docs: {
|
||||||
sidebar: {
|
sidebar: {
|
||||||
autoCollapseCategories: false,
|
autoCollapseCategories: false,
|
||||||
|
|||||||
+1
-1
@@ -57,6 +57,6 @@
|
|||||||
"node": ">=20"
|
"node": ">=20"
|
||||||
},
|
},
|
||||||
"volta": {
|
"volta": {
|
||||||
"node": "22.20.0"
|
"node": "22.19.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
-4
@@ -1,8 +1,4 @@
|
|||||||
[
|
[
|
||||||
{
|
|
||||||
"label": "v2.0.0",
|
|
||||||
"url": "https://docs.v2.0.0.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "v1.144.1",
|
"label": "v1.144.1",
|
||||||
"url": "https://docs.v1.144.1.archive.immich.app"
|
"url": "https://docs.v1.144.1.archive.immich.app"
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
22.20.0
|
22.19.0
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "2.0.0",
|
"version": "1.144.1",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -52,6 +52,6 @@
|
|||||||
"vitest": "^3.0.0"
|
"vitest": "^3.0.0"
|
||||||
},
|
},
|
||||||
"volta": {
|
"volta": {
|
||||||
"node": "22.20.0"
|
"node": "22.19.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "immich-ml"
|
name = "immich-ml"
|
||||||
version = "2.0.0"
|
version = "1.144.1"
|
||||||
description = ""
|
description = ""
|
||||||
authors = [{ name = "Hau Tran", email = "alex.tran1502@gmail.com" }]
|
authors = [{ name = "Hau Tran", email = "alex.tran1502@gmail.com" }]
|
||||||
requires-python = ">=3.10,<4.0"
|
requires-python = ">=3.10,<4.0"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[tools]
|
[tools]
|
||||||
node = "22.20.0"
|
node = "22.19.0"
|
||||||
flutter = "3.35.4"
|
flutter = "3.35.4"
|
||||||
pnpm = "10.15.1"
|
pnpm = "10.15.1"
|
||||||
|
|
||||||
@@ -278,12 +278,7 @@ run = "prettier --write ."
|
|||||||
[tasks."web:lint"]
|
[tasks."web:lint"]
|
||||||
env._.path = "web/node_modules/.bin"
|
env._.path = "web/node_modules/.bin"
|
||||||
dir = "web"
|
dir = "web"
|
||||||
run = "eslint . --max-warnings 0"
|
run = "eslint . --max-warnings 0 --concurrency 4"
|
||||||
|
|
||||||
[tasks."web:lint-p"]
|
|
||||||
env._.path = "web/node_modules/.bin"
|
|
||||||
dir = "web"
|
|
||||||
run = "eslint-p . --max-warnings 0 --concurrency=4"
|
|
||||||
|
|
||||||
[tasks."web:lint-fix"]
|
[tasks."web:lint-fix"]
|
||||||
run = "mise run web:lint --fix"
|
run = "mise run web:lint --fix"
|
||||||
|
|||||||
+1
-1
@@ -84,4 +84,4 @@ Below is how your code needs to be structured:
|
|||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Please refer to the [architecture](https://docs.immich.app/developer/architecture/) for contributing to the mobile app!
|
Please refer to the [architecture](https://immich.app/docs/developer/architecture/) for contributing to the mobile app!
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ platform :android do
|
|||||||
task: 'bundle',
|
task: 'bundle',
|
||||||
build_type: 'Release',
|
build_type: 'Release',
|
||||||
properties: {
|
properties: {
|
||||||
"android.injected.version.code" => 3020,
|
"android.injected.version.code" => 3019,
|
||||||
"android.injected.version.name" => "2.0.0",
|
"android.injected.version.name" => "1.144.1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')
|
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')
|
||||||
|
|||||||
@@ -705,7 +705,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
CUSTOM_GROUP_ID = group.app.immich.share;
|
CUSTOM_GROUP_ID = group.app.immich.share;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
@@ -849,7 +849,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
CUSTOM_GROUP_ID = group.app.immich.share;
|
CUSTOM_GROUP_ID = group.app.immich.share;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
@@ -879,7 +879,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
CUSTOM_GROUP_ID = group.app.immich.share;
|
CUSTOM_GROUP_ID = group.app.immich.share;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
@@ -913,7 +913,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||||
@@ -956,7 +956,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||||
@@ -996,7 +996,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||||
@@ -1035,7 +1035,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
CUSTOM_GROUP_ID = group.app.immich.share;
|
CUSTOM_GROUP_ID = group.app.immich.share;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
@@ -1079,7 +1079,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
CUSTOM_GROUP_ID = group.app.immich.share;
|
CUSTOM_GROUP_ID = group.app.immich.share;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
@@ -1120,7 +1120,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 227;
|
CURRENT_PROJECT_VERSION = 226;
|
||||||
CUSTOM_GROUP_ID = group.app.immich.share;
|
CUSTOM_GROUP_ID = group.app.immich.share;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.144.0</string>
|
<string>1.143.1</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>227</string>
|
<string>226</string>
|
||||||
<key>FLTEnableImpeller</key>
|
<key>FLTEnableImpeller</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ platform :ios do
|
|||||||
path: "./Runner.xcodeproj",
|
path: "./Runner.xcodeproj",
|
||||||
)
|
)
|
||||||
increment_version_number(
|
increment_version_number(
|
||||||
version_number: "2.0.0"
|
version_number: "1.144.1"
|
||||||
)
|
)
|
||||||
increment_build_number(
|
increment_build_number(
|
||||||
build_number: latest_testflight_build_number + 1,
|
build_number: latest_testflight_build_number + 1,
|
||||||
|
|||||||
@@ -84,8 +84,8 @@ class AssetService {
|
|||||||
return 1.0;
|
return 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<(String, String)>> getPlaces(String userId) {
|
Future<List<(String, String)>> getPlaces() {
|
||||||
return _remoteAssetRepository.getPlaces(userId);
|
return _remoteAssetRepository.getPlaces();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<(int local, int remote)> getAssetCounts() async {
|
Future<(int local, int remote)> getAssetCounts() async {
|
||||||
|
|||||||
@@ -59,8 +59,7 @@ class TimelineFactory {
|
|||||||
|
|
||||||
TimelineService fromAssets(List<BaseAsset> assets) => TimelineService(_timelineRepository.fromAssets(assets));
|
TimelineService fromAssets(List<BaseAsset> assets) => TimelineService(_timelineRepository.fromAssets(assets));
|
||||||
|
|
||||||
TimelineService map(String userId, LatLngBounds bounds) =>
|
TimelineService map(LatLngBounds bounds) => TimelineService(_timelineRepository.map(bounds, groupBy));
|
||||||
TimelineService(_timelineRepository.map(userId, bounds, groupBy));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class TimelineService {
|
class TimelineService {
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class DriftBackupRepository extends DriftDatabaseRepository {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<LocalAsset>> getCandidates(String userId, {bool onlyHashed = true}) async {
|
Future<List<LocalAsset>> getCandidates(String userId) async {
|
||||||
final selectedAlbumIds = _db.localAlbumEntity.selectOnly(distinct: true)
|
final selectedAlbumIds = _db.localAlbumEntity.selectOnly(distinct: true)
|
||||||
..addColumns([_db.localAlbumEntity.id])
|
..addColumns([_db.localAlbumEntity.id])
|
||||||
..where(_db.localAlbumEntity.backupSelection.equalsValue(BackupSelection.selected));
|
..where(_db.localAlbumEntity.backupSelection.equalsValue(BackupSelection.selected));
|
||||||
@@ -89,6 +89,7 @@ class DriftBackupRepository extends DriftDatabaseRepository {
|
|||||||
final query = _db.localAssetEntity.select()
|
final query = _db.localAssetEntity.select()
|
||||||
..where(
|
..where(
|
||||||
(lae) =>
|
(lae) =>
|
||||||
|
lae.checksum.isNotNull() &
|
||||||
existsQuery(
|
existsQuery(
|
||||||
_db.localAlbumAssetEntity.selectOnly()
|
_db.localAlbumAssetEntity.selectOnly()
|
||||||
..addColumns([_db.localAlbumAssetEntity.assetId])
|
..addColumns([_db.localAlbumAssetEntity.assetId])
|
||||||
@@ -108,10 +109,6 @@ class DriftBackupRepository extends DriftDatabaseRepository {
|
|||||||
)
|
)
|
||||||
..orderBy([(localAsset) => OrderingTerm.desc(localAsset.createdAt)]);
|
..orderBy([(localAsset) => OrderingTerm.desc(localAsset.createdAt)]);
|
||||||
|
|
||||||
if (onlyHashed) {
|
|
||||||
query.where((lae) => lae.checksum.isNotNull());
|
|
||||||
}
|
|
||||||
|
|
||||||
return query.map((localAsset) => localAsset.toDto()).get();
|
return query.map((localAsset) => localAsset.toDto()).get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,11 +81,9 @@ class RemoteAssetRepository extends DriftDatabaseRepository {
|
|||||||
.getSingleOrNull();
|
.getSingleOrNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<(String, String)>> getPlaces(String userId) {
|
Future<List<(String, String)>> getPlaces() {
|
||||||
final asset = Subquery(
|
final asset = Subquery(
|
||||||
_db.remoteAssetEntity.select()
|
_db.remoteAssetEntity.select()..orderBy([(row) => OrderingTerm.desc(row.createdAt)]),
|
||||||
..where((row) => row.ownerId.equals(userId))
|
|
||||||
..orderBy([(row) => OrderingTerm.desc(row.createdAt)]),
|
|
||||||
"asset",
|
"asset",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -431,16 +431,12 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||||||
return query.map((row) => row.readTable(_db.remoteAssetEntity).toDto()).get();
|
return query.map((row) => row.readTable(_db.remoteAssetEntity).toDto()).get();
|
||||||
}
|
}
|
||||||
|
|
||||||
TimelineQuery map(String userId, LatLngBounds bounds, GroupAssetsBy groupBy) => (
|
TimelineQuery map(LatLngBounds bounds, GroupAssetsBy groupBy) => (
|
||||||
bucketSource: () => _watchMapBucket(userId, bounds, groupBy: groupBy),
|
bucketSource: () => _watchMapBucket(bounds, groupBy: groupBy),
|
||||||
assetSource: (offset, count) => _getMapBucketAssets(userId, bounds, offset: offset, count: count),
|
assetSource: (offset, count) => _getMapBucketAssets(bounds, offset: offset, count: count),
|
||||||
);
|
);
|
||||||
|
|
||||||
Stream<List<Bucket>> _watchMapBucket(
|
Stream<List<Bucket>> _watchMapBucket(LatLngBounds bounds, {GroupAssetsBy groupBy = GroupAssetsBy.day}) {
|
||||||
String userId,
|
|
||||||
LatLngBounds bounds, {
|
|
||||||
GroupAssetsBy groupBy = GroupAssetsBy.day,
|
|
||||||
}) {
|
|
||||||
if (groupBy == GroupAssetsBy.none) {
|
if (groupBy == GroupAssetsBy.none) {
|
||||||
// TODO: Support GroupAssetsBy.none
|
// TODO: Support GroupAssetsBy.none
|
||||||
throw UnsupportedError("GroupAssetsBy.none is not supported for _watchMapBucket");
|
throw UnsupportedError("GroupAssetsBy.none is not supported for _watchMapBucket");
|
||||||
@@ -459,8 +455,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||||||
),
|
),
|
||||||
])
|
])
|
||||||
..where(
|
..where(
|
||||||
_db.remoteAssetEntity.ownerId.equals(userId) &
|
_db.remoteExifEntity.inBounds(bounds) &
|
||||||
_db.remoteExifEntity.inBounds(bounds) &
|
|
||||||
_db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline) &
|
_db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline) &
|
||||||
_db.remoteAssetEntity.deletedAt.isNull(),
|
_db.remoteAssetEntity.deletedAt.isNull(),
|
||||||
)
|
)
|
||||||
@@ -474,12 +469,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||||||
}).watch();
|
}).watch();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<BaseAsset>> _getMapBucketAssets(
|
Future<List<BaseAsset>> _getMapBucketAssets(LatLngBounds bounds, {required int offset, required int count}) {
|
||||||
String userId,
|
|
||||||
LatLngBounds bounds, {
|
|
||||||
required int offset,
|
|
||||||
required int count,
|
|
||||||
}) {
|
|
||||||
final query =
|
final query =
|
||||||
_db.remoteAssetEntity.select().join([
|
_db.remoteAssetEntity.select().join([
|
||||||
innerJoin(
|
innerJoin(
|
||||||
@@ -489,8 +479,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||||||
),
|
),
|
||||||
])
|
])
|
||||||
..where(
|
..where(
|
||||||
_db.remoteAssetEntity.ownerId.equals(userId) &
|
_db.remoteExifEntity.inBounds(bounds) &
|
||||||
_db.remoteExifEntity.inBounds(bounds) &
|
|
||||||
_db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline) &
|
_db.remoteAssetEntity.visibility.equalsValue(AssetVisibility.timeline) &
|
||||||
_db.remoteAssetEntity.deletedAt.isNull(),
|
_db.remoteAssetEntity.deletedAt.isNull(),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:immich_mobile/presentation/widgets/bottom_sheet/base_bottom_shee
|
|||||||
import 'package:immich_mobile/presentation/widgets/map/map.state.dart';
|
import 'package:immich_mobile/presentation/widgets/map/map.state.dart';
|
||||||
import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart';
|
import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart';
|
||||||
import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart';
|
import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart';
|
||||||
import 'package:immich_mobile/providers/user.provider.dart';
|
|
||||||
|
|
||||||
class MapBottomSheet extends StatelessWidget {
|
class MapBottomSheet extends StatelessWidget {
|
||||||
const MapBottomSheet({super.key});
|
const MapBottomSheet({super.key});
|
||||||
@@ -33,13 +32,8 @@ class _ScopedMapTimeline extends StatelessWidget {
|
|||||||
return ProviderScope(
|
return ProviderScope(
|
||||||
overrides: [
|
overrides: [
|
||||||
timelineServiceProvider.overrideWith((ref) {
|
timelineServiceProvider.overrideWith((ref) {
|
||||||
final user = ref.watch(currentUserProvider);
|
|
||||||
if (user == null) {
|
|
||||||
throw Exception('User must be logged in to access archive');
|
|
||||||
}
|
|
||||||
|
|
||||||
final bounds = ref.watch(mapStateProvider).bounds;
|
final bounds = ref.watch(mapStateProvider).bounds;
|
||||||
final timelineService = ref.watch(timelineFactoryProvider).map(user.id, bounds);
|
final timelineService = ref.watch(timelineFactoryProvider).map(bounds);
|
||||||
ref.onDispose(timelineService.dispose);
|
ref.onDispose(timelineService.dispose);
|
||||||
return timelineService;
|
return timelineService;
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -405,7 +405,7 @@ final driftBackupCandidateProvider = FutureProvider.autoDispose<List<LocalAsset>
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
return ref.read(backupRepositoryProvider).getCandidates(user.id, onlyHashed: false);
|
return ref.read(backupRepositoryProvider).getCandidates(user.id);
|
||||||
});
|
});
|
||||||
|
|
||||||
final driftCandidateBackupAlbumInfoProvider = FutureProvider.autoDispose.family<List<LocalAlbum>, String>((
|
final driftCandidateBackupAlbumInfoProvider = FutureProvider.autoDispose.family<List<LocalAlbum>, String>((
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import 'package:immich_mobile/domain/services/asset.service.dart';
|
|||||||
import 'package:immich_mobile/infrastructure/repositories/local_asset.repository.dart';
|
import 'package:immich_mobile/infrastructure/repositories/local_asset.repository.dart';
|
||||||
import 'package:immich_mobile/infrastructure/repositories/remote_asset.repository.dart';
|
import 'package:immich_mobile/infrastructure/repositories/remote_asset.repository.dart';
|
||||||
import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
|
import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
|
||||||
import 'package:immich_mobile/providers/user.provider.dart';
|
|
||||||
|
|
||||||
final localAssetRepository = Provider<DriftLocalAssetRepository>(
|
final localAssetRepository = Provider<DriftLocalAssetRepository>(
|
||||||
(ref) => DriftLocalAssetRepository(ref.watch(driftProvider)),
|
(ref) => DriftLocalAssetRepository(ref.watch(driftProvider)),
|
||||||
@@ -20,13 +19,9 @@ final assetServiceProvider = Provider(
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final placesProvider = FutureProvider<List<(String, String)>>((ref) {
|
final placesProvider = FutureProvider<List<(String, String)>>(
|
||||||
final assetService = ref.watch(assetServiceProvider);
|
(ref) => AssetService(
|
||||||
final auth = ref.watch(currentUserProvider);
|
remoteAssetRepository: ref.watch(remoteAssetRepositoryProvider),
|
||||||
|
localAssetRepository: ref.watch(localAssetRepository),
|
||||||
if (auth == null) {
|
).getPlaces(),
|
||||||
return Future.value(const []);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
return assetService.getPlaces(auth.id);
|
|
||||||
});
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import 'package:immich_mobile/domain/models/store.model.dart';
|
|||||||
import 'package:immich_mobile/entities/asset.entity.dart' as asset_entity;
|
import 'package:immich_mobile/entities/asset.entity.dart' as asset_entity;
|
||||||
import 'package:immich_mobile/entities/store.entity.dart';
|
import 'package:immich_mobile/entities/store.entity.dart';
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
import 'package:immich_mobile/extensions/platform_extensions.dart';
|
|
||||||
import 'package:immich_mobile/extensions/response_extensions.dart';
|
import 'package:immich_mobile/extensions/response_extensions.dart';
|
||||||
import 'package:immich_mobile/repositories/asset_api.repository.dart';
|
import 'package:immich_mobile/repositories/asset_api.repository.dart';
|
||||||
import 'package:immich_mobile/utils/hash.dart';
|
import 'package:immich_mobile/utils/hash.dart';
|
||||||
@@ -73,7 +72,6 @@ class AssetMediaRepository {
|
|||||||
// TODO: make this more efficient
|
// TODO: make this more efficient
|
||||||
Future<int> shareAssets(List<BaseAsset> assets, BuildContext context) async {
|
Future<int> shareAssets(List<BaseAsset> assets, BuildContext context) async {
|
||||||
final downloadedXFiles = <XFile>[];
|
final downloadedXFiles = <XFile>[];
|
||||||
final tempFiles = <File>[];
|
|
||||||
|
|
||||||
for (var asset in assets) {
|
for (var asset in assets) {
|
||||||
final localId = (asset is LocalAsset)
|
final localId = (asset is LocalAsset)
|
||||||
@@ -84,9 +82,6 @@ class AssetMediaRepository {
|
|||||||
if (localId != null) {
|
if (localId != null) {
|
||||||
File? f = await AssetEntity(id: localId, width: 1, height: 1, typeInt: 0).originFile;
|
File? f = await AssetEntity(id: localId, width: 1, height: 1, typeInt: 0).originFile;
|
||||||
downloadedXFiles.add(XFile(f!.path));
|
downloadedXFiles.add(XFile(f!.path));
|
||||||
if (CurrentPlatform.isIOS) {
|
|
||||||
tempFiles.add(f);
|
|
||||||
}
|
|
||||||
} else if (asset is RemoteAsset) {
|
} else if (asset is RemoteAsset) {
|
||||||
final tempDir = await getTemporaryDirectory();
|
final tempDir = await getTemporaryDirectory();
|
||||||
final name = asset.name;
|
final name = asset.name;
|
||||||
@@ -100,7 +95,6 @@ class AssetMediaRepository {
|
|||||||
|
|
||||||
await tempFile.writeAsBytes(res.bodyBytes);
|
await tempFile.writeAsBytes(res.bodyBytes);
|
||||||
downloadedXFiles.add(XFile(tempFile.path));
|
downloadedXFiles.add(XFile(tempFile.path));
|
||||||
tempFiles.add(tempFile);
|
|
||||||
} else {
|
} else {
|
||||||
_log.warning("Asset type not supported for sharing: $asset");
|
_log.warning("Asset type not supported for sharing: $asset");
|
||||||
continue;
|
continue;
|
||||||
@@ -119,9 +113,9 @@ class AssetMediaRepository {
|
|||||||
downloadedXFiles,
|
downloadedXFiles,
|
||||||
sharePositionOrigin: Rect.fromPoints(Offset.zero, Offset(size.width / 3, size.height)),
|
sharePositionOrigin: Rect.fromPoints(Offset.zero, Offset(size.width / 3, size.height)),
|
||||||
).then((result) async {
|
).then((result) async {
|
||||||
for (var file in tempFiles) {
|
for (var file in downloadedXFiles) {
|
||||||
try {
|
try {
|
||||||
await file.delete();
|
await File(file.path).delete();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
_log.warning("Failed to delete temporary file: ${file.path}", e);
|
_log.warning("Failed to delete temporary file: ${file.path}", e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
import 'package:immich_mobile/extensions/translate_extensions.dart';
|
import 'package:immich_mobile/extensions/translate_extensions.dart';
|
||||||
import 'package:immich_mobile/providers/app_settings.provider.dart';
|
import 'package:immich_mobile/providers/app_settings.provider.dart';
|
||||||
import 'package:immich_mobile/providers/auth.provider.dart';
|
import 'package:immich_mobile/providers/auth.provider.dart';
|
||||||
|
import 'package:immich_mobile/providers/server_info.provider.dart';
|
||||||
import 'package:immich_mobile/routing/router.dart';
|
import 'package:immich_mobile/routing/router.dart';
|
||||||
import 'package:immich_mobile/services/app_settings.service.dart';
|
import 'package:immich_mobile/services/app_settings.service.dart';
|
||||||
|
|
||||||
@@ -14,9 +16,10 @@ class BetaTimelineListTile extends ConsumerWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final betaTimelineValue = ref.watch(appSettingsServiceProvider).getSetting<bool>(AppSettingsEnum.betaTimeline);
|
final betaTimelineValue = ref.watch(appSettingsServiceProvider).getSetting<bool>(AppSettingsEnum.betaTimeline);
|
||||||
|
final serverInfo = ref.watch(serverInfoProvider);
|
||||||
final auth = ref.watch(authProvider);
|
final auth = ref.watch(authProvider);
|
||||||
|
|
||||||
if (!auth.isAuthenticated) {
|
if (!auth.isAuthenticated || (serverInfo.serverVersion.minor < 136 && kReleaseMode)) {
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Generated
+1
-1
@@ -3,7 +3,7 @@ Immich API
|
|||||||
|
|
||||||
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||||
|
|
||||||
- API version: 2.0.0
|
- API version: 1.144.1
|
||||||
- Generator version: 7.8.0
|
- Generator version: 7.8.0
|
||||||
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ name: immich_mobile
|
|||||||
description: Immich - selfhosted backup media file on mobile phone
|
description: Immich - selfhosted backup media file on mobile phone
|
||||||
|
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
version: 2.0.0+3020
|
version: 1.144.1+3019
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.8.0 <4.0.0'
|
sdk: '>=3.8.0 <4.0.0'
|
||||||
|
|||||||
@@ -9858,7 +9858,7 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"title": "Immich",
|
"title": "Immich",
|
||||||
"description": "Immich API",
|
"description": "Immich API",
|
||||||
"version": "2.0.0",
|
"version": "1.144.1",
|
||||||
"contact": {}
|
"contact": {}
|
||||||
},
|
},
|
||||||
"tags": [],
|
"tags": [],
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
22.20.0
|
22.19.0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/sdk",
|
"name": "@immich/sdk",
|
||||||
"version": "2.0.0",
|
"version": "1.144.1",
|
||||||
"description": "Auto-generated TypeScript SDK for the Immich API",
|
"description": "Auto-generated TypeScript SDK for the Immich API",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./build/index.js",
|
"main": "./build/index.js",
|
||||||
@@ -28,6 +28,6 @@
|
|||||||
"directory": "open-api/typescript-sdk"
|
"directory": "open-api/typescript-sdk"
|
||||||
},
|
},
|
||||||
"volta": {
|
"volta": {
|
||||||
"node": "22.20.0"
|
"node": "22.19.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* Immich
|
* Immich
|
||||||
* 2.0.0
|
* 1.144.1
|
||||||
* DO NOT MODIFY - This file has been generated using oazapfts.
|
* DO NOT MODIFY - This file has been generated using oazapfts.
|
||||||
* See https://www.npmjs.com/package/oazapfts
|
* See https://www.npmjs.com/package/oazapfts
|
||||||
*/
|
*/
|
||||||
|
|||||||
Generated
+315
-43
@@ -781,14 +781,14 @@ importers:
|
|||||||
version: 0.1.1
|
version: 0.1.1
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@eslint/js':
|
'@eslint/js':
|
||||||
specifier: ^9.18.0
|
specifier: ^9.36.0
|
||||||
version: 9.35.0
|
version: 9.36.0
|
||||||
'@faker-js/faker':
|
'@faker-js/faker':
|
||||||
specifier: ^10.0.0
|
specifier: ^10.0.0
|
||||||
version: 10.0.0
|
version: 10.0.0
|
||||||
'@koddsson/eslint-plugin-tscompat':
|
'@koddsson/eslint-plugin-tscompat':
|
||||||
specifier: ^0.2.0
|
specifier: ^0.2.0
|
||||||
version: 0.2.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
|
version: 0.2.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
'@socket.io/component-emitter':
|
'@socket.io/component-emitter':
|
||||||
specifier: ^3.1.0
|
specifier: ^3.1.0
|
||||||
version: 3.1.2
|
version: 3.1.2
|
||||||
@@ -841,23 +841,20 @@ importers:
|
|||||||
specifier: ^17.0.0
|
specifier: ^17.0.0
|
||||||
version: 17.2.2
|
version: 17.2.2
|
||||||
eslint:
|
eslint:
|
||||||
specifier: ^9.18.0
|
specifier: ^9.36.0
|
||||||
version: 9.35.0(jiti@2.5.1)
|
version: 9.36.0(jiti@2.5.1)
|
||||||
eslint-config-prettier:
|
eslint-config-prettier:
|
||||||
specifier: ^10.1.8
|
specifier: ^10.1.8
|
||||||
version: 10.1.8(eslint@9.35.0(jiti@2.5.1))
|
version: 10.1.8(eslint@9.36.0(jiti@2.5.1))
|
||||||
eslint-p:
|
|
||||||
specifier: ^0.26.0
|
|
||||||
version: 0.26.0(jiti@2.5.1)
|
|
||||||
eslint-plugin-compat:
|
eslint-plugin-compat:
|
||||||
specifier: ^6.0.2
|
specifier: ^6.0.2
|
||||||
version: 6.0.2(eslint@9.35.0(jiti@2.5.1))
|
version: 6.0.2(eslint@9.36.0(jiti@2.5.1))
|
||||||
eslint-plugin-svelte:
|
eslint-plugin-svelte:
|
||||||
specifier: ^3.9.0
|
specifier: ^3.12.4
|
||||||
version: 3.12.3(eslint@9.35.0(jiti@2.5.1))(svelte@5.38.10)
|
version: 3.12.4(eslint@9.36.0(jiti@2.5.1))(svelte@5.38.10)
|
||||||
eslint-plugin-unicorn:
|
eslint-plugin-unicorn:
|
||||||
specifier: ^60.0.0
|
specifier: ^61.0.2
|
||||||
version: 60.0.0(eslint@9.35.0(jiti@2.5.1))
|
version: 61.0.2(eslint@9.36.0(jiti@2.5.1))
|
||||||
factory.ts:
|
factory.ts:
|
||||||
specifier: ^1.4.1
|
specifier: ^1.4.1
|
||||||
version: 1.4.2
|
version: 1.4.2
|
||||||
@@ -886,8 +883,8 @@ importers:
|
|||||||
specifier: ^4.1.5
|
specifier: ^4.1.5
|
||||||
version: 4.3.1(picomatch@4.0.3)(svelte@5.38.10)(typescript@5.9.2)
|
version: 4.3.1(picomatch@4.0.3)(svelte@5.38.10)(typescript@5.9.2)
|
||||||
svelte-eslint-parser:
|
svelte-eslint-parser:
|
||||||
specifier: ^1.2.0
|
specifier: ^1.3.3
|
||||||
version: 1.3.2(svelte@5.38.10)
|
version: 1.3.3(svelte@5.38.10)
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: ^4.1.7
|
specifier: ^4.1.7
|
||||||
version: 4.1.13
|
version: 4.1.13
|
||||||
@@ -895,8 +892,8 @@ importers:
|
|||||||
specifier: ^5.8.3
|
specifier: ^5.8.3
|
||||||
version: 5.9.2
|
version: 5.9.2
|
||||||
typescript-eslint:
|
typescript-eslint:
|
||||||
specifier: ^8.28.0
|
specifier: ^8.45.0
|
||||||
version: 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
|
version: 8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
vite:
|
vite:
|
||||||
specifier: ^7.1.2
|
specifier: ^7.1.2
|
||||||
version: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.1)
|
version: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.1)
|
||||||
@@ -2495,6 +2492,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==}
|
resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@eslint/js@9.36.0':
|
||||||
|
resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/object-schema@2.1.6':
|
'@eslint/object-schema@2.1.6':
|
||||||
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
|
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -4656,6 +4657,14 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/eslint-plugin@8.45.0':
|
||||||
|
resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
'@typescript-eslint/parser': ^8.45.0
|
||||||
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.43.0':
|
'@typescript-eslint/parser@8.43.0':
|
||||||
resolution: {integrity: sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw==}
|
resolution: {integrity: sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -4663,22 +4672,45 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/parser@8.45.0':
|
||||||
|
resolution: {integrity: sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/project-service@8.43.0':
|
'@typescript-eslint/project-service@8.43.0':
|
||||||
resolution: {integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==}
|
resolution: {integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/project-service@8.45.0':
|
||||||
|
resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@8.43.0':
|
'@typescript-eslint/scope-manager@8.43.0':
|
||||||
resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==}
|
resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/scope-manager@8.45.0':
|
||||||
|
resolution: {integrity: sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@typescript-eslint/tsconfig-utils@8.43.0':
|
'@typescript-eslint/tsconfig-utils@8.43.0':
|
||||||
resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==}
|
resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/tsconfig-utils@8.45.0':
|
||||||
|
resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.43.0':
|
'@typescript-eslint/type-utils@8.43.0':
|
||||||
resolution: {integrity: sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==}
|
resolution: {integrity: sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -4686,16 +4718,33 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/type-utils@8.45.0':
|
||||||
|
resolution: {integrity: sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/types@8.43.0':
|
'@typescript-eslint/types@8.43.0':
|
||||||
resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==}
|
resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/types@8.45.0':
|
||||||
|
resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@8.43.0':
|
'@typescript-eslint/typescript-estree@8.43.0':
|
||||||
resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==}
|
resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/typescript-estree@8.45.0':
|
||||||
|
resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.43.0':
|
'@typescript-eslint/utils@8.43.0':
|
||||||
resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==}
|
resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -4703,10 +4752,21 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/utils@8.45.0':
|
||||||
|
resolution: {integrity: sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/visitor-keys@8.43.0':
|
'@typescript-eslint/visitor-keys@8.43.0':
|
||||||
resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==}
|
resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/visitor-keys@8.45.0':
|
||||||
|
resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@ungap/structured-clone@1.3.0':
|
'@ungap/structured-clone@1.3.0':
|
||||||
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
||||||
|
|
||||||
@@ -6298,12 +6358,6 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=7.0.0'
|
eslint: '>=7.0.0'
|
||||||
|
|
||||||
eslint-p@0.26.0:
|
|
||||||
resolution: {integrity: sha512-Y5bDWKIFEUE7dZrbBbq5SiHWadYC4h3+Q+xBAUNNAqU1VMokleoGGfK92Qsmi+EBOLUBbxrtOCND5BSqQn8NaQ==}
|
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
|
||||||
deprecated: ESLint has built-in support for multithread linting now. This package is no longer needed.
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
eslint-plugin-compat@6.0.2:
|
eslint-plugin-compat@6.0.2:
|
||||||
resolution: {integrity: sha512-1ME+YfJjmOz1blH0nPZpHgjMGK4kjgEeoYqGCqoBPQ/mGu/dJzdoP0f1C8H2jcWZjzhZjAMccbM/VdXhPORIfA==}
|
resolution: {integrity: sha512-1ME+YfJjmOz1blH0nPZpHgjMGK4kjgEeoYqGCqoBPQ/mGu/dJzdoP0f1C8H2jcWZjzhZjAMccbM/VdXhPORIfA==}
|
||||||
engines: {node: '>=18.x'}
|
engines: {node: '>=18.x'}
|
||||||
@@ -6324,8 +6378,8 @@ packages:
|
|||||||
eslint-config-prettier:
|
eslint-config-prettier:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
eslint-plugin-svelte@3.12.3:
|
eslint-plugin-svelte@3.12.4:
|
||||||
resolution: {integrity: sha512-YVNhKsHZeXVvsjZcSMjnce9gO31frICu453p5JjFiXNszHoG9k8WvsA/LAoLi4K8T69G7DIrgg1AqasDJLpgoQ==}
|
resolution: {integrity: sha512-hD7wPe+vrPgx3U2X2b/wyTMtWobm660PygMGKrWWYTc9lvtY8DpNFDaU2CJQn1szLjGbn/aJ3g8WiXuKakrEkw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.1 || ^9.0.0
|
eslint: ^8.57.1 || ^9.0.0
|
||||||
@@ -6340,6 +6394,12 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=9.29.0'
|
eslint: '>=9.29.0'
|
||||||
|
|
||||||
|
eslint-plugin-unicorn@61.0.2:
|
||||||
|
resolution: {integrity: sha512-zLihukvneYT7f74GNbVJXfWIiNQmkc/a9vYBTE4qPkQZswolWNdu+Wsp9sIXno1JOzdn6OUwLPd19ekXVkahRA==}
|
||||||
|
engines: {node: ^20.10.0 || >=21.0.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: '>=9.29.0'
|
||||||
|
|
||||||
eslint-scope@5.1.1:
|
eslint-scope@5.1.1:
|
||||||
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
||||||
engines: {node: '>=8.0.0'}
|
engines: {node: '>=8.0.0'}
|
||||||
@@ -6366,6 +6426,16 @@ packages:
|
|||||||
jiti:
|
jiti:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
eslint@9.36.0:
|
||||||
|
resolution: {integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
hasBin: true
|
||||||
|
peerDependencies:
|
||||||
|
jiti: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
jiti:
|
||||||
|
optional: true
|
||||||
|
|
||||||
esm-env@1.2.2:
|
esm-env@1.2.2:
|
||||||
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
|
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
|
||||||
|
|
||||||
@@ -10255,8 +10325,8 @@ packages:
|
|||||||
svelte: ^4.0.0 || ^5.0.0-next.0
|
svelte: ^4.0.0 || ^5.0.0-next.0
|
||||||
typescript: '>=5.0.0'
|
typescript: '>=5.0.0'
|
||||||
|
|
||||||
svelte-eslint-parser@1.3.2:
|
svelte-eslint-parser@1.3.3:
|
||||||
resolution: {integrity: sha512-whla4VlUbwJidn/bNyC3Ho3pBrXnR2CBEkuJwtaURW+wfwgKHPaYtZAmwAkp6HWWKCw1ILZL6iKsFdVY11rpDA==}
|
resolution: {integrity: sha512-oTrDR8Z7Wnguut7QH3YKh7JR19xv1seB/bz4dxU5J/86eJtZOU4eh0/jZq4dy6tAlz/KROxnkRQspv5ZEt7t+Q==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
|
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
|
||||||
@@ -10644,6 +10714,13 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
typescript-eslint@8.45.0:
|
||||||
|
resolution: {integrity: sha512-qzDmZw/Z5beNLUrXfd0HIW6MzIaAV5WNDxmMs9/3ojGOpYavofgNAAD/nC6tGV2PczIi0iw8vot2eAe/sBn7zg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
typescript@5.8.3:
|
typescript@5.8.3:
|
||||||
resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
|
resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
|
||||||
engines: {node: '>=14.17'}
|
engines: {node: '>=14.17'}
|
||||||
@@ -13806,6 +13883,11 @@ snapshots:
|
|||||||
eslint: 9.35.0(jiti@2.5.1)
|
eslint: 9.35.0(jiti@2.5.1)
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
|
'@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(jiti@2.5.1))':
|
||||||
|
dependencies:
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.12.1': {}
|
'@eslint-community/regexpp@4.12.1': {}
|
||||||
|
|
||||||
'@eslint/config-array@0.21.0':
|
'@eslint/config-array@0.21.0':
|
||||||
@@ -13838,6 +13920,8 @@ snapshots:
|
|||||||
|
|
||||||
'@eslint/js@9.35.0': {}
|
'@eslint/js@9.35.0': {}
|
||||||
|
|
||||||
|
'@eslint/js@9.36.0': {}
|
||||||
|
|
||||||
'@eslint/object-schema@2.1.6': {}
|
'@eslint/object-schema@2.1.6': {}
|
||||||
|
|
||||||
'@eslint/plugin-kit@0.3.5':
|
'@eslint/plugin-kit@0.3.5':
|
||||||
@@ -14239,11 +14323,11 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@koddsson/eslint-plugin-tscompat@0.2.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
|
'@koddsson/eslint-plugin-tscompat@0.2.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@mdn/browser-compat-data': 6.0.27
|
'@mdn/browser-compat-data': 6.0.27
|
||||||
'@typescript-eslint/type-utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
|
'@typescript-eslint/type-utils': 8.43.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
'@typescript-eslint/utils': 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
|
'@typescript-eslint/utils': 8.43.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
browserslist: 4.25.3
|
browserslist: 4.25.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- eslint
|
- eslint
|
||||||
@@ -16283,6 +16367,23 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@eslint-community/regexpp': 4.12.1
|
||||||
|
'@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/scope-manager': 8.45.0
|
||||||
|
'@typescript-eslint/type-utils': 8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/visitor-keys': 8.45.0
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
graphemer: 1.4.0
|
||||||
|
ignore: 7.0.5
|
||||||
|
natural-compare: 1.4.0
|
||||||
|
ts-api-utils: 2.1.0(typescript@5.9.2)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
|
'@typescript-eslint/parser@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 8.43.0
|
'@typescript-eslint/scope-manager': 8.43.0
|
||||||
@@ -16295,6 +16396,18 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/scope-manager': 8.45.0
|
||||||
|
'@typescript-eslint/types': 8.45.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/visitor-keys': 8.45.0
|
||||||
|
debug: 4.4.3
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/project-service@8.43.0(typescript@5.9.2)':
|
'@typescript-eslint/project-service@8.43.0(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2)
|
'@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.9.2)
|
||||||
@@ -16304,15 +16417,33 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/project-service@8.45.0(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/types': 8.45.0
|
||||||
|
debug: 4.4.3
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@8.43.0':
|
'@typescript-eslint/scope-manager@8.43.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.43.0
|
'@typescript-eslint/types': 8.43.0
|
||||||
'@typescript-eslint/visitor-keys': 8.43.0
|
'@typescript-eslint/visitor-keys': 8.43.0
|
||||||
|
|
||||||
|
'@typescript-eslint/scope-manager@8.45.0':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.45.0
|
||||||
|
'@typescript-eslint/visitor-keys': 8.45.0
|
||||||
|
|
||||||
'@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.9.2)':
|
'@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.9.2
|
typescript: 5.9.2
|
||||||
|
|
||||||
|
'@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
typescript: 5.9.2
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
|
'@typescript-eslint/type-utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.43.0
|
'@typescript-eslint/types': 8.43.0
|
||||||
@@ -16325,8 +16456,34 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/type-utils@8.43.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.43.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/utils': 8.43.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
debug: 4.4.3
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
ts-api-utils: 2.1.0(typescript@5.9.2)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/type-utils@8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.45.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
debug: 4.4.3
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
ts-api-utils: 2.1.0(typescript@5.9.2)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/types@8.43.0': {}
|
'@typescript-eslint/types@8.43.0': {}
|
||||||
|
|
||||||
|
'@typescript-eslint/types@8.45.0': {}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@8.43.0(typescript@5.9.2)':
|
'@typescript-eslint/typescript-estree@8.43.0(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/project-service': 8.43.0(typescript@5.9.2)
|
'@typescript-eslint/project-service': 8.43.0(typescript@5.9.2)
|
||||||
@@ -16343,6 +16500,22 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/typescript-estree@8.45.0(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/project-service': 8.45.0(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/types': 8.45.0
|
||||||
|
'@typescript-eslint/visitor-keys': 8.45.0
|
||||||
|
debug: 4.4.3
|
||||||
|
fast-glob: 3.3.3
|
||||||
|
is-glob: 4.0.3
|
||||||
|
minimatch: 9.0.5
|
||||||
|
semver: 7.7.2
|
||||||
|
ts-api-utils: 2.1.0(typescript@5.9.2)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
|
'@typescript-eslint/utils@8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
||||||
@@ -16354,11 +16527,38 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/utils@8.43.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
|
||||||
|
'@typescript-eslint/scope-manager': 8.43.0
|
||||||
|
'@typescript-eslint/types': 8.43.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.43.0(typescript@5.9.2)
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/utils@8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)':
|
||||||
|
dependencies:
|
||||||
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
|
||||||
|
'@typescript-eslint/scope-manager': 8.45.0
|
||||||
|
'@typescript-eslint/types': 8.45.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.2)
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/visitor-keys@8.43.0':
|
'@typescript-eslint/visitor-keys@8.43.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.43.0
|
'@typescript-eslint/types': 8.43.0
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
|
|
||||||
|
'@typescript-eslint/visitor-keys@8.45.0':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.45.0
|
||||||
|
eslint-visitor-keys: 4.2.1
|
||||||
|
|
||||||
'@ungap/structured-clone@1.3.0': {}
|
'@ungap/structured-clone@1.3.0': {}
|
||||||
|
|
||||||
'@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.5)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(canvas@2.11.2))(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.1))':
|
'@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.5)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0(canvas@2.11.2))(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.1))':
|
||||||
@@ -18145,20 +18345,17 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.35.0(jiti@2.5.1)
|
eslint: 9.35.0(jiti@2.5.1)
|
||||||
|
|
||||||
eslint-p@0.26.0(jiti@2.5.1):
|
eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.5.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.35.0(jiti@2.5.1)
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
transitivePeerDependencies:
|
|
||||||
- jiti
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
eslint-plugin-compat@6.0.2(eslint@9.35.0(jiti@2.5.1)):
|
eslint-plugin-compat@6.0.2(eslint@9.36.0(jiti@2.5.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@mdn/browser-compat-data': 5.7.6
|
'@mdn/browser-compat-data': 5.7.6
|
||||||
ast-metadata-inferer: 0.8.1
|
ast-metadata-inferer: 0.8.1
|
||||||
browserslist: 4.25.3
|
browserslist: 4.25.3
|
||||||
caniuse-lite: 1.0.30001735
|
caniuse-lite: 1.0.30001735
|
||||||
eslint: 9.35.0(jiti@2.5.1)
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
find-up: 5.0.0
|
find-up: 5.0.0
|
||||||
globals: 15.15.0
|
globals: 15.15.0
|
||||||
lodash.memoize: 4.1.2
|
lodash.memoize: 4.1.2
|
||||||
@@ -18174,11 +18371,11 @@ snapshots:
|
|||||||
'@types/eslint': 9.6.1
|
'@types/eslint': 9.6.1
|
||||||
eslint-config-prettier: 10.1.8(eslint@9.35.0(jiti@2.5.1))
|
eslint-config-prettier: 10.1.8(eslint@9.35.0(jiti@2.5.1))
|
||||||
|
|
||||||
eslint-plugin-svelte@3.12.3(eslint@9.35.0(jiti@2.5.1))(svelte@5.38.10):
|
eslint-plugin-svelte@3.12.4(eslint@9.36.0(jiti@2.5.1))(svelte@5.38.10):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1))
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
'@jridgewell/sourcemap-codec': 1.5.5
|
||||||
eslint: 9.35.0(jiti@2.5.1)
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
esutils: 2.0.3
|
esutils: 2.0.3
|
||||||
globals: 16.4.0
|
globals: 16.4.0
|
||||||
known-css-properties: 0.37.0
|
known-css-properties: 0.37.0
|
||||||
@@ -18186,7 +18383,7 @@ snapshots:
|
|||||||
postcss-load-config: 3.1.4(postcss@8.5.6)
|
postcss-load-config: 3.1.4(postcss@8.5.6)
|
||||||
postcss-safe-parser: 7.0.1(postcss@8.5.6)
|
postcss-safe-parser: 7.0.1(postcss@8.5.6)
|
||||||
semver: 7.7.2
|
semver: 7.7.2
|
||||||
svelte-eslint-parser: 1.3.2(svelte@5.38.10)
|
svelte-eslint-parser: 1.3.3(svelte@5.38.10)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
svelte: 5.38.10
|
svelte: 5.38.10
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -18214,6 +18411,28 @@ snapshots:
|
|||||||
semver: 7.7.2
|
semver: 7.7.2
|
||||||
strip-indent: 4.0.0
|
strip-indent: 4.0.0
|
||||||
|
|
||||||
|
eslint-plugin-unicorn@61.0.2(eslint@9.36.0(jiti@2.5.1)):
|
||||||
|
dependencies:
|
||||||
|
'@babel/helper-validator-identifier': 7.27.1
|
||||||
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
|
||||||
|
'@eslint/plugin-kit': 0.3.5
|
||||||
|
change-case: 5.4.4
|
||||||
|
ci-info: 4.3.0
|
||||||
|
clean-regexp: 1.0.0
|
||||||
|
core-js-compat: 3.45.0
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
esquery: 1.6.0
|
||||||
|
find-up-simple: 1.0.1
|
||||||
|
globals: 16.4.0
|
||||||
|
indent-string: 5.0.0
|
||||||
|
is-builtin-module: 5.0.0
|
||||||
|
jsesc: 3.1.0
|
||||||
|
pluralize: 8.0.0
|
||||||
|
regexp-tree: 0.1.27
|
||||||
|
regjsparser: 0.12.0
|
||||||
|
semver: 7.7.2
|
||||||
|
strip-indent: 4.0.0
|
||||||
|
|
||||||
eslint-scope@5.1.1:
|
eslint-scope@5.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
esrecurse: 4.3.0
|
esrecurse: 4.3.0
|
||||||
@@ -18270,6 +18489,48 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
eslint@9.36.0(jiti@2.5.1):
|
||||||
|
dependencies:
|
||||||
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
|
||||||
|
'@eslint-community/regexpp': 4.12.1
|
||||||
|
'@eslint/config-array': 0.21.0
|
||||||
|
'@eslint/config-helpers': 0.3.1
|
||||||
|
'@eslint/core': 0.15.2
|
||||||
|
'@eslint/eslintrc': 3.3.1
|
||||||
|
'@eslint/js': 9.36.0
|
||||||
|
'@eslint/plugin-kit': 0.3.5
|
||||||
|
'@humanfs/node': 0.16.7
|
||||||
|
'@humanwhocodes/module-importer': 1.0.1
|
||||||
|
'@humanwhocodes/retry': 0.4.3
|
||||||
|
'@types/estree': 1.0.8
|
||||||
|
'@types/json-schema': 7.0.15
|
||||||
|
ajv: 6.12.6
|
||||||
|
chalk: 4.1.2
|
||||||
|
cross-spawn: 7.0.6
|
||||||
|
debug: 4.4.3
|
||||||
|
escape-string-regexp: 4.0.0
|
||||||
|
eslint-scope: 8.4.0
|
||||||
|
eslint-visitor-keys: 4.2.1
|
||||||
|
espree: 10.4.0
|
||||||
|
esquery: 1.6.0
|
||||||
|
esutils: 2.0.3
|
||||||
|
fast-deep-equal: 3.1.3
|
||||||
|
file-entry-cache: 8.0.0
|
||||||
|
find-up: 5.0.0
|
||||||
|
glob-parent: 6.0.2
|
||||||
|
ignore: 5.3.2
|
||||||
|
imurmurhash: 0.1.4
|
||||||
|
is-glob: 4.0.3
|
||||||
|
json-stable-stringify-without-jsonify: 1.0.1
|
||||||
|
lodash.merge: 4.6.2
|
||||||
|
minimatch: 3.1.2
|
||||||
|
natural-compare: 1.4.0
|
||||||
|
optionator: 0.9.4
|
||||||
|
optionalDependencies:
|
||||||
|
jiti: 2.5.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
esm-env@1.2.2: {}
|
esm-env@1.2.2: {}
|
||||||
|
|
||||||
esniff@2.0.1:
|
esniff@2.0.1:
|
||||||
@@ -23017,7 +23278,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- picomatch
|
- picomatch
|
||||||
|
|
||||||
svelte-eslint-parser@1.3.2(svelte@5.38.10):
|
svelte-eslint-parser@1.3.3(svelte@5.38.10):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint-scope: 8.4.0
|
eslint-scope: 8.4.0
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
@@ -23459,6 +23720,17 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
typescript-eslint@8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2):
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.2)
|
||||||
|
'@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.5.1))(typescript@5.9.2)
|
||||||
|
eslint: 9.36.0(jiti@2.5.1)
|
||||||
|
typescript: 5.9.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
typescript@5.8.3: {}
|
typescript@5.8.3: {}
|
||||||
|
|
||||||
typescript@5.9.2: {}
|
typescript@5.9.2: {}
|
||||||
|
|||||||
@@ -46,13 +46,13 @@
|
|||||||
|
|
||||||
## محتوى
|
## محتوى
|
||||||
|
|
||||||
- [الوثائق الرسمية](https://docs.immich.app)
|
- [الوثائق الرسمية](https://immich.app/docs)
|
||||||
- [خريطة الطريق](https://github.com/orgs/immich-app/projects/1)
|
- [خريطة الطريق](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [تجريبي](#demo)
|
- [تجريبي](#demo)
|
||||||
- [سمات](#features)
|
- [سمات](#features)
|
||||||
- [مقدمة](https://docs.immich.app/overview/introduction)
|
- [مقدمة](https://immich.app/docs/overview/introduction)
|
||||||
- [تعليمات التحميل](https://docs.immich.app/install/requirements)
|
- [تعليمات التحميل](https://immich.app/docs/install/requirements)
|
||||||
- [قواعد المساهمة](https://docs.immich.app/overview/support-the-project)
|
- [قواعد المساهمة](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## توثيق
|
## توثيق
|
||||||
|
|
||||||
|
|||||||
@@ -44,13 +44,13 @@
|
|||||||
|
|
||||||
## Contingut
|
## Contingut
|
||||||
|
|
||||||
- [Documentació oficial](https://docs.immich.app)
|
- [Documentació oficial](https://immich.app/docs)
|
||||||
- [Mapa de ruta](https://github.com/orgs/immich-app/projects/1)
|
- [Mapa de ruta](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Funcionalitats](#funcionalitats)
|
- [Funcionalitats](#funcionalitats)
|
||||||
- [Introducció](https://docs.immich.app/overview/introduction)
|
- [Introducció](https://immich.app/docs/overview/introduction)
|
||||||
- [Instal·lació](https://docs.immich.app/install/requirements)
|
- [Instal·lació](https://immich.app/docs/install/requirements)
|
||||||
- [Directrius de contribució](https://docs.immich.app/overview/support-the-project)
|
- [Directrius de contribució](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Documentació
|
## Documentació
|
||||||
|
|
||||||
|
|||||||
@@ -50,14 +50,14 @@
|
|||||||
|
|
||||||
## Inhalt
|
## Inhalt
|
||||||
|
|
||||||
- [Offizielle Dokumentation](https://docs.immich.app)
|
- [Offizielle Dokumentation](https://immich.app/docs)
|
||||||
- [Über Immich](https://docs.immich.app/overview/introduction)
|
- [Über Immich](https://immich.app/docs/overview/introduction)
|
||||||
- [Installation](https://docs.immich.app/install/requirements)
|
- [Installation](https://immich.app/docs/install/requirements)
|
||||||
- [Roadmap](https://github.com/orgs/immich-app/projects/1)
|
- [Roadmap](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Funktionen](#funktionen)
|
- [Funktionen](#funktionen)
|
||||||
- [Übersetzungen](https://docs.immich.app/developer/translations)
|
- [Übersetzungen](https://immich.app/docs/developer/translations)
|
||||||
- [Beitragsrichtlinien](https://docs.immich.app/overview/support-the-project)
|
- [Beitragsrichtlinien](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ Die Web-Demo kannst Du unter https://demo.immich.app finden. Für die Handy-App
|
|||||||
|
|
||||||
## Übersetzungen
|
## Übersetzungen
|
||||||
|
|
||||||
Mehr zum Thema Übersetzungen kannst du [hier](https://docs.immich.app/developer/translations) erfahren.
|
Mehr zum Thema Übersetzungen kannst du [hier](https://immich.app/docs/developer/translations) erfahren.
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
||||||
|
|||||||
@@ -45,13 +45,13 @@
|
|||||||
|
|
||||||
## Contenido
|
## Contenido
|
||||||
|
|
||||||
- [Documentación oficial](https://docs.immich.app)
|
- [Documentación oficial](https://immich.app/docs)
|
||||||
- [Hoja de ruta](https://github.com/orgs/immich-app/projects/1)
|
- [Hoja de ruta](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Funciones](#funciones)
|
- [Funciones](#funciones)
|
||||||
- [Introducción](https://docs.immich.app/overview/introduction)
|
- [Introducción](https://immich.app/docs/overview/introduction)
|
||||||
- [Instalación](https://docs.immich.app/install/requirements)
|
- [Instalación](https://immich.app/docs/install/requirements)
|
||||||
- [Directrices para contribuir](https://docs.immich.app/overview/support-the-project)
|
- [Directrices para contribuir](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Documentación
|
## Documentación
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ contraseña: demo
|
|||||||
|
|
||||||
## Traducciones
|
## Traducciones
|
||||||
|
|
||||||
Lea mas acerca de las traducciones [acá](https://docs.immich.app/developer/translations).
|
Lea mas acerca de las traducciones [acá](https://immich.app/docs/developer/translations).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
||||||
|
|||||||
@@ -45,13 +45,13 @@
|
|||||||
|
|
||||||
## Sommaire
|
## Sommaire
|
||||||
|
|
||||||
- [Documentation officielle](https://docs.immich.app)
|
- [Documentation officielle](https://immich.app/docs)
|
||||||
- [Feuille de route](https://github.com/orgs/immich-app/projects/1)
|
- [Feuille de route](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Démo](#démo)
|
- [Démo](#démo)
|
||||||
- [Fonctionnalités](#fonctionnalités)
|
- [Fonctionnalités](#fonctionnalités)
|
||||||
- [Introduction](https://docs.immich.app/overview/introduction)
|
- [Introduction](https://immich.app/docs/overview/introduction)
|
||||||
- [Installation](https://docs.immich.app/install/requirements)
|
- [Installation](https://immich.app/docs/install/requirements)
|
||||||
- [Contribution](https://docs.immich.app/overview/support-the-project)
|
- [Contribution](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
|||||||
@@ -49,14 +49,14 @@
|
|||||||
|
|
||||||
## Link utili
|
## Link utili
|
||||||
|
|
||||||
- [Documentazione](https://docs.immich.app)
|
- [Documentazione](https://immich.app/docs)
|
||||||
- [Informazioni](https://docs.immich.app/overview/introduction)
|
- [Informazioni](https://immich.app/docs/overview/introduction)
|
||||||
- [Installazione](https://docs.immich.app/install/requirements)
|
- [Installazione](https://immich.app/docs/install/requirements)
|
||||||
- [Roadmap](https://immich.app/roadmap)
|
- [Roadmap](https://immich.app/roadmap)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Funzionalità](#funzionalità)
|
- [Funzionalità](#funzionalità)
|
||||||
- [Traduzioni](https://docs.immich.app/developer/translations)
|
- [Traduzioni](https://immich.app/docs/developer/translations)
|
||||||
- [Contribuire](https://docs.immich.app/overview/support-the-project)
|
- [Contribuire](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ Per l’app mobile puoi usare `https://demo.immich.app` come `Server Endpoint UR
|
|||||||
|
|
||||||
## Traduzioni
|
## Traduzioni
|
||||||
|
|
||||||
Scopri di più sulle traduzioni [qui](https://docs.immich.app/developer/translations).
|
Scopri di più sulle traduzioni [qui](https://immich.app/docs/developer/translations).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Stato traduzioni" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Stato traduzioni" />
|
||||||
|
|||||||
@@ -44,13 +44,13 @@
|
|||||||
|
|
||||||
## コンテンツ
|
## コンテンツ
|
||||||
|
|
||||||
- [公式ドキュメント](https://docs.immich.app)
|
- [公式ドキュメント](https://immich.app/docs)
|
||||||
- [ロードマップ](https://github.com/orgs/immich-app/projects/1)
|
- [ロードマップ](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [デモ](#デモ)
|
- [デモ](#デモ)
|
||||||
- [機能](#機能)
|
- [機能](#機能)
|
||||||
- [紹介](https://docs.immich.app/overview/introduction)
|
- [紹介](https://immich.app/docs/overview/introduction)
|
||||||
- [インストール](https://docs.immich.app/install/requirements)
|
- [インストール](https://immich.app/docs/install/requirements)
|
||||||
- [コントリビューションガイド](https://docs.immich.app/overview/support-the-project)
|
- [コントリビューションガイド](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## ドキュメント
|
## ドキュメント
|
||||||
|
|
||||||
|
|||||||
@@ -50,14 +50,14 @@
|
|||||||
|
|
||||||
## 링크
|
## 링크
|
||||||
|
|
||||||
- [문서](https://docs.immich.app)
|
- [문서](https://immich.app/docs)
|
||||||
- [소개](https://docs.immich.app/overview/introduction)
|
- [소개](https://immich.app/docs/overview/introduction)
|
||||||
- [설치](https://docs.immich.app/install/requirements)
|
- [설치](https://immich.app/docs/install/requirements)
|
||||||
- [로드맵](https://immich.app/roadmap)
|
- [로드맵](https://immich.app/roadmap)
|
||||||
- [데모](#데모)
|
- [데모](#데모)
|
||||||
- [기능](#기능)
|
- [기능](#기능)
|
||||||
- [번역](https://docs.immich.app/developer/tranlations)
|
- [번역](https://immich.app/docs/developer/tranlations)
|
||||||
- [기여](https://docs.immich.app/overview/support-the-project)
|
- [기여](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## 데모
|
## 데모
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
## 번역
|
## 번역
|
||||||
|
|
||||||
번역에 대한 자세한 정보는 [이곳](https://docs.immich.app/developer/translations)에서 확인하세요.
|
번역에 대한 자세한 정보는 [이곳](https://immich.app/docs/developer/translations)에서 확인하세요.
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="번역 현황" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="번역 현황" />
|
||||||
|
|||||||
@@ -45,13 +45,13 @@
|
|||||||
|
|
||||||
## Inhoud
|
## Inhoud
|
||||||
|
|
||||||
- [Officiële documentatie](https://docs.immich.app)
|
- [Officiële documentatie](https://immich.app/docs)
|
||||||
- [Toekomstplannen](https://github.com/orgs/immich-app/projects/1)
|
- [Toekomstplannen](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Functies](#functies)
|
- [Functies](#functies)
|
||||||
- [Introductie](https://docs.immich.app/overview/introduction)
|
- [Introductie](https://immich.app/docs/overview/introduction)
|
||||||
- [Installatie](https://docs.immich.app/install/requirements)
|
- [Installatie](https://immich.app/docs/install/requirements)
|
||||||
- [Richtlijnen voor bijdragen](https://docs.immich.app/overview/support-the-project)
|
- [Richtlijnen voor bijdragen](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Documentatie
|
## Documentatie
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ Je kunt de demo [hier](https://demo.immich.app/) bekijken. Voor de mobiele app k
|
|||||||
|
|
||||||
## Vertalingen
|
## Vertalingen
|
||||||
|
|
||||||
Je kunt [hier](https://docs.immich.app/developer/translations) meer over vertalingen lezen.
|
Je kunt [hier](https://immich.app/docs/developer/translations) meer over vertalingen lezen.
|
||||||
|
|
||||||
## Repository activiteit
|
## Repository activiteit
|
||||||
|
|
||||||
|
|||||||
@@ -55,14 +55,14 @@
|
|||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
- [Documentação](https://docs.immich.app)
|
- [Documentação](https://immich.app/docs)
|
||||||
- [Sobre](https://docs.immich.app/overview/introduction)
|
- [Sobre](https://immich.app/docs/overview/introduction)
|
||||||
- [Instalação](https://docs.immich.app/install/requirements)
|
- [Instalação](https://immich.app/docs/install/requirements)
|
||||||
- [Roadmap](https://github.com/orgs/immich-app/projects/1)
|
- [Roadmap](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Demonstração](#demonstração)
|
- [Demonstração](#demonstração)
|
||||||
- [Funcionalidades](#funcionalidades)
|
- [Funcionalidades](#funcionalidades)
|
||||||
- [Traduções](https://docs.immich.app/developer/translations)
|
- [Traduções](https://immich.app/docs/developer/translations)
|
||||||
- [Diretrizes de Contribuição](https://docs.immich.app/overview/support-the-project)
|
- [Diretrizes de Contribuição](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Demonstração
|
## Demonstração
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ Acesse a demonstração [aqui](https://demo.immich.app). No aplicativo para disp
|
|||||||
## Traduções
|
## Traduções
|
||||||
|
|
||||||
Leia mais sobre as traduções
|
Leia mais sobre as traduções
|
||||||
[aqui](https://docs.immich.app/developer/translations).
|
[aqui](https://immich.app/docs/developer/translations).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Status da tradução" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Status da tradução" />
|
||||||
|
|||||||
@@ -51,14 +51,14 @@
|
|||||||
|
|
||||||
## Содержание
|
## Содержание
|
||||||
|
|
||||||
- [Официальная документация](https://docs.immich.app)
|
- [Официальная документация](https://immich.app/docs)
|
||||||
- [Введение](https://docs.immich.app/overview/introduction)
|
- [Введение](https://immich.app/docs/overview/introduction)
|
||||||
- [Установка](https://docs.immich.app/install/requirements)
|
- [Установка](https://immich.app/docs/install/requirements)
|
||||||
- [План разработки](https://github.com/orgs/immich-app/projects/1)
|
- [План разработки](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Демо](#demo)
|
- [Демо](#demo)
|
||||||
- [Возможности](#features)
|
- [Возможности](#features)
|
||||||
- [Перевод](https://docs.immich.app/developer/translations)
|
- [Перевод](https://immich.app/docs/developer/translations)
|
||||||
- [Гид по участию и поддержке проекта](https://docs.immich.app/overview/support-the-project)
|
- [Гид по участию и поддержке проекта](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Демо
|
## Демо
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
|
|
||||||
## Перевод
|
## Перевод
|
||||||
|
|
||||||
Всё про перевод проекта [Здесь](https://docs.immich.app/developer/translations).
|
Всё про перевод проекта [Здесь](https://immich.app/docs/developer/translations).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
||||||
|
|||||||
@@ -46,13 +46,13 @@
|
|||||||
|
|
||||||
## Innehåll
|
## Innehåll
|
||||||
|
|
||||||
- [Officiell Dokumentation](https://docs.immich.app)
|
- [Officiell Dokumentation](https://immich.app/docs)
|
||||||
- [Roadmap](https://github.com/orgs/immich-app/projects/1)
|
- [Roadmap](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Funktioner](#features)
|
- [Funktioner](#features)
|
||||||
- [Introduktion](https://docs.immich.app/overview/introduction)
|
- [Introduktion](https://immich.app/docs/overview/introduction)
|
||||||
- [Installation](https://docs.immich.app/install/requirements)
|
- [Installation](https://immich.app/docs/install/requirements)
|
||||||
- [Riktlinjer för Bidrag](https://docs.immich.app/overview/support-the-project)
|
- [Riktlinjer för Bidrag](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Dokumentation
|
## Dokumentation
|
||||||
|
|
||||||
|
|||||||
@@ -52,14 +52,14 @@
|
|||||||
|
|
||||||
## ลิงก์
|
## ลิงก์
|
||||||
|
|
||||||
- [คู่มือ](https://docs.immich.app)
|
- [คู่มือ](https://immich.app/docs)
|
||||||
- [เกี่ยวกับ](https://docs.immich.app/overview/introduction)
|
- [เกี่ยวกับ](https://immich.app/docs/overview/introduction)
|
||||||
- [การติดตั้ง](https://docs.immich.app/install/requirements)
|
- [การติดตั้ง](https://immich.app/docs/install/requirements)
|
||||||
- [โรดแมป](https://immich.app/roadmap)
|
- [โรดแมป](https://immich.app/roadmap)
|
||||||
- [สาธิต](#สาธิต)
|
- [สาธิต](#สาธิต)
|
||||||
- [คุณสมบัติ](#คุณสมบัติ)
|
- [คุณสมบัติ](#คุณสมบัติ)
|
||||||
- [การแปลภาษา](https://docs.immich.app/developer/translations)
|
- [การแปลภาษา](https://immich.app/docs/developer/translations)
|
||||||
- [สนับสนุนโพรเจกต์](https://docs.immich.app/overview/support-the-project)
|
- [สนับสนุนโพรเจกต์](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## สาธิต
|
## สาธิต
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
|
|
||||||
## การแปลภาษา
|
## การแปลภาษา
|
||||||
|
|
||||||
อ่านเพิ่มเติมเกี่ยวกับการแปล [ที่นี่](https://docs.immich.app/developer/translations)
|
อ่านเพิ่มเติมเกี่ยวกับการแปล [ที่นี่](https://immich.app/docs/developer/translations)
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="สถานะการแปล" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="สถานะการแปล" />
|
||||||
|
|||||||
@@ -44,13 +44,13 @@
|
|||||||
|
|
||||||
## Content
|
## Content
|
||||||
|
|
||||||
- [Resmi Belgeler](https://docs.immich.app)
|
- [Resmi Belgeler](https://immich.app/docs)
|
||||||
- [Yol Haritası](https://github.com/orgs/immich-app/projects/1)
|
- [Yol Haritası](https://github.com/orgs/immich-app/projects/1)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Özellikler](#özellikler)
|
- [Özellikler](#özellikler)
|
||||||
- [Giriş](https://docs.immich.app/overview/introduction)
|
- [Giriş](https://immich.app/docs/overview/introduction)
|
||||||
- [Kurulum](https://docs.immich.app/install/requirements)
|
- [Kurulum](https://immich.app/docs/install/requirements)
|
||||||
- [Katkı Sağlama Rehberi](https://docs.immich.app/overview/support-the-project)
|
- [Katkı Sağlama Rehberi](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Belgeler
|
## Belgeler
|
||||||
|
|
||||||
|
|||||||
@@ -50,14 +50,14 @@
|
|||||||
|
|
||||||
## Посилання
|
## Посилання
|
||||||
|
|
||||||
- [Документація](https://docs.immich.app)
|
- [Документація](https://immich.app/docs)
|
||||||
- [Про проєкт](https://docs.immich.app/overview/introduction)
|
- [Про проєкт](https://immich.app/docs/overview/introduction)
|
||||||
- [Встановлення](https://docs.immich.app/install/requirements)
|
- [Встановлення](https://immich.app/docs/install/requirements)
|
||||||
- [Дорожня карта](https://immich.app/roadmap)
|
- [Дорожня карта](https://immich.app/roadmap)
|
||||||
- [Демо](#демо)
|
- [Демо](#демо)
|
||||||
- [Функції](#функції)
|
- [Функції](#функції)
|
||||||
- [Переклади](https://docs.immich.app/developer/translations)
|
- [Переклади](https://immich.app/docs/developer/translations)
|
||||||
- [Гід для розробки проєкту](https://docs.immich.app/overview/support-the-project)
|
- [Гід для розробки проєкту](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Демо
|
## Демо
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
|
|
||||||
## Переклади
|
## Переклади
|
||||||
|
|
||||||
Більше про переклади [тут](https://docs.immich.app/developer/translations).
|
Більше про переклади [тут](https://immich.app/docs/developer/translations).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Статус перекладів" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Статус перекладів" />
|
||||||
|
|||||||
@@ -52,14 +52,14 @@
|
|||||||
|
|
||||||
## Liên kết
|
## Liên kết
|
||||||
|
|
||||||
- [Tài liệu](https://docs.immich.app)
|
- [Tài liệu](https://immich.app/docs)
|
||||||
- [Giới thiệu](https://docs.immich.app/overview/introduction)
|
- [Giới thiệu](https://immich.app/docs/overview/introduction)
|
||||||
- [Cài đặt](https://docs.immich.app/install/requirements)
|
- [Cài đặt](https://immich.app/docs/install/requirements)
|
||||||
- [Lộ trình](https://immich.app/roadmap)
|
- [Lộ trình](https://immich.app/roadmap)
|
||||||
- [Demo](#demo)
|
- [Demo](#demo)
|
||||||
- [Tính năng](#Tính-năng)
|
- [Tính năng](#Tính-năng)
|
||||||
- [Dịch thuật](https://docs.immich.app/developer/translations)
|
- [Dịch thuật](https://immich.app/docs/developer/translations)
|
||||||
- [Đóng góp](https://docs.immich.app/overview/support-the-project)
|
- [Đóng góp](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ Truy cập bản demo [tại đây](https://demo.immich.app). Đối với ứng
|
|||||||
|
|
||||||
## Dịch thuật
|
## Dịch thuật
|
||||||
|
|
||||||
Đọc thêm về dịch thuật [tại đây](https://docs.immich.app/developer/translations).
|
Đọc thêm về dịch thuật [tại đây](https://immich.app/docs/developer/translations).
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Tình trạng dịch thuật" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Tình trạng dịch thuật" />
|
||||||
|
|||||||
@@ -54,14 +54,14 @@
|
|||||||
|
|
||||||
## 目录
|
## 目录
|
||||||
|
|
||||||
- [官方文档](https://docs.immich.app)
|
- [官方文档](https://immich.app/docs)
|
||||||
- [项目总览](https://docs.immich.app/overview/introduction)
|
- [项目总览](https://immich.app/docs/overview/introduction)
|
||||||
- [安装教程](https://docs.immich.app/install/requirements)
|
- [安装教程](https://immich.app/docs/install/requirements)
|
||||||
- [路线图](https://immich.app/roadmap)
|
- [路线图](https://immich.app/roadmap)
|
||||||
- [在线演示](#示例)
|
- [在线演示](#示例)
|
||||||
- [功能特性](#功能特性)
|
- [功能特性](#功能特性)
|
||||||
- [多语言](https://docs.immich.app/developer/translations)
|
- [多语言](https://immich.app/docs/developer/translations)
|
||||||
- [贡献者](https://docs.immich.app/overview/support-the-project)
|
- [贡献者](https://immich.app/docs/overview/support-the-project)
|
||||||
|
|
||||||
## 示例
|
## 示例
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
|
|
||||||
## 多语言
|
## 多语言
|
||||||
|
|
||||||
关于翻译的更多信息请参见[此处](https://docs.immich.app/developer/translations)。
|
关于翻译的更多信息请参见[此处](https://immich.app/docs/developer/translations)。
|
||||||
|
|
||||||
<a href="https://hosted.weblate.org/engage/immich/">
|
<a href="https://hosted.weblate.org/engage/immich/">
|
||||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="翻译进度" />
|
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="翻译进度" />
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
22.20.0
|
22.19.0
|
||||||
|
|||||||
+6
-7
@@ -1,13 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
echo "Initializing Immich $IMMICH_SOURCE_REF"
|
echo "Initializing Immich $IMMICH_SOURCE_REF"
|
||||||
|
|
||||||
# TODO: Update to mimalloc v3 when verified memory isn't released issue is fixed
|
lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.3"
|
||||||
# lib_path="/usr/lib/$(arch)-linux-gnu/libmimalloc.so.3"
|
if [ -f "$lib_path" ]; then
|
||||||
# if [ -f "$lib_path" ]; then
|
export LD_PRELOAD="$lib_path"
|
||||||
# export LD_PRELOAD="$lib_path"
|
else
|
||||||
# else
|
echo "skipping libmimalloc - path not found $lib_path"
|
||||||
# echo "skipping libmimalloc - path not found $lib_path"
|
fi
|
||||||
# fi
|
|
||||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/jellyfin-ffmpeg/lib"
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/jellyfin-ffmpeg/lib"
|
||||||
SERVER_HOME="$(readlink -f "$(dirname "$0")/..")"
|
SERVER_HOME="$(readlink -f "$(dirname "$0")/..")"
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich",
|
"name": "immich",
|
||||||
"version": "2.0.0",
|
"version": "1.144.1",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "",
|
"author": "",
|
||||||
"private": true,
|
"private": true,
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
"vitest": "^3.0.0"
|
"vitest": "^3.0.0"
|
||||||
},
|
},
|
||||||
"volta": {
|
"volta": {
|
||||||
"node": "22.20.0"
|
"node": "22.19.0"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"sharp": "^0.34.3"
|
"sharp": "^0.34.3"
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ export const AlbumUpdateEmail = ({
|
|||||||
</Text>
|
</Text>
|
||||||
|
|
||||||
<Text>
|
<Text>
|
||||||
New media has been added to <strong>{albumName}</strong>.
|
New media has been added to <strong>{albumName}</strong>,
|
||||||
<br /> Check it out!
|
<br /> check it out!
|
||||||
</Text>
|
</Text>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { Button, ButtonProps, Text } from '@react-email/components';
|
import { Button, ButtonProps } from '@react-email/components';
|
||||||
|
|
||||||
export const ImmichButton = ({ children, ...props }: ButtonProps) => (
|
export const ImmichButton = ({ children, ...props }: ButtonProps) => (
|
||||||
<Button
|
<Button
|
||||||
{...props}
|
{...props}
|
||||||
className="border bg-immich-primary rounded-full no-underline hover:no-underline text-white hover:text-gray-50 font-bold uppercase"
|
className="py-3 px-8 border bg-immich-primary rounded-full no-underline hover:no-underline text-white hover:text-gray-50 font-bold uppercase"
|
||||||
>
|
>
|
||||||
<Text className="my-3 mx-8">{children}</Text>
|
{children}
|
||||||
</Button>
|
</Button>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ const messages = {
|
|||||||
The ${name} extension version is ${version}, which means it is a nightly release.
|
The ${name} extension version is ${version}, which means it is a nightly release.
|
||||||
|
|
||||||
Please run 'DROP EXTENSION IF EXISTS ${extension}' and switch to a release version.
|
Please run 'DROP EXTENSION IF EXISTS ${extension}' and switch to a release version.
|
||||||
See https://docs.immich.app/guides/database-queries for how to query the database.`,
|
See https://immich.app/docs/guides/database-queries for how to query the database.`,
|
||||||
outOfRange: ({ name, version, range }: OutOfRangeArgs) =>
|
outOfRange: ({ name, version, range }: OutOfRangeArgs) =>
|
||||||
`The ${name} extension version is ${version}, but Immich only supports ${range}.
|
`The ${name} extension version is ${version}, but Immich only supports ${range}.
|
||||||
Please change ${name} to a compatible version in the Postgres instance.`,
|
Please change ${name} to a compatible version in the Postgres instance.`,
|
||||||
@@ -32,20 +32,20 @@ const messages = {
|
|||||||
|
|
||||||
If the Postgres instance already has ${name} installed, Immich may not have the necessary permissions to activate it.
|
If the Postgres instance already has ${name} installed, Immich may not have the necessary permissions to activate it.
|
||||||
In this case, please run 'CREATE EXTENSION IF NOT EXISTS ${extension} CASCADE' manually as a superuser.
|
In this case, please run 'CREATE EXTENSION IF NOT EXISTS ${extension} CASCADE' manually as a superuser.
|
||||||
See https://docs.immich.app/guides/database-queries for how to query the database.`,
|
See https://immich.app/docs/guides/database-queries for how to query the database.`,
|
||||||
updateFailed: ({ name, extension, availableVersion }: UpdateFailedArgs) =>
|
updateFailed: ({ name, extension, availableVersion }: UpdateFailedArgs) =>
|
||||||
`The ${name} extension can be updated to ${availableVersion}.
|
`The ${name} extension can be updated to ${availableVersion}.
|
||||||
Immich attempted to update the extension, but failed to do so.
|
Immich attempted to update the extension, but failed to do so.
|
||||||
This may be because Immich does not have the necessary permissions to update the extension.
|
This may be because Immich does not have the necessary permissions to update the extension.
|
||||||
|
|
||||||
Please run 'ALTER EXTENSION ${extension} UPDATE' manually as a superuser.
|
Please run 'ALTER EXTENSION ${extension} UPDATE' manually as a superuser.
|
||||||
See https://docs.immich.app/guides/database-queries for how to query the database.`,
|
See https://immich.app/docs/guides/database-queries for how to query the database.`,
|
||||||
dropFailed: ({ name, extension }: DropFailedArgs) =>
|
dropFailed: ({ name, extension }: DropFailedArgs) =>
|
||||||
`The ${name} extension is no longer needed, but could not be dropped.
|
`The ${name} extension is no longer needed, but could not be dropped.
|
||||||
This may be because Immich does not have the necessary permissions to drop the extension.
|
This may be because Immich does not have the necessary permissions to drop the extension.
|
||||||
|
|
||||||
Please run 'DROP EXTENSION ${extension};' manually as a superuser.
|
Please run 'DROP EXTENSION ${extension};' manually as a superuser.
|
||||||
See https://docs.immich.app/guides/database-queries for how to query the database.`,
|
See https://immich.app/docs/guides/database-queries for how to query the database.`,
|
||||||
restartRequired: ({ name, availableVersion }: RestartRequiredArgs) =>
|
restartRequired: ({ name, availableVersion }: RestartRequiredArgs) =>
|
||||||
`The ${name} extension has been updated to ${availableVersion}.
|
`The ${name} extension has been updated to ${availableVersion}.
|
||||||
Please restart the Postgres instance to complete the update.`,
|
Please restart the Postgres instance to complete the update.`,
|
||||||
@@ -55,7 +55,7 @@ const messages = {
|
|||||||
If ${name} ${installedVersion} is compatible with Immich, please ensure the Postgres instance has this available.`,
|
If ${name} ${installedVersion} is compatible with Immich, please ensure the Postgres instance has this available.`,
|
||||||
deprecatedExtension: (name: string) =>
|
deprecatedExtension: (name: string) =>
|
||||||
`DEPRECATION WARNING: The ${name} extension is deprecated and support for it will be removed very soon.
|
`DEPRECATION WARNING: The ${name} extension is deprecated and support for it will be removed very soon.
|
||||||
See https://docs.immich.app/install/upgrading#migrating-to-vectorchord in order to switch to the VectorChord extension instead.`,
|
See https://immich.app/docs/install/upgrading#migrating-to-vectorchord in order to switch to the VectorChord extension instead.`,
|
||||||
};
|
};
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import { BaseService } from 'src/services/base.service';
|
|||||||
import { JobOf, SystemFlags } from 'src/types';
|
import { JobOf, SystemFlags } from 'src/types';
|
||||||
import { ImmichStartupError } from 'src/utils/misc';
|
import { ImmichStartupError } from 'src/utils/misc';
|
||||||
|
|
||||||
const docsMessage = `Please see https://docs.immich.app/administration/system-integrity#folder-checks for more information.`;
|
const docsMessage = `Please see https://immich.app/docs/administration/system-integrity#folder-checks for more information.`;
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class StorageService extends BaseService {
|
export class StorageService extends BaseService {
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
22.20.0
|
22.19.0
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ export default typescriptEslint.config(
|
|||||||
'unicorn/filename-case': 'off',
|
'unicorn/filename-case': 'off',
|
||||||
'unicorn/prefer-top-level-await': 'off',
|
'unicorn/prefer-top-level-await': 'off',
|
||||||
'unicorn/import-style': 'off',
|
'unicorn/import-style': 'off',
|
||||||
|
'unicorn/no-array-sort': 'off',
|
||||||
'svelte/button-has-type': 'error',
|
'svelte/button-has-type': 'error',
|
||||||
'@typescript-eslint/await-thenable': 'error',
|
'@typescript-eslint/await-thenable': 'error',
|
||||||
'@typescript-eslint/no-floating-promises': 'error',
|
'@typescript-eslint/no-floating-promises': 'error',
|
||||||
|
|||||||
+9
-11
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-web",
|
"name": "immich-web",
|
||||||
"version": "2.0.0",
|
"version": "1.144.1",
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -14,8 +14,7 @@
|
|||||||
"check:watch": "npm run check:svelte -- --watch",
|
"check:watch": "npm run check:svelte -- --watch",
|
||||||
"check:code": "npm run format && npm run lint:p && npm run check:svelte && npm run check:typescript",
|
"check:code": "npm run format && npm run lint:p && npm run check:svelte && npm run check:typescript",
|
||||||
"check:all": "npm run check:code && npm run test:cov",
|
"check:all": "npm run check:code && npm run test:cov",
|
||||||
"lint": "eslint . --max-warnings 0",
|
"lint": "eslint . --max-warnings 0 --concurrency 4",
|
||||||
"lint:p": "eslint-p . --max-warnings 0 --concurrency=4",
|
|
||||||
"lint:fix": "npm run lint -- --fix",
|
"lint:fix": "npm run lint -- --fix",
|
||||||
"format": "prettier --check .",
|
"format": "prettier --check .",
|
||||||
"format:fix": "prettier --write . && npm run format:i18n",
|
"format:fix": "prettier --write . && npm run format:i18n",
|
||||||
@@ -63,7 +62,7 @@
|
|||||||
"thumbhash": "^0.1.1"
|
"thumbhash": "^0.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.18.0",
|
"@eslint/js": "^9.36.0",
|
||||||
"@faker-js/faker": "^10.0.0",
|
"@faker-js/faker": "^10.0.0",
|
||||||
"@koddsson/eslint-plugin-tscompat": "^0.2.0",
|
"@koddsson/eslint-plugin-tscompat": "^0.2.0",
|
||||||
"@socket.io/component-emitter": "^3.1.0",
|
"@socket.io/component-emitter": "^3.1.0",
|
||||||
@@ -83,12 +82,11 @@
|
|||||||
"@types/qrcode": "^1.5.5",
|
"@types/qrcode": "^1.5.5",
|
||||||
"@vitest/coverage-v8": "^3.0.0",
|
"@vitest/coverage-v8": "^3.0.0",
|
||||||
"dotenv": "^17.0.0",
|
"dotenv": "^17.0.0",
|
||||||
"eslint": "^9.18.0",
|
"eslint": "^9.36.0",
|
||||||
"eslint-config-prettier": "^10.1.8",
|
"eslint-config-prettier": "^10.1.8",
|
||||||
"eslint-p": "^0.26.0",
|
|
||||||
"eslint-plugin-compat": "^6.0.2",
|
"eslint-plugin-compat": "^6.0.2",
|
||||||
"eslint-plugin-svelte": "^3.9.0",
|
"eslint-plugin-svelte": "^3.12.4",
|
||||||
"eslint-plugin-unicorn": "^60.0.0",
|
"eslint-plugin-unicorn": "^61.0.2",
|
||||||
"factory.ts": "^1.4.1",
|
"factory.ts": "^1.4.1",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.0.0",
|
||||||
"happy-dom": "^18.0.1",
|
"happy-dom": "^18.0.1",
|
||||||
@@ -99,14 +97,14 @@
|
|||||||
"rollup-plugin-visualizer": "^6.0.0",
|
"rollup-plugin-visualizer": "^6.0.0",
|
||||||
"svelte": "5.38.10",
|
"svelte": "5.38.10",
|
||||||
"svelte-check": "^4.1.5",
|
"svelte-check": "^4.1.5",
|
||||||
"svelte-eslint-parser": "^1.2.0",
|
"svelte-eslint-parser": "^1.3.3",
|
||||||
"tailwindcss": "^4.1.7",
|
"tailwindcss": "^4.1.7",
|
||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"typescript-eslint": "^8.28.0",
|
"typescript-eslint": "^8.45.0",
|
||||||
"vite": "^7.1.2",
|
"vite": "^7.1.2",
|
||||||
"vitest": "^3.0.0"
|
"vitest": "^3.0.0"
|
||||||
},
|
},
|
||||||
"volta": {
|
"volta": {
|
||||||
"node": "22.20.0"
|
"node": "22.19.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
<FormatMessage key="admin.oauth_settings_more_details">
|
<FormatMessage key="admin.oauth_settings_more_details">
|
||||||
{#snippet children({ message })}
|
{#snippet children({ message })}
|
||||||
<a
|
<a
|
||||||
href="https://docs.immich.app/administration/oauth"
|
href="https://immich.app/docs/administration/oauth"
|
||||||
class="underline"
|
class="underline"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
<FormatMessage key="admin.map_manage_reverse_geocoding_settings">
|
<FormatMessage key="admin.map_manage_reverse_geocoding_settings">
|
||||||
{#snippet children({ message })}
|
{#snippet children({ message })}
|
||||||
<a
|
<a
|
||||||
href="https://docs.immich.app/features/reverse-geocoding"
|
href="https://immich.app/docs/features/reverse-geocoding"
|
||||||
class="underline"
|
class="underline"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
|
|||||||
@@ -119,7 +119,7 @@
|
|||||||
{#snippet children({ tag, message })}
|
{#snippet children({ tag, message })}
|
||||||
{#if tag === 'template-link'}
|
{#if tag === 'template-link'}
|
||||||
<a
|
<a
|
||||||
href="https://docs.immich.app/administration/storage-template"
|
href="https://immich.app/docs/administration/storage-template"
|
||||||
class="underline"
|
class="underline"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
</a>
|
</a>
|
||||||
{:else if tag === 'implications-link'}
|
{:else if tag === 'implications-link'}
|
||||||
<a
|
<a
|
||||||
href="https://docs.immich.app/administration/backup-and-restore#asset-types-and-storage-locations"
|
href="https://immich.app/docs/administration/backup-and-restore#asset-types-and-storage-locations"
|
||||||
class="underline"
|
class="underline"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="https://docs.immich.app/guides/docker-help"
|
href="https://immich.app/docs/guides/docker-help"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
class="flex grow basis-0 justify-center p-4"
|
class="flex grow basis-0 justify-center p-4"
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<FormatMessage key="admin.backup_onboarding_footer">
|
<FormatMessage key="admin.backup_onboarding_footer">
|
||||||
{#snippet children({ message })}
|
{#snippet children({ message })}
|
||||||
<a
|
<a
|
||||||
href="https://docs.immich.app/administration/backup-and-restore/"
|
href="https://immich.app/docs/administration/backup-and-restore/"
|
||||||
class="underline"
|
class="underline"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<p>
|
<p>
|
||||||
<FormatMessage key="admin.storage_template_onboarding_description_v2">
|
<FormatMessage key="admin.storage_template_onboarding_description_v2">
|
||||||
{#snippet children({ message })}
|
{#snippet children({ message })}
|
||||||
<a class="underline" href="https://docs.immich.app/administration/storage-template">{message}</a>
|
<a class="underline" href="https://immich.app/docs/administration/storage-template">{message}</a>
|
||||||
{/snippet}
|
{/snippet}
|
||||||
</FormatMessage>
|
</FormatMessage>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -67,11 +67,7 @@ class ThemeManager {
|
|||||||
const theme: ThemeSetting =
|
const theme: ThemeSetting =
|
||||||
value === 'system' ? { system: true, value: getDefaultTheme() } : { system: false, value };
|
value === 'system' ? { system: true, value: getDefaultTheme() } : { system: false, value };
|
||||||
|
|
||||||
if (theme.value === Theme.LIGHT) {
|
document.documentElement.classList.toggle('dark', !(theme.value === Theme.LIGHT));
|
||||||
document.documentElement.classList.remove('dark');
|
|
||||||
} else {
|
|
||||||
document.documentElement.classList.add('dark');
|
|
||||||
}
|
|
||||||
|
|
||||||
this.#theme.current = theme;
|
this.#theme.current = theme;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<FormatMessage key="admin.authentication_settings_reenable">
|
<FormatMessage key="admin.authentication_settings_reenable">
|
||||||
{#snippet children({ message })}
|
{#snippet children({ message })}
|
||||||
<a
|
<a
|
||||||
href="https://docs.immich.app/administration/server-commands"
|
href="https://immich.app/docs/administration/server-commands"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
class="underline"
|
class="underline"
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<p>{$t('official_immich_resources')}</p>
|
<p>{$t('official_immich_resources')}</p>
|
||||||
<div class="flex flex-col sm:grid sm:grid-cols-2 gap-2 mt-5">
|
<div class="flex flex-col sm:grid sm:grid-cols-2 gap-2 mt-5">
|
||||||
<div>
|
<div>
|
||||||
<a href="https://{info.version}.archive.docs.immich.app/overview/introduction" target="_blank" rel="noreferrer">
|
<a href="https://{info.version}.archive.immich.app/docs/overview/introduction" target="_blank" rel="noreferrer">
|
||||||
<Icon icon={mdiInformationOutline} size="1.5em" class="inline-block" />
|
<Icon icon={mdiInformationOutline} size="1.5em" class="inline-block" />
|
||||||
<p class="font-medium text-primary text-sm underline inline-block" id="documentation-label">
|
<p class="font-medium text-primary text-sm underline inline-block" id="documentation-label">
|
||||||
{$t('documentation')}
|
{$t('documentation')}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export interface Events {
|
|||||||
on_person_thumbnail: (personId: string) => void;
|
on_person_thumbnail: (personId: string) => void;
|
||||||
on_server_version: (serverVersion: ServerVersionResponseDto) => void;
|
on_server_version: (serverVersion: ServerVersionResponseDto) => void;
|
||||||
on_config_update: () => void;
|
on_config_update: () => void;
|
||||||
on_new_release: (newRelease: ReleaseEvent) => void;
|
on_new_release: (newRelase: ReleaseEvent) => void;
|
||||||
on_session_delete: (sessionId: string) => void;
|
on_session_delete: (sessionId: string) => void;
|
||||||
on_notification: (notification: NotificationDto) => void;
|
on_notification: (notification: NotificationDto) => void;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
import { getReleaseType } from '$lib/utils';
|
|
||||||
|
|
||||||
describe('utils', () => {
|
|
||||||
describe(getReleaseType.name, () => {
|
|
||||||
it('should return "major" for major version changes', () => {
|
|
||||||
expect(getReleaseType({ major: 1, minor: 0, patch: 0 }, { major: 2, minor: 0, patch: 0 })).toBe('major');
|
|
||||||
expect(getReleaseType({ major: 1, minor: 0, patch: 0 }, { major: 3, minor: 2, patch: 1 })).toBe('major');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return "minor" for minor version changes', () => {
|
|
||||||
expect(getReleaseType({ major: 1, minor: 0, patch: 0 }, { major: 1, minor: 1, patch: 0 })).toBe('minor');
|
|
||||||
expect(getReleaseType({ major: 1, minor: 0, patch: 0 }, { major: 1, minor: 2, patch: 1 })).toBe('minor');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return "patch" for patch version changes', () => {
|
|
||||||
expect(getReleaseType({ major: 1, minor: 0, patch: 0 }, { major: 1, minor: 0, patch: 1 })).toBe('patch');
|
|
||||||
expect(getReleaseType({ major: 1, minor: 0, patch: 0 }, { major: 1, minor: 0, patch: 5 })).toBe('patch');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return "none" for matching versions', () => {
|
|
||||||
expect(getReleaseType({ major: 1, minor: 0, patch: 0 }, { major: 1, minor: 0, patch: 0 })).toBe('none');
|
|
||||||
expect(getReleaseType({ major: 1, minor: 2, patch: 3 }, { major: 1, minor: 2, patch: 3 })).toBe('none');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -21,7 +21,6 @@ import {
|
|||||||
unlinkOAuthAccount,
|
unlinkOAuthAccount,
|
||||||
type MemoryResponseDto,
|
type MemoryResponseDto,
|
||||||
type PersonResponseDto,
|
type PersonResponseDto,
|
||||||
type ServerVersionResponseDto,
|
|
||||||
type SharedLinkResponseDto,
|
type SharedLinkResponseDto,
|
||||||
type UserResponseDto,
|
type UserResponseDto,
|
||||||
} from '@immich/sdk';
|
} from '@immich/sdk';
|
||||||
@@ -386,22 +385,3 @@ export function createDateFormatter(localeCode: string | undefined): DateFormatt
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getReleaseType = (
|
|
||||||
current: ServerVersionResponseDto,
|
|
||||||
newVersion: ServerVersionResponseDto,
|
|
||||||
): 'major' | 'minor' | 'patch' | 'none' => {
|
|
||||||
if (current.major !== newVersion.major) {
|
|
||||||
return 'major';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (current.minor !== newVersion.minor) {
|
|
||||||
return 'minor';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (current.patch !== newVersion.patch) {
|
|
||||||
return 'patch';
|
|
||||||
}
|
|
||||||
|
|
||||||
return 'none';
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
websocketStore,
|
websocketStore,
|
||||||
type ReleaseEvent,
|
type ReleaseEvent,
|
||||||
} from '$lib/stores/websocket';
|
} from '$lib/stores/websocket';
|
||||||
import { copyToClipboard, getReleaseType } from '$lib/utils';
|
import { copyToClipboard } from '$lib/utils';
|
||||||
import { isAssetViewerRoute } from '$lib/utils/navigation';
|
import { isAssetViewerRoute } from '$lib/utils/navigation';
|
||||||
import type { ServerVersionResponseDto } from '@immich/sdk';
|
import type { ServerVersionResponseDto } from '@immich/sdk';
|
||||||
import { modalManager, setTranslations } from '@immich/ui';
|
import { modalManager, setTranslations } from '@immich/ui';
|
||||||
@@ -85,9 +85,8 @@
|
|||||||
|
|
||||||
const releaseVersion = semverToName(release.releaseVersion);
|
const releaseVersion = semverToName(release.releaseVersion);
|
||||||
const serverVersion = semverToName(release.serverVersion);
|
const serverVersion = semverToName(release.serverVersion);
|
||||||
const type = getReleaseType(release.serverVersion, release.releaseVersion);
|
|
||||||
|
|
||||||
if (type === 'none' || type === 'patch' || localStorage.getItem('appVersion') === releaseVersion) {
|
if (localStorage.getItem('appVersion') === releaseVersion) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user