Commit Graph

421 Commits (7a1e8ce6d86d9c6923224ed225e92b51aff52005)

Author SHA1 Message Date
Daniel Dietzler 7a1e8ce6d8
chore: remove exif entity (#17499) 2025-04-10 12:36:29 +07:00
Jason Rasmussen 8aea07b750
refactor: album user entity (#17524) 2025-04-10 11:53:21 +07:00
Zack Pollard 94dba29298
refactor: remove user entity (#17498) 2025-04-10 10:53:21 +07:00
Jason Rasmussen 206545356d
refactor: metadata entity (#17492) 2025-04-09 11:45:30 +07:00
Jason Rasmussen 8943ec23ba
refactor: more database types (#17490) 2025-04-09 10:24:38 +07:00
Jason Rasmussen cf2c0260a6
refactor: activity item (#17470)
* refactor: activity item

* fix query

* qualified columns

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-04-09 08:35:20 +07:00
Jason Rasmussen 4794eeca88
refactor: database types (#17468) 2025-04-08 12:40:03 +07:00
Alex e5ca79dd44
refactor: remove session entity (#17466)
* refactor: remove session entity

* fix: test

* update sql

* remote export
2025-04-08 16:04:07 +07:00
Jason Rasmussen b6c5a03533
refactor: remove tag entity (#17462) 2025-04-08 10:52:54 +07:00
Jason Rasmussen fdbe6d649f
refactor: remove smart search entity (#17447)
refactor: smart search entity
2025-04-08 09:56:45 +07:00
Jason Rasmussen e7a5b96ed0
feat: extension, triggers, functions, comments, parameters management in sql-tools (#17269)
feat: sql-tools extension, triggers, functions, comments, parameters
2025-04-07 15:12:12 +07:00
Abhinav Valecha b621281351
feat(server): Avoid face match with people born after file creation #4743 (#16918)
* feat(server): Avoid face matching with people born after file creation date (#4743)

* lint

* add medium tests for facial recognition

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-04-02 10:37:26 +07:00
Mert d911b76c08
fix(server): use stat instead of exifinfo for file date metadata (#17311)
* use stat instead of filecreatedate

* update tests

* unused import
2025-04-01 17:24:07 +07:00
Mert 59e5c82569
fix(server): full-size images not migrated or deleted correctly (#17308)
* fix file path logic

* update tests

* add empty array fallback just in case for now
2025-04-01 18:11:46 +07:00
Eli Gao 5c80e8734b
feat: original-sized previews for non-web-friendly images (#14446)
* feat(server): extract full-size previews from RAW images

* feat(web): load fullsize preview for RAW images when zoomed in

* refactor: tweaks for code review

* refactor: rename "converted" preview/assets to "fullsize"

* feat(web/server): fullsize preview for non-web-friendly images

* feat: tweaks for code review

* feat(server): require ASSET_DOWNLOAD premission for fullsize previews

* test: fix types and interfaces

* chore: gen open-api

* feat(server): keep only essential exif in fullsize preview

* chore: regen openapi

* test: revert unnecessary timeout

* feat: move full-size preview config to standalone entry

* feat(i18n): update en texts

* fix: don't return fullsizePath when disabled

* test: full-size previews

* test(web): full-size previews

* chore: make open-api

* feat(server): redirect to preview/original URL when fullsize thumbnail not available

* fix(server): delete fullsize preview image on thumbnail regen after fullsize preview turned off

* refactor(server): AssetRepository.deleteFiles with Kysely

* fix(server): type of MediaRepository.writeExif

* minor simplification

* minor styling changes and condensed wording

* simplify

* chore: reuild open-api

* test(server): fix media.service tests

* test(web): fix photo-viewer test

* fix(server):  use fullsize image when requested

* fix file path extension

* formatting

* use fullsize when zooming back out or when "display original photos" is enabled

* simplify condition

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-31 13:24:28 +07:00
Zack Pollard d613f15606
test: fix flaky user handle delete check medium test (#17253)
we can't run specifically the handleUserDeleteCheck tests concurrently due to one of the tests modifying the config in the shared database
if run concurrently you can get race conditions where the other tests pick up the change, even with resetting the config in the beforeEach
therefore the test that checks a delete actually happens, fails
there are many ways to solve this, disabling concurrency for the suite, forcing sequential tests for just handleUserDeleteCheck, increasing the delete test deletedAt to more than the custom duration tests deleteDelay
I applied all three of these. You could also force all the user tests to run in their own databases, but that feels overkill
2025-03-31 13:19:57 +07:00
PathToLife 09f4476f97
feat: improve performance for GET /api/album & /api/album/:id (#17124)
* fix(server) optimize number of sql calls for GET /api/albums

remove unnecessary join for getMetadataForIds
remove separate call to getLastUpdatedAssetForAlbumId

* fix(server) remove unnecessary getLastUpdatedAssetForAlbumId call for GET /api/album/:id

also remove getLastUpdatedAssetForAlbumId query as it is no longer referenced

* fix(server): correct lastModifiedAssetTimestamp return type + formatting and typing

* chore(server): address type issue with tests found via npm:check

tests & lint still pass before this commit.
2025-03-31 11:28:41 +07:00
Daniel Dietzler 238c151ac3
chore: finish migrating eslint config files; bump unicorn (#17200) 2025-03-31 12:18:25 +07:00
Jason Rasmussen 55a3c30664
feat: kysely migrations (#17198) 2025-03-29 09:26:24 +07:00
Jason Rasmussen 4b4bcd23f4
feat: schema diff sql tools (#17116) 2025-03-28 10:40:09 +07:00
Mert 75df8fc10e
refactor(server): bulk update exif (#17109)
* bulk update exif

* update sql

* update tests

* check job queeuing in test
2025-03-25 21:24:24 +07:00
Mert 9f46ba8eb4
fix(server): set pixel format when scaling and not tonemapping (#16932)
set pixel format when scaling and not tonemapping
2025-03-18 11:42:09 +07:00
Jason Rasmussen 6a40aa83b7
refactor: better types for getList and getDeletedAfter (#16926) 2025-03-17 15:32:12 +07:00
Jason Rasmussen 16fd19994b
refactor: use factory and kysely types for partner repository (#16812) 2025-03-11 16:29:56 +07:00
Jonathan Jogenfors 6bb0aa217c
fix(server): set unit test timezone to UTC (#16805) 2025-03-11 10:19:33 +07:00
Jason Rasmussen 1382b27349
refactor: repository mocks (#16785) 2025-03-10 16:52:44 +07:00
Jason Rasmussen a96bba4b26
feat: sync assets, partner assets, exif, and partner exif (#16658)
* feat: sync assets, partner assets, exif, and partner exif

Co-authored-by: Zack Pollard <zack@futo.org>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>

* refactor: remove duplicate where clause and orderBy statements in sync queries

* fix: asset deletes not filtering by ownerId

---------

Co-authored-by: Zack Pollard <zack@futo.org>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-03-10 12:05:39 +07:00
Jason Rasmussen e97df503f2
refactor: api key spec to use factories (#16776) 2025-03-10 12:04:35 +07:00
Jason Rasmussen 1e127ae3a1
refactor: migrate library spec to factories (#16711) 2025-03-08 13:44:36 +07:00
Jason Rasmussen fd46d43726
chore: remove unused file (#16707) 2025-03-07 22:47:27 +07:00
Jason Rasmussen 3f06a494a9
refactor: queue asset deletes via stream (#16706) 2025-03-07 22:22:57 +07:00
Jason Rasmussen ce74f765b1
refactor: memory stub (#16704) 2025-03-07 16:03:34 +07:00
Jason Rasmussen 2d106755f6
refactor: convert activity stub to a factory (#16702) 2025-03-07 15:20:04 +07:00
Jason Rasmussen f82786a297
feat: use stream for template migrations (#16700) 2025-03-07 14:30:01 +07:00
Jason Rasmussen d45fa491ce
refactor: stream asset ids for library queue jobs (#16666) 2025-03-06 20:22:17 +07:00
Jason Rasmussen 2cdbb0a37c
refactor: database repository (#16593)
* refactor: database repository

* fix error reindex check

* chore: remove WIP code

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-06 13:33:24 +07:00
Mert deb399ea15
refactor(server): use exiftool for file date metadata (#16453)
* use exiftool for file date metadata

* handle tag not existing in exifinfo (?)

* update medium tests

* fix typo

* set file size too

* set file size only if undefined
2025-03-06 16:47:12 +07:00
Jonathan Jogenfors 3af26ee94a
feat(server): library refresh go brrr (#14456)
* feat: brr

---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2025-03-06 16:00:18 +07:00
Zack Pollard 9922c8de59
fix: storage template failure after re-upload and previous fail (#16611)
fix: storage template breaks when files are re-uploaded after a move failure
2025-03-05 15:00:37 +07:00
Jason Rasmussen 2da9e3152b
refactor: download service (#16600) 2025-03-05 08:38:23 +07:00
Jason Rasmussen 63c01b78e2
refactor: test utils (#16588) 2025-03-04 16:15:41 +07:00
Jason Rasmussen 1356468c38
fix: reset/regenerate memories (#16548)
fix: reset memories
2025-03-03 23:48:05 +07:00
Jason Rasmussen d1fd0076cc
refactor: migration tag repository to kysely (#16398) 2025-03-03 18:41:19 +07:00
Zack Pollard fe702ba6d7
feat: partner sync (#16424)
feat: partner CUD sync
2025-03-03 11:05:30 +07:00
Jason Rasmussen fbd85a89e0
refactor: logger (#16393) 2025-02-27 14:59:50 +07:00
Mert a708649504
fix(server): skip stacked assets in duplicate detection (#16380)
* skip stacked assets in duplicate detection

* update sql

* handle stacking after duplicate detection runs
2025-02-27 10:16:13 +07:00
Mert 6050485ad8
feat(server): set exiftool process count (#16388)
exiftool concurrency control
2025-02-27 09:24:40 +07:00
Zack Pollard 967c69317b
feat: updateId uuidv7 column for all entities with updatedAt (#16353) 2025-02-27 12:55:22 +07:00
Jason Rasmussen 7c851893b4
feat: medium tests for user and sync service (#16304)
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-02-25 16:31:07 +07:00
Jason Rasmussen d350022dec
feat: persistent memories (#15953)
feat: memories

refactor

chore: use heart as favorite icon

fix: linting
2025-02-21 12:31:37 +07:00