Commit Graph

545 Commits (f5ff36a1f8051f5a12e74ec62840915edbf310d1)

Author SHA1 Message Date
Zack Pollard ac36effb45
feat: sync implementation for the user entity (#16234)
* ci: print out typeorm generation changes

* feat: sync implementation for the user entity

wip

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-02-20 23:37:57 +07:00
Jason Antwi-Appah 34b88bb47a
feat(web): support searching by EXIF rating (#16208)
* Add rating to search DTO

* Add search by EXIF rating in search query builder

* Generate OpenAPI spec

* Add rating filter on web

* Add rating filter to search docs

* Format / lint

* Hide rating filter if ratings are disabled

* chore: component order in form

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-02-20 16:17:06 +07:00
renovate[bot] 376282e538
chore(deps): update dependency @types/node to ^22.13.4 (#16206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-19 14:54:12 +07:00
renovate[bot] 516709ffe1
chore(deps): update dependency @types/node to ^22.13.2 (#16200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 15:10:44 +07:00
renovate[bot] 425cf62482
fix(deps): update typescript-projects (#16178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-02-18 20:40:09 +07:00
Jason Rasmussen 7c26663013
chore: removed unused endpoint (#16167) 2025-02-17 13:07:50 +07:00
renovate[bot] c524fcf084
chore(deps): update node.js to v22.14.0 (#16132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-15 21:29:33 +07:00
renovate[bot] 2271984dbd
chore(deps): update dependency @types/node to ^22.13.1 (#16013)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 00:19:02 +07:00
github-actions 8794c84e9d chore: version v1.126.1 2025-02-10 17:54:02 +07:00
github-actions feba590de7 chore: version v1.126.0 2025-02-10 16:10:06 +07:00
Jason Rasmussen 61b8eb85b5
feat: view album shared links (#15943) 2025-02-07 16:38:20 +07:00
Jason Rasmussen c5360e78c5
feat(web): shared link filters (#15948) 2025-02-07 13:05:15 +07:00
Jason Rasmussen 23014c263b
feat(api): set person color (#15937) 2025-02-07 10:06:58 +07:00
Arno 7ec3610753
feat: Mark people as favorite (#14866)
* feat: added ability to mark people as favorite, which get sorted to the front of the people list

* feat(server): added unit test for favorite people

* feat(server): refactored for better readability

* fixed person service unit tests

* fixed open-api and sql checks

* fixed bad codegen and removed unnecessary type assertion again

* chore: clean up

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2025-02-04 08:52:17 +07:00
Alex 4efacfbb91
feat: search by description (#15818)
* feat: search by description

* wip: mobile

* wip: mobile ui

* wip: mobile search logic

* feat: using f_unaccent

* icon to fit with text search
2025-02-02 15:18:13 +07:00
David Wolff 9ac95d6845
feat: add searching by tags (#15395)
* feat: add searching by tags

* fix: fix merge

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-01-31 21:37:22 +07:00
github-actions 4fd8c1b3c1 chore: version v1.125.7 2025-01-29 17:41:38 +07:00
Ben Cochran b4a4abbf51
fix(docs): move a few API doc comments to descriptions (#15381)
Previously, the comments were being used as the summaries, and thus were
displayed as the “title” of these endpoints
2025-01-29 11:58:10 +07:00
Jason Rasmussen a0aea021a1
fix(server): restore user (#15763) 2025-01-29 16:49:08 +07:00
Christian Kündig fe1e09e51f
fix(server): Allow negative rating (for rejected images) (#15699)
Allow negative rating (for rejected images)
2025-01-27 21:54:29 +07:00
github-actions f44669447f chore: version v1.125.6 2025-01-28 02:58:27 +07:00
github-actions 64d926581f chore: version v1.125.5 2025-01-27 20:04:50 +07:00
github-actions e5794e6cfc chore: version v1.125.4 2025-01-27 18:44:12 +07:00
github-actions 72a55c13b6 chore: version v1.125.3 2025-01-26 14:14:48 +07:00
github-actions 9871a04d54 chore: version v1.125.2 2025-01-24 19:09:06 +07:00
github-actions 50a2f6193f chore: version v1.125.1 2025-01-23 16:52:23 +07:00
github-actions 49a16045bd chore: version v1.125.0 2025-01-23 16:23:47 +07:00
renovate[bot] fa3b5a4c8f
chore(deps): update node (#15554)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 08:32:14 +07:00
renovate[bot] d1d26c60d6
fix(deps): update typescript-projects (#14892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-01-22 22:15:38 +07:00
renovate[bot] c8abe9a2fd
chore(deps): update node.js to v22.13.1 (#15503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 16:16:46 +07:00
renovate[bot] 58d5cc1e4b
chore(deps): update dependency @types/node to ^22.10.7 (#15479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 11:54:47 +07:00
renovate[bot] 8b4390c247
chore(deps): update dependency @types/node to ^22.10.5 (#15246)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 22:06:18 +07:00
renovate[bot] 2301affd7e
chore(deps): update node.js to v22.13.0 (#15249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 22:04:22 +07:00
Mert 2e12c46980
refactor(server): use kysely (#12857) 2025-01-09 11:15:41 +07:00
github-actions 8d836ae04f chore: version v1.124.2 2025-01-08 23:16:35 +07:00
github-actions cc10fc15c3 chore: version v1.124.1 2025-01-08 16:16:15 +07:00
github-actions 840d99ed25 chore: version v1.124.0 2025-01-07 19:00:42 +07:00
renovate[bot] 6b08e82cf7
fix(deps): update dependency @nestjs/swagger to v8 (#13881)
* fix(deps): update dependency @nestjs/swagger to v8

* chore: generate open api

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-12-23 21:03:34 +07:00
renovate[bot] 0d060ebb32
chore(deps): update node (#14736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 15:21:01 +07:00
github-actions fd34a914a6 chore: version v1.123.0 2024-12-17 16:00:50 +07:00
Lukas 12e55f5bf0
feat(server): Merge Faces sorted by Similarity (#14635)
* Merge Faces sorted by Similarity

* Adds face sorting to the side panel face merger

* run make open-api

* Make it one query

* Only have the single order by when sorting by closest face
2024-12-16 08:47:11 +07:00
renovate[bot] 59d6af54c7
chore(deps): update node.js to v22.12.0 (#14650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 10:12:44 +07:00
github-actions c52f1bae81 chore: version v1.122.3 2024-12-11 21:15:03 +07:00
github-actions 03eb5903fe chore: version v1.122.2 2024-12-08 23:41:22 +07:00
github-actions 97c1eb7289 chore: version v1.122.1 2024-12-06 13:49:14 +07:00
github-actions 37220a342a chore: version v1.122.0 2024-12-05 16:29:46 +07:00
Tim Van Onckelen 292182fa7f
feat: Notification Email Templates (#13940) 2024-12-04 20:26:02 +07:00
Mert 4bf1b84cc2
feat(ml): support multiple urls (#14347)
* support multiple url

* update api

* styling

unnecessary `?.`

* update docs, make new url field go first

add load balancing section

* update tests

doc formatting

wording

wording

linting

* small styling

* `url` -> `urls`

* fix tests

* update docs

* make docusaurus happy

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-12-04 20:17:47 +07:00
Sam Holton 5417e34fb6
feat(server): Add publicUsers toggle for user search (#14330)
* feat(server): Add publicUsers toggle for user search

* tests

* docs: add check:typescript for web PR checklist

* return auth.user when publicUsers is false - app testing

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-11-26 15:51:01 +07:00
Jason Rasmussen 9e1e9b1fbf
refactor: rename searchMetadata to searchAssets (#14151) 2024-11-20 14:47:25 +07:00
github-actions 98c9ae1f7d chore: version v1.121.0 2024-11-20 16:15:53 +07:00
weathondev f5c4af73aa
feat: adding photo & video storage space to server stats (#14125)
* expose detailed user storage stats + display them in the storage per user table

* chore: openapi & sql

* fix: fix test stubs

* fix: formatting errors, e2e test and server test

* fix: upper lower case typo in spec file

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-11-15 16:38:57 +07:00
github-actions 31a1e64b58 chore: version v1.120.2 2024-11-12 17:30:29 +07:00
renovate[bot] bda97c4e0e
chore(deps): update node (#14090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 07:32:52 +07:00
Jason Rasmussen 64831e2328
refactor: remove smart info table (#13985) 2024-11-07 11:25:10 +07:00
github-actions 599b489f81 chore: version v1.120.1 2024-11-07 15:31:19 +07:00
github-actions f1b8a9374f chore: version v1.120.0 2024-11-06 16:17:29 +07:00
renovate[bot] 5d7a04367c
chore(deps): update dependency @types/node to ^22.8.6 (#13937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 14:28:13 +07:00
renovate[bot] 1d55b5bfc0
chore(deps): update dependency @types/node to ^22.8.5 (#13923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-05 06:48:01 +07:00
renovate[bot] 60afd7b400
chore(deps): update node (#13918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-04 19:52:23 +07:00
Mert b9096f3e99
feat(server): use tonemapx for software tone-mapping (#13785) 2024-10-31 20:48:23 +07:00
renovate[bot] a28b92b3cc
chore(deps): update dependency node to v22 (#13855)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 14:21:45 +07:00
renovate[bot] 066682f48d
chore(deps): update dependency @types/node to ^22.8.1 (#13854)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 14:20:26 +07:00
Zack Pollard 7d933ec97a
feat: built-in automatic database backups (#13773) 2024-10-31 11:29:42 +07:00
renovate[bot] 92ad03615c
chore(deps): update node to v22 (major) (#13792)
* chore(deps): update node to v22

* fix: deprecated constructor

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-10-30 16:05:02 +07:00
github-actions 00dd9419a5 chore: version v1.119.1 2024-10-29 13:33:36 +07:00
renovate[bot] 490fcc5591
chore(deps): update dependency @types/node to ^20.17.0 (#13787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 21:55:44 +07:00
github-actions 8449e78c8f chore: version v1.119.0 2024-10-28 14:41:08 +07:00
renovate[bot] 0cb9c0d20d
chore(deps): update dependency @types/node to ^20.16.12 (#13660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-22 11:58:43 +07:00
pyorot b1149881bd
feat(server): add pcm_s16le accepted audio codec (#13418) 2024-10-18 08:26:16 +07:00
github-actions e8015dc7d7 chore: version v1.118.2 2024-10-16 18:44:39 +07:00
renovate[bot] 7d3ed6bd55
chore(deps): update typescript-projects (#13453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 04:57:57 +07:00
github-actions edd7dfb5d8 chore: version v1.118.1 2024-10-15 20:44:10 +07:00
renovate[bot] f2b799cd6f
chore(deps): update node (#13449) 2024-10-15 14:39:55 +07:00
github-actions 8f69d9d0ec chore: version v1.118.0 2024-10-15 10:48:53 +07:00
renovate[bot] 48c6c1ad2f
chore(deps): update dependency node to v20.18.0 (#13271)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 22:42:33 +07:00
renovate[bot] 680bf34042
chore(deps): update dependency @types/node to ^20.16.10 (#13269)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-08 02:05:31 +07:00
Jason Rasmussen 7ee0221c8e
chore: remove deprecated endpoint (#13190) 2024-10-04 15:10:13 +07:00
Mert 2c87683fd4
feat(server): refresh face detection (#12335)
* refresh faces

handle non-ml faces

* fix metadata face handling

* updated tests

* added todo comment
2024-10-03 21:58:28 +07:00
github-actions 6b8462402b chore: version v1.117.0 2024-10-03 01:59:28 +07:00
Jason Rasmussen 4d20b11f25
feat: track upgrade history (#13097) 2024-10-01 13:33:58 +07:00
Zack Pollard 3eccff4306
feat: support and feedback modal with third party support (#13056) 2024-10-01 11:15:31 +07:00
renovate[bot] 14e6d23eeb
chore(deps): update dependency @types/node to ^20.16.9 (#13069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 01:26:39 +07:00
Mert 7adb35e59e
fix(server): `/search/random` failing with certain options (#13040)
* fix relation handling, remove pagination

* update api, sql

* update mock
2024-09-30 00:29:35 +07:00
Mert 995f0fda47
feat(server): separate quality for thumbnail and preview images (#13006)
* allow different thumbnail and preview quality, better config structure

* update web and api

* wording

* remove empty line?
2024-09-28 06:01:04 +07:00
github-actions 8bbcd5c31e chore: version v1.116.2 2024-09-27 18:17:49 +07:00
github-actions 7c15e11efc chore: version v1.116.1 2024-09-27 15:32:16 +07:00
github-actions 60679a6369 chore: version v1.116.0 2024-09-26 14:51:27 +07:00
Jonathan Jogenfors b2f2be3485
refactor(server): library syncing (#12220)
* refactor: library scanning

fix tests

remove offline files step

cleanup library service

improve tests

cleanup tests

add db migration

fix e2e

cleanup openapi

fix tests

fix tests

update docs

update docs

update mobile code

fix formatting

don't remove assets from library with invalid import path

use trash for offline files

add migration

simplify scan endpoint

cleanup library panel

fix library tests

e2e lint

fix e2e

trash e2e

fix lint

add asset trash tests

add more tests

ensure thumbs are generated

cleanup svelte

cleanup queue names

fix tests

fix lint

add warning due to trash

fix trash tests

fix lint

fix tests

Admin message for offline asset

fix comments

Update web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

add permission to library scan endpoint

revert asset interface sort

add trash reason to shared link stub

improve path view in offline

update docs

improve trash performance

fix comments

remove stray comment

* refactor: add back isOffline and remove trashReason from asset, change sync job flow

* chore(server): drop coverage to 80% for functions

* chore: rebase and generated files

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-09-25 18:26:19 +07:00
Jason Rasmussen 005528ab5e
fix(server): http error parsing on endpoints without a default response (#12927) 2024-09-25 12:05:03 +07:00
Daniel Dietzler ec32a9e610
fix: set min values for face detection to reasonable values (#12877)
fix: set min values for face detection to >0
2024-09-23 22:03:59 +07:00
Zack Pollard bcd416477b
feat: serve map tile styles from tiles.immich.cloud (#12858)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-09-23 20:30:23 +07:00
Jason Rasmussen ad33ce5938
refactor(mobile): open api dto upgrade (#12793) 2024-09-23 15:41:41 +07:00
jschwalbe 9f8a7e0bea
feat(server): sort assets randomly from the API 'api/search/metadata' endpoint by including 'order': 'rand' in the API call. (#12741)
feat(server): search metadata random sort order

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-09-23 12:09:26 +07:00
Jason Rasmussen 6740c67ed8
fix: empty and restore over 1,000 items (#12751) 2024-09-18 09:57:52 +07:00
renovate[bot] ab5dd4d66a
chore(deps): update typescript-projects (#12536)
* chore(deps): update typescript-projects

* chore: import

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-09-17 22:31:12 +07:00
martin c468da589a
fix: update the profile picture in the navigation-bar (#12723)
* fix: update the profile picture in the navigation-bar

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-09-17 01:48:15 +07:00
Jason Rasmussen b74b20824a
feat: tag cleanup job (#12654) 2024-09-16 16:49:12 +07:00
github-actions 230eff4e1a chore: version v1.115.0 2024-09-12 15:37:59 +07:00
renovate[bot] 95987c9777
chore(deps): update node (#12528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 21:30:05 +07:00
Jason Rasmussen 01c7adc24d
feat(web): unlink live photos (#12574)
feat(web): unlink live photo
2024-09-11 16:26:29 +07:00
Jason Rasmussen 27050af57b
feat(web): manually link live photos (#12514)
feat(web,server): manually link live photos
2024-09-10 08:51:11 +07:00
Jason Rasmussen d39917a4db
fix(web): show trash indicator (#12521) 2024-09-09 16:03:17 +07:00
github-actions 068904f746 chore: version v1.114.0 2024-09-06 13:49:08 +07:00
Alex 0148005931
chore: upgrade openapi generator version (#12358) 2024-09-05 11:31:48 +07:00
BugFest 77e6a6d78b
feat(server): Import face regions from metadata (#6455)
* feat: faces-from-metadata - Import face regions from metadata

Implements immich-app#1692.
- OpenAPI spec changes to accomodate metadata face import configs. New settings to enable the feature.
- Updates admin UI compoments
- ML faces detection/recognition & Exif/Metadata faces compatibility

Signed-off-by: BugFest <bugfest.dev@pm.me>

* chore(web): remove unused file confirm-enable-import-faces

* chore(web): format metadata-settings

* fix(server): faces-from-metadata tests and format

* fix(server): code refinements, nullable face asset sourceType

* fix(server): Add RegionInfo to ImmichTags interface

* fix(server): deleteAllFaces sourceType param can be undefined

* fix(server): exiftool-vendored 27.0.0 moves readArgs into ExifToolOptions

* fix(server): rename isImportFacesFromMetadataEnabled to isFaceImportEnabled

* fix(server): simplify sourceType conditional

* fix(server): small fixes

* fix(server): handling sourceType

* fix(server): sourceType enum

* fix(server): refactor metadata applyTaggedFaces

* fix(server): create/update signature changes

* fix(server): reduce computational cost of Person.getManyByName

* fix(server): use faceList instead of faceSet

* fix(server): Skip regions without Name defined

* fix(mobile): Update open-api (face assets feature changes)

* fix(server): Face-Person reconciliation with map/index

* fix(server): tags.RegionInfo.AppliedToDimensions must be defined to process face-region

* fix(server): fix shared-link.service.ts format

* fix(mobile): Update open-api after branch update

* simplify

* fix(server): minor fixes

* fix(server): person create/update methods type enforcement

* fix(server): style fixes

* fix(server): remove unused metadata code

* fix(server): metadata faces unit tests

* fix(server): top level config metadata category

* fix(server): rename upsertFaces to replaceFaces

* fix(server): remove sourceType when unnecessary

* fix(server): sourceType as ENUM

* fix(server): format fixes

* fix(server): fix tests after sourceType ENUM change

* fix(server): remove unnecessary JobItem cast

* fix(server): fix asset enum imports

* fix(open-api): add metadata config

* fix(mobile): update open-api after metadata open-api spec changes

* fix(web): update web/api metadata config

* fix(server): remove duplicated sourceType def

* fix(server): update generated sql queries

* fix(e2e): tests for metadata face import feature

* fix(web): Fix check:typescript

* fix(e2e): update subproject ref

* fix(server): revert format changes to pass format checks after ci

* fix(mobile): update open-api

* fix(server,movile,open-api,mobile): sourceType as DB data type

* fix(e2e): upload face asset after enabling metadata face import

* fix(web): simplify metadata admin settings and i18n keys

* Update person.repository.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

* fix(server): asset_faces.sourceType column not nullable

* fix(server): simplified syntax

* fix(e2e): use SDK for everything except the endpoint being tested

* fix(e2e): fix test format

* chore: clean up

* chore: clean up

* chore: update e2e/test-assets

---------

Signed-off-by: BugFest <bugfest.dev@pm.me>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-09-04 18:23:58 +07:00
github-actions 48da4c9317 chore: version v1.113.1 2024-09-03 14:12:24 +07:00
renovate[bot] 53609d45fe
chore(deps): update dependency @types/node to ^20.16.2 (#12250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-03 08:53:35 +07:00
github-actions cc88cbb456 chore: version v1.113.0 2024-08-30 17:16:21 +07:00
Jason Rasmussen 9b1a985d29
fix(server): tag upsert (#12141) 2024-08-30 12:44:24 +07:00
Alex b3b599e071
chore(server): deprecate resized property (#12143)
* chore: add dummy resized value for release

* openapi

* add deprecation life cycle info

* use correct default value
2024-08-30 11:01:50 +07:00
Alex ebecb60f39
feat: user's features preferences (#12099)
* feat: metadata in UserPreference

* feat: web metadata settings

* feat: web metadata settings

* fix: typo

* patch openapi

* fix: missing translation key

* new organization of preference strucutre

* feature settings on web

* localization

* added and used feature settings

* add default value to response dto

* patch openapi

* format en.json file

* implement helper method

* use tags preference logic

* Fix logic bug and add tests

* fix preference can be null in detail panel
2024-08-29 14:29:04 +07:00
Jason Rasmussen d08a20bd57
feat: tags (#11980)
* feat: tags

* fix: folder tree icons

* navigate to tag from detail panel

* delete tag

* Tag position and add tag button

* Tag asset in detail panel

* refactor form

* feat: navigate to tag page from clicking on a tag

* feat: delete tags from the tag page

* refactor: moving tag section in detail panel and add + tag button

* feat: tag asset action in detail panel

* refactor add tag form

* fdisable add tag button when there is no selection

* feat: tag bulk endpoint

* feat: tag colors

* chore: clean up

* chore: unit tests

* feat: write tags to sidecar

* Remove tag and auto focus on tag creation form opened

* chore: regenerate migration

* chore: linting

* add color picker to tag edit form

* fix: force render tags timeline on navigating back from asset viewer

* feat: read tags from keywords

* chore: clean up

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-08-29 12:14:03 +07:00
renovate[bot] 365facfc51
chore(deps): update node (#12063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-28 08:52:49 +07:00
renovate[bot] 4f02412493
chore(deps): update dependency node to v20.17.0 (#12040)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-25 22:50:51 +07:00
Jason Rasmussen 7fbf50a75e
fix: remove `asset.resized` (#11983)
fix: remove resized
2024-08-22 23:24:49 +07:00
David Kerr 07538299cf
feat: folder view (#11880)
* feat: folder view poc

* fix(folder-view): ui modifications

* fix(folder-view): improves utility return types

* fix(folder-view): update getAssetsByOriginalPath

Endpoint now only returns direct children of the path instead of all images in all subfolders.  Functions renamed and scoped to "folder", endpoints renamed

* fix(folder-view): improve typing

* fix(folder-view): replaces css with tailwind

* fix(folder-view): includes folders in main panel

* feat(folder-view): folder cache implementation

* fix(folder-view): can now search for absolute paths

* fix(folder-view): sets default sort to alphabetical by filename

* refactor/styling the browser view

* double click to navigate

* folder tree

* use correct side bar icon

* styling when selected

* correct open icon

* folder layout

* return assetReponseDto

* it's alive

* update new api

* more styling for folder tree

* use query params and path viewer

* use arrow up left for parent folder backward navigation

* use arrow up left for parent folder backward navigation

* encode URL

* handle long folder name

* refactor to the view controller

* remove unused code

* clear cache when logout

* cleaning up

* cleaning up web

* clean as new

* clean as new

* pr feedback + show asset name

* add tests

* add tests

* remove generated file

* lint

* revert docker-compose.dev file

* Update server/src/services/view.service.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

* Update server/src/services/view.service.ts

Co-authored-by: Jason Rasmussen <jason@rasm.me>

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-21 13:49:37 +07:00
Jason Rasmussen 3be1aaaaa4
refactor(server): controller cleanup (#11923)
chore(server): controller cleanup
2024-08-20 12:50:14 +07:00
Jason Rasmussen ef9a06be5c
fix(server): album statistics endpoint (#11924) 2024-08-20 07:50:36 +07:00
renovate[bot] 2fba9f9547
chore(deps): update dependency @types/node to ^20.14.15 (#11920)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-20 00:30:28 +07:00
Jason Rasmussen 8338657eaa
refactor(server): stacks (#11453)
* refactor: stacks

* mobile: get it built

* chore: feedback

* fix: sync and duplicates

* mobile: remove old stack reference

* chore: add primary asset id

* revert change to asset entity

* mobile: refactor mobile api

* mobile: sync stack info after creating stack

* mobile: update timeline after deleting stack

* server: update asset updatedAt when stack is deleted

* mobile: simplify action

* mobile: rename to match dto property

* fix: web test

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-08-19 12:37:15 +07:00
Jason Rasmussen f230b3aa42
feat(server): granular permissions for api keys (#11824)
feat(server): api auth permissions
2024-08-16 09:48:43 +07:00
Jason Rasmussen 32c05ea950
feat(server): do not automatically download android motion videos (#11774)
feat(server): do not automatically download embedded android motion videos
2024-08-15 20:06:16 +07:00
Jason Rasmussen a4506758aa
refactor: auth service (#11811) 2024-08-15 09:14:23 +07:00
Alex The Bot f7bfde6a32 Version v1.112.1 2024-08-15 00:00:22 +07:00
Alex The Bot 228a7710e6 Version v1.112.0 2024-08-14 15:51:18 +07:00
Alex 5ec407b57c
chore(mobile): properly patch openapi with custom response dto (#11753) 2024-08-13 14:39:25 +07:00
renovate[bot] 54b276c984
chore(deps): update dependency @types/node to ^20.14.14 (#11737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 23:31:57 +07:00
Christoph Suter f33dbdfe9a
feat(web): add Exif-Rating (#11580)
* Add Exif-Rating

* Integrate star rating as own component

* Add e2e tests for rating and validation

* Rename component and async handleChangeRating

* Display rating can be enabled in app settings

* Correct i18n reference

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* Star rating: change from slider to buttons

* Star rating for clarity

* Design updates.

* Renaming and code optimization

* chore: clean up

* chore: e2e formatting

* light mode border and default value

---------

Co-authored-by: Christoph Suter <christoph@suter-burri.ch>
Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-08-09 17:45:52 +07:00
renovate[bot] ea135cc310
chore(deps): update dependency @types/node to ^20.14.13 (#11604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 22:59:26 +07:00
Alex f040c9fb38
chore(server): remove get person asset limit (#11597)
* chore(server): remover get person asset limit

* sql

* remove getPersonAsset endpoint

* remove getPersonAsset endpoint

* use search endpoint to get people

* fix: server test

* mobile linter

* fix: server test

* remove debuglog

* deprecated endpoint

* change page size on mobile

* revert max size

* fix test
2024-08-06 16:22:13 +07:00
Justin Forseth d3a5490e71
feat(server): search unknown place (#10866)
* Allow submission of null country

* Update searchAssetBuilder to handle nulls

andWhere({country:null}) produces `"exifInfo"."country" = NULL`. We want
`"exifInfo"."country" IS NULL`, so we have to treat NULL as a special
case

* Allow null country in frontend

* Make the query code a bit more straightforward

* Remove unused brackets import

* Remove log message

* Don't change whitespace for no reason

* Fix prettier style issue

* Update search.dto.ts validators per @jrasm91's recommendation

* Update api types

* Combine null country and state into one guard clause

* chore: clean up

* chore: add e2e for null/empty city, state, country search

* refactor: server returns suggestion for null values

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-08-02 03:27:40 +07:00
Michel Heusschen b73f7fe16f
refactor: deduplicate MemoryType and ReactionType enums (#11479)
* refactor: deduplicate memorytype and reactiontype enums

* fix mobile
2024-07-31 12:08:31 +07:00
renovate[bot] 3a3ea6135e
chore(deps): update typescript-projects (#11437)
* chore(deps): update typescript-projects

* chore: formatting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2024-07-31 15:40:23 +07:00
Alex The Bot 919fd7d41f Version v1.111.0 2024-07-30 19:06:39 +07:00
Jason Rasmussen ebc71e428d
feat(server): reverse geocoding endpoint (#11430)
* feat(server): reverse geocoding endpoint

* chore: rename error message
2024-07-29 18:17:26 +07:00
renovate[bot] 7bb7f63d57
chore(deps): update dependency node to v20.16.0 (#11421)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-29 10:33:01 +07:00
Alex The Bot 04340b3a62 Version v1.110.0 2024-07-26 15:38:20 +07:00
Alex ef7a6bb246
chore(web): change license wording and other things (#11309) 2024-07-26 10:34:35 +07:00
Michel Heusschen 8e6bc13540
feat: people infinite scroll (#11326)
* feat: people infinite scroll

* add infinite scroll to show & hide modal

* update unit tests

* show total people count instead of currently loaded

* update personsearchdto
2024-07-25 15:59:28 +07:00
renovate[bot] 9e60c107ca
chore(deps): update node (#11322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-24 16:13:24 +07:00
renovate[bot] b259095899
chore(deps): update node (#11300)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-23 08:22:15 +07:00
Michel Heusschen 849bc6e3aa
fix(server): correct openapi response type for getServerLicense() (#11261)
* fix(server): correct openapi response type for getServerLicense()

* return 404 error when license doesn't exist

* update e2e test
2024-07-22 08:50:45 +07:00
Mert 9d2d556200
feat(server): accepted video containers (#11274)
* add accepted container config

* update api

* mp4 option makes no sense

* add to transcoding settings

* wording

* updated spec config

* formatting
2024-07-21 21:14:23 +07:00
Alex The Bot b9fc59ca9f Version v1.109.2 2024-07-18 19:33:29 +07:00
Alex The Bot 01ba859567 Version v1.109.1 2024-07-18 17:55:58 +07:00
Alex The Bot c77702279c Version v1.109.0 2024-07-18 16:03:42 +07:00
Jason Rasmussen 25a380d023
feat(server): userinfo signing (#10756)
* feat(server): userinfo signing

* chore: e2e tests
2024-07-11 07:55:00 +07:00
Alex The Bot c7432834d0 Version v1.108.0 2024-07-10 16:14:02 +07:00
renovate[bot] 27b13b82f5
chore(deps): update node (#10996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 10:44:25 +07:00
renovate[bot] c1036d6f88
chore(deps): update dependency node to v20.15.1 (#10969)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-09 06:56:25 +07:00
renovate[bot] af94f0f979
chore(deps): update typescript-projects (#10962)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-08 22:03:15 +07:00
Jason Rasmussen 334a709cc6
refactor(server): partner search dto (#10902)
* refactor(server): partner search dto

* fix: missed reference

* mobile fix

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-07-08 16:41:39 +07:00
Alex The Bot 96f29cefeb Version v1.107.2 2024-07-03 03:18:19 +07:00
Alex The Bot aa29f5d69c Version v1.107.1 2024-07-02 19:04:29 +07:00
Alex The Bot b47ec2f88f Version v1.107.0 2024-07-02 14:13:10 +07:00
renovate[bot] 2934676594
chore(deps): update node (#10741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-02 11:09:15 +07:00
Zack Pollard 3b37b70626
feat(server): user and server license endpoints (#10682)
* feat: user license endpoints

* feat: server license endpoints

* chore: pr feedback

* chore: add more test cases

* chore: add prod license public keys

* chore: open-api generation
2024-07-01 17:43:16 +07:00
Zack Pollard a2364a12cf
refactor: move /server-info endpoints to /server (#10677) 2024-06-28 17:08:19 +07:00
martin 37b5d92110
fix(web): new feature photo (#9443)
* fix: new feature photo

* fix: use updatedAt
2024-06-27 20:16:26 +07:00
Jason Rasmussen 8a445cac07
chore: build metadata (#10612)
feat: build metadata
2024-06-26 08:25:09 +07:00
renovate[bot] 15c1cd6449
chore(deps): update dependency @types/node to ^20.14.7 (#10635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 21:48:48 +07:00
renovate[bot] 8198259de8
chore(deps): update dependency typescript to v5.5.2 (#10633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 16:28:11 +07:00
renovate[bot] 905d6c1508
chore(deps): update dependency @types/node to ^20.14.6 (#10627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-25 11:00:49 +07:00
Zack Pollard 5912fcc393
ci: use .nvmrc for node-setup node-version in github actions (#10619)
* chore: add node version pinning with .nvmrc and volta for the typescript sdk

* ci: add missing setup-node actions and use .nvmrc for setup-node node-version
2024-06-25 14:01:15 +07:00
renovate[bot] d7a33c8ec2
fix(deps): update typescript-projects (#10611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-24 23:00:09 +07:00
Daniel Dietzler 5e9a7b17d9
fix(server): allow library id to be null in metadata search (#10512)
* fix: allow library id to be null in metadata search

* chore: open api
2024-06-20 16:02:05 +07:00
Daniel Dietzler dddc06c3b2
feat: user preferences for archive download size (#10296)
* feat: user preferences for archive download size

* chore: open api

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-06-14 11:27:12 +07:00
renovate[bot] ee186a40c2
fix(deps): update typescript-projects (#10105)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-13 20:46:26 +07:00
Alex The Bot 8c2195c820 Version v1.106.4 2024-06-13 15:12:51 +07:00
Alex e2a2c86a31
chore(server): optional originalMimeType in asset response payload (#10272)
* chore(server): optional originalMimeType in asset response payload

* lint

* Update web/src/lib/utils/asset-utils.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* fix permission of shared link

* test

* test

* test

* test server

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-06-13 09:21:47 +07:00
Michel Heusschen a54e01ef2f
fix: load original image for gifs (#10252) 2024-06-13 05:57:46 +07:00
Alex The Bot a8a7d29891 Version v1.106.3 2024-06-12 18:26:10 +07:00
Jason Rasmussen 3d82005797
fix: no floats (replace with doubles) (#10218)
* fix: no floats (replace with doubles)

* Update server/src/utils/misc.ts

Co-authored-by: Zack Pollard <zackpollard@ymail.com>

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-06-12 17:36:24 +07:00
Alex The Bot 81790ab166 Version v1.106.2 2024-06-11 19:09:13 +07:00
Alex The Bot b5991c908e Version v1.106.1 2024-06-11 09:39:23 +07:00
Alex The Bot f32c02bd25 Version v1.106.0 2024-06-10 17:50:00 +07:00
Fynn Petersen-Frey 972c66d467
fix(server): proper asset sync (#10019)
* fix(server,mobile): proper asset sync

* fix CI issues

* only use id instead of createdAt+id

* remove createdAt index

* fix typo

* cleanup createdAt usage

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-06-09 14:19:28 +07:00
Alex 9ac2ac2fcb
feat(web): send test email button (#10011)
* feat(web): test email button

* openapi

* UI button

* Show notification

* pr feedback

* remove jobs

* send email directly from repository and add feedback

* avoid sending many emails

* linter

* pr feedback

* lint

* lint

* lint
2024-06-07 11:34:09 +07:00
Mert 2b1b43a7e4
feat(ml): composable ml (#9973)
* modularize model classes

* various fixes

* expose port

* change response

* round coordinates

* simplify preload

* update server

* simplify interface

simplify

* update tests

* composable endpoint

* cleanup

fixes

remove unnecessary interface

support text input, cleanup

* ew camelcase

* update server

server fixes

fix typing

* ml fixes

update locustfile

fixes

* cleaner response

* better repo response

* update tests

formatting and typing

rename

* undo compose change

* linting

fix type

actually fix typing

* stricter typing

fix detection-only response

no need for defaultdict

* update spec file

update api

linting

* update e2e

* unnecessary dimension

* remove commented code

* remove duplicate code

* remove unused imports

* add batch dim
2024-06-07 03:09:47 +07:00
Jan108 b2761b12d1
feat(web): Option to assign people to unassigned faces (#9773)
* added unassigned faces to people edit

* svelte fix

* fix format

* Captialized unassigned person name, removed person id from alttext, fixed problem with multiple faces per person

* Added faces to the getAssetInfo API endpoint

* Updated openApi clients

* Readded the photoeditor dependency

* fixed lint/format

* fixed photoViewer type

* changes getAssetInfo.faces to only include unassigned faces

* fix: bad merge

* title

* logic

---------

Co-authored-by: Jan108 <dasJan108@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-06-05 07:26:00 +07:00
renovate[bot] 69bce6680f
fix(deps): update typescript-projects (#9971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-04 10:35:24 +07:00
Alex b3ee394fdc
feat(web): email notification preference settings (#9934)
* feat(web): email notification preference settings

* Update

* remove failed api generation file

* fix handle album invite return value

* Update web/src/lib/components/user-settings-page/notifications-settings.svelte

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* wording

* test

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-06-03 16:00:20 +07:00
Jason Rasmussen 69d2fcb43e
refactor: asset media endpoints (#9831)
* refactor: asset media endpoints

* refactor: mobile upload livePhoto as separate request

* refactor: change mobile backup flow to use new asset upload endpoints

* chore: format and analyze dart code

* feat: mark motion as hidden when linked

* feat: upload video portion of live photo before image portion

* fix: incorrect assetApi calls in mobile code

* fix: download asset

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-05-31 13:44:04 +07:00
Daniel Dietzler 4376104e3a
refactor(server): rename api tags to follow plural nomenclature of endpoints (#9872)
* rename api tags to follow plural nomenclature of endpoints

* chore: open api

* fix mobile
2024-05-29 18:26:57 +07:00
Daniel Dietzler 5463660746
refactor(server)!: move markers and style to dedicated map endpoint/controller (#9832)
* move markers and style to dedicated map endpoint

* chore: open api

* chore: clean up repos

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-29 11:51:01 +07:00
Jason Rasmussen db4c66094c
refactor: image path building (#9823) 2024-05-28 19:15:02 +07:00
Jason Rasmussen 0fc6d69824
feat(server): user preferences (#9736)
* refactor(server): user endpoints

* feat(server): user preferences

* mobile: user preference

* wording

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-28 09:16:53 +07:00
Jason Rasmussen 75830a4878
refactor(server): user endpoints (#9730)
* refactor(server): user endpoints

* fix repos

* fix unit tests

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-27 05:15:52 +07:00
Min Idzelis d5cf8e4bfe
refactor(server): move checkExistingAssets(), checkBulkUpdate() remove getAllAssets() (#9715)
* Refactor controller methods, non-breaking change

* Remove getAllAssets

* used imports

* sync:sql

* missing mock

* Removing remaining references

* chore: remove unused code

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-24 21:02:22 +07:00
Zack Pollard 39d2c4f37b
chore: remove all deprecated endpoints/properties from server and mobile app (#9724)
* chore: remove deprecated title property from MemoryLaneResponseDto

* chore: remove deprecated webpPath and resizePath from MetadataSearchDto

* chore: remove deprecated sharedUserIds property from Album AddUsersDto

* chore: remove deprecated sharedUsers property from AlbumResponseDto

* chore: remove deprecated sharedWithUserIds property from CreateAlbumDto

* chore: remove deprecated isExternal and isReadOnly properties from AssetResponseDto

* chore: remove deprecated /server-info endpoint

* chore: bloody linters
2024-05-24 15:37:01 +07:00
Min Idzelis 4f21f6a2e1
feat: API operation replaceAsset, POST /api/asset/:id/file (#9684)
* impl and unit tests for replaceAsset

* Remove it.only

* Typo in generated spec +regen

* Remove unused dtos

* Dto removal fallout/bugfix

* fix - missed a line

* sql:generate

* Review comments

* Unused imports

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-23 20:26:22 +07:00
Alex 57d94bce68
feat(web): deduplication UI (#9540) 2024-05-23 12:57:25 +07:00
Jason Rasmussen e7aa50425c
test: sync open api spec (#9687)
test: sync spec file
2024-05-23 07:40:57 +07:00
Jason Rasmussen 8f37784eae
refactor(server): /user profile endpoint (#9669)
* refactor(server): user profile endpoint

* chore: open api
2024-05-22 14:31:12 +07:00
Jason Rasmussen ecd018a826
refactor(server): user info endpoint (#9668)
* refactor(server): user info endpoint

* chore: open api
2024-05-22 14:15:33 +07:00
Jason Rasmussen 202745f14b
refactor(server): plural endpoints (#9667) 2024-05-22 13:24:57 +07:00
Zack Pollard a3e7e8cc31
refactor: deprecate /server-info and replace with /server-info/storage (#9645) 2024-05-22 10:25:55 +07:00
renovate[bot] 143b9d6828
fix(deps): update typescript-projects (#9617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-21 00:32:18 +07:00
Jason Rasmussen 84d824d6a7
refactor: library type (#9525) 2024-05-20 18:09:10 +07:00
Alex 1ad04f0b17
chore(server): openapi generation (#9585) 2024-05-18 13:50:28 +07:00
Jason Rasmussen 136bb69bd0
refactor: sdk init (#9563) 2024-05-17 16:48:29 +07:00
Alex 2689178a35
chore(server): openapi generation for Duplicate controller (#9560) 2024-05-17 12:05:23 +07:00
Alex df42352f84
chore(server): openapi generation (#9554) 2024-05-17 14:58:55 +07:00
Mert d8eca168ca
feat(server): fully accelerated nvenc (#9452)
* use arrayContaining

* libplacebo for nvenc

update dockerfile

* tweaks

* update nvenc options

* tweak settings

* refactor

* toggle for hardware decoding, software / hardware decoding for nvenc and rkmpp

* fix software tone-mapping not being applied

* separate configs for hw/sw

* update api

* add hw decode toggle

* fix mutating config

* remove `version` flag

* fix config type

* remove submodule

* handle temporal AQ

* remove duplicate tests

* use `tonemap_opencl`

* wording

* update docs
2024-05-16 13:30:26 +07:00
Mert 64636c0618
feat(server): near-duplicate detection (#8228)
* duplicate detection job, entity, config

* queueing

* job panel, update api

* use embedding in db instead of fetching

* disable concurrency

* only queue visible assets

* handle multiple duplicateIds

* update concurrent queue check

* add provider

* add web placeholder, server endpoint, migration, various fixes

* update sql

* select embedding by default

* rename variable

* simplify

* remove separate entity, handle re-running with different threshold, set default back to 0.02

* fix tests

* add tests

* add index to entity

* formatting

* update asset mock

* fix `upsertJobStatus` signature

* update sql

* formatting

* default to 0.03

* optimize clustering

* use asset's `duplicateId` if present

* update sql

* update tests

* expose admin setting

* refactor

* formatting

* skip if ml is disabled

* debug trash e2e

* remove from web

* remove from sidebar

* test if ml is disabled

* update sql

* separate duplicate detection from clip in config, disable by default for now

* fix doc

* lower minimum `maxDistance`

* update api

* Add and Use Duplicate Detection Feature Flag (#9364)

* Add Duplicate Detection Flag

* Use Duplicate Detection Flag

* Attempt Fixes for Failing Checks

* lower minimum `maxDistance`

* fix tests

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* chore: fixes and additions after rebase

* chore: update api (remove new Role enum)

* fix: left join smart search so getAll works without machine learning

* test: trash e2e go back to checking length of assets is zero

* chore: regen api after rebase

* test: fix tests after rebase

* redundant join

---------

Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2024-05-16 18:08:37 +07:00
Jason Rasmussen 0589575154
chore: bump open-api (#9522) 2024-05-15 16:52:52 +07:00
Jason Rasmussen 73bf8f343a
chore(server): remove unused property (#9521) 2024-05-15 15:17:48 +07:00
Alex The Bot 88d4338348 Version v1.105.1 2024-05-14 21:31:24 +07:00
Alex The Bot 596ab39293 Version v1.105.0 2024-05-14 17:07:25 +07:00
renovate[bot] bf036f2f58
fix(deps): update typescript-projects (#9454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 21:42:48 +07:00
Alex The Bot a6f557c24c Version v1.104.0 2024-05-13 18:31:57 +07:00
Andreas Gerstmayr 48927f5fb9
feat(server, web): include pictures of shared albums on map (#7439)
* feat(server, web): include pictures of shared albums on map

* run prettier

* re-create api clients

* implement suggestions from code review

* shared from partner -> shared from partners

* rename to 'include shared partner assets'

* chore: fix tsc error in server and prettier in web

* fix: include assets shared via owner albums

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-13 09:28:57 +07:00
Jason Rasmussen 8743e17528
refactor(server): auth route metadata (#9344) 2024-05-09 13:58:44 +07:00
Jason Rasmussen e79d1b1ec2
refactor: create album users (#9315) 2024-05-07 16:38:09 +07:00
renovate[bot] ad404d79d4
fix(deps): update typescript-projects (#9293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 11:07:50 +07:00
Jason Rasmussen 5b87abb021
feat(server): read-write external assets (#9235)
* refactor: remove isReadOnly and isExternal usages

* chore: open api

* fix: linting

* remove mobile isReadOnly dependency

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-03 15:34:57 +07:00
Jason Rasmussen ec4eb7cd19
feat(server): immich checksum header (#9229)
* feat: dedupe by checksum header

* chore: open api
2024-05-02 15:42:26 +07:00
Nicolò 9bce3417e9
feat(server): email notifications (#8447)
* feat(server): add `react-mail` as mail template engine and `nodemailer`

* feat(server): add `smtp` related configs to `SystemConfig`

* feat(web): add page for SMTP settings

* feat(server): add `react-email.adapter`

This adapter render the React-Email into HTML and plain/text email.
The output is set as the body of the email.

* feat(server): add `MailRepository` and `MailService`

Allow to use the NestJS-modules-mailer module to send SMTP emails.
This is the base transport for the `NotificationRepository`

* feat(server): register the job dispatcher and Job for async email

This allows to queue email sending jobs for the `EmailService`.

* feat(server): add `NotificationRepository` and `NotificationService`

This act as a middleware to properly route the notification to the right transport.
As POC I've only implemented a simple SMTP transport.

* feat(server): add `welcome` email template

* feat(server): add the first notification on `createUser` in `UserService`

This trigger an event for the `NotificationRepository` that once processes
by using the global config and per-user config will carry the payload to the right notification transport.

* chore: clean up

* chore: clean up web

* fix: type errors"

* fix package lock

* fix mail sending, option to ignore certs

* chore: open api

* chore: clean up

* remove unused import

* feat: email feature flag

* chore: remove unused interface

* small styling

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-02 15:43:18 +07:00
renovate[bot] 9e79a23bbe
fix(deps): update typescript-projects (#9169)
* fix(deps): update typescript-projects

* fix: type error

* fix: more imports

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-30 09:49:14 +07:00
Alex The Bot ba18776fc2 Version v1.103.1 2024-04-29 17:53:49 +07:00
Alex The Bot 4291b38769 Version v1.103.0 2024-04-29 14:42:49 +07:00
Jason Rasmussen 59caf1fce4
chore: lifecycle metadata (#9103)
feat(server): track endpoint lifecycle
2024-04-29 13:48:28 +07:00
Fynn Petersen-Frey 32e7cfea3d
fix(server): stacked assets for full sync, userIds as array for delta sync (#9100)
* fix(server): stacked assets for full sync, userIds as array for delta sync

* refactor(server): sync

* fix getDeltaSync after partner removal

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-28 23:24:21 +07:00
Jason Rasmussen 5a49de5592
chore(server): remove old asset search (#9104)
* chore(server): remove old asset search

* chore: remove more unused search code
2024-04-27 12:57:39 +07:00
Alex 1d15cfb5f3
chore(server): remove unusuned endpoint/service/interface in asset-v1 (#9086) 2024-04-26 01:02:04 +07:00
mgabor 2943f93098
feat: readonly album sharing (#8720)
* rename albums_shared_users_users to album_permissions and add readonly column

* disable synchronize on the original join table

* remove unnecessary FK names

* set readonly=true as default for new album shares

* separate and implement album READ and WRITE permission

* expose albumPermissions on the API, deprecate sharedUsers

* generate openapi

* create readonly view on frontend

* ??? move slideshow button out from ellipsis menu so that non-owners can have access too

* correct sharedUsers joins

* add album permission repository

* remove a log

* fix assetCount getting reset when adding users

* fix lint

* add set permission endpoint and UI

* sort users

* remove log

* Revert "??? move slideshow button out from ellipsis menu so that non-owners can have access too"

This reverts commit 1343bfa311.

* rename stuff

* fix db schema annotations

* sql generate

* change readonly default to follow migration

* fix deprecation notice

* change readonly boolean to role enum

* fix joincolumn as primary key

* rename albumUserRepository in album service

* clean up userId and albumId

* add write access to shared link

* fix existing tests

* switch to vitest

* format and fix tests on web

* add new test

* fix one e2e test

* rename new API field to albumUsers

* capitalize serverside enum

* remove unused ReadWrite type

* missed rename from previous commit

* rename to albumUsers in album entity as well

* remove outdated Equals calls

* unnecessary relation

* rename to updateUser in album service

* minor renamery

* move sorting to backend

* rename and separate ALBUM_WRITE as ADD_ASSET and REMOVE_ASSET

* fix tests

* fix "should migrate single moving picture" test failing on European system timezone

* generated changes after merge

* lint fix

* fix correct page to open after removing user from album

* fix e2e tests and some bugs

* rename updateAlbumUser rest endpoint

* add new e2e tests for updateAlbumUser endpoint

* small optimizations

* refactor album e2e test, add new album shared with viewer

* add new test to check if viewer can see the album

* add new e2e tests for readonly share

* failing test: User delete doesn't cascade to UserAlbum entity

* fix: handle deleted users

* use lodash for sort

* add role to addUsersToAlbum endpoint

* add UI for adding editors

* lint fixes

* change role back to editor as DB default

* fix server tests

* redesign user selection modal editor selector

* style tweaks

* fix type error

* Revert "style tweaks"

This reverts commit ab604f4c8f.

* Revert "redesign user selection modal editor selector"

This reverts commit e6f344856c.

* chore: cleanup and improve add user modal

* chore: open api

* small styling

---------

Co-authored-by: mgabor <>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-25 04:19:49 +07:00
Daniel Dietzler 7f1651df71
chore(server): enable swagger to take class validator rules into account (#9022)
* enable swagger to take class validator rules into account

* chore: open api
2024-04-22 18:13:44 +07:00
Alex The Bot a2180a467d Version v1.102.3 2024-04-20 20:17:39 +07:00
Alex The Bot 25549b87c9 Version v1.102.2 2024-04-20 15:55:32 +07:00
Alex The Bot 6eb1b82541 Version v1.102.1 2024-04-20 13:43:46 +07:00
Jason Rasmussen 171b6bb0a6
refactor: system metadata (#8923)
refactor(server): system metadata
2024-04-19 20:36:15 +07:00
Daniel Dietzler 78c7ff855d
refactor(server): move file file report endpoints to their own controller (#8925)
* move file report to its own controller

* chore: open api
2024-04-19 20:35:54 +07:00
Alex The Bot 886e07604e Version v1.102.0 2024-04-19 20:08:02 +07:00
Mert 431ffebddd
feat(server): use embedded preview from raw images (#8773)
* extract embedded

* update api

* add tests

* move temp file logic outside of media repo

* formatting

* revert `toSorted`

* disable by default

* clarify setting description

* wording

* wording

* update docs

* check extracted image dimensions

* test that it unlinks

* formatting

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-19 10:50:13 +07:00
Jason Rasmussen 4478e524f8
refactor(server): sessions (#8915)
* refactor: auth device => sessions

* chore: open api
2024-04-19 06:47:29 +07:00
renovate[bot] 18fa6018c0
fix(deps): update typescript-projects (#8834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 17:45:14 +07:00
Fynn Petersen-Frey 103cb60a57
feat(server): efficient full app sync (#8755)
* feat(server): efficient full app sync

* add SQL, fix test compile issues

* fix linter warning

* new sync controller+service, add tests

* enable new sync controller+service

* Update server/src/services/sync.service.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-04-16 07:26:37 +07:00
N00MKRAD f1ca1794a1
Add AV1 transcoding support (#8491)
* Add AV1 transcoding support

- AV1 encoding on CPU via SVT-AV1 (libsvtav1 in ffmpeg)
- Supports CRF and optionally capped CRF (max bitrate)
- Tested playback successfully in Chrome Win+Android, Firefox Win+Linux, Android app

* AV1: Add support for encoding threads option

* Revert previous commit; specifying params multiple times is bad

We need to specify all svtav1-params at once, so putting the thread option into getThreadOptions is not possible.

* AV1: Override VAAPI getSupportedCodecs as it does not yet support AV1 unlike nvenc, qsv, amf

* Change BaseHWConfig supported codecs to only H264/HEVC

Configs that support VP9 and/or AV1 need to override getSupportedCodecs()

* Set SVT-AV1 threads with svtav1-params, remove duplicate block in NVENCConfig

* AV1Config: Fix empty svtav1-params array being added to options

* add tests

* update api

* allow crf-based two-pass mode

* formatting

* suggest 35

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-04-11 05:26:27 +07:00
renovate[bot] 321868963d
fix(deps): update typescript-projects (#8651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 21:08:37 +07:00
Alex 327b9bd59c
Revert "fix(deps): update typescript-projects (#8647)" (#8650)
This reverts commit 301c217303.
2024-04-09 06:53:48 +07:00
renovate[bot] 301c217303
fix(deps): update typescript-projects (#8647)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-08 23:44:48 +07:00
Daniel Dietzler 7b1562c050
fix(server): remove isWatched from DTO (#8598)
* fix: remove isWatched

* chore: open api
2024-04-08 16:00:08 +07:00
Alex The Bot 3b0fff3b3d Version v1.101.0 2024-04-05 02:39:51 +07:00
Alex 8337da183c
chore: update openapi (#8470) 2024-04-02 14:21:58 +07:00
Jason Rasmussen cd0e537e3e
feat: persistent memories (#8330)
* feat: persistent memories

* refactor: use new add/remove asset utility
2024-04-02 10:23:17 +07:00
Mert 8edc2fb46f
refactor(server): decouple generated images from image formats (#8246)
* rename

thumbnail config

update target paths, fix tests

rename to image settings

replace legacy enum

better typing

update sql

update api

remove config option

fix

* update docs

* update other thumbnail configs in migration

* keep legacy enum for now

* fix jumbled job names

* fix jumbled job names in tests

* rename thumbhash job

* rename dto

* fix tests

* preserve order

* remove unused import

* keep old fields in dto, marked deprecated

* update sql

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-02 04:56:56 +07:00
Jason Rasmussen 25c9b779e4
fix: map theme auth in shared links (#8359)
fix: map theme auth
2024-03-29 09:43:30 +07:00
Daniel Dietzler b8c5363a15
refactor(server): move timeline operations to their own controller/service (#8325)
* move timeline operations to their own controller/service

* chore: open api

* move e2e tests
2024-03-28 23:20:40 +07:00
Alex The Bot 16513b4a6e Version v1.100.0 2024-03-28 18:36:38 +07:00