Commit graph

1867 commits

Author SHA1 Message Date
github-actions
7729fe80fa chore: version v1.131.1 2025-03-31 20:36:48 +00:00
github-actions
5b63b9fc8b chore: version v1.131.0 2025-03-31 18:41:13 +00: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 -04:00
Mert
6789c2ac19
feat(ml): better multilingual search with nllb models (#13567) 2025-03-31 11:06:57 -04:00
Saschl
6419ac74af
fix: update renderlist after asset deleted (#16786) 2025-03-28 18:34:19 +00:00
Yaros
d2bcf5d716
fix(mobile): pause background video play (#17032)
* fix(mobile): prevent background video playback

* fix: logic for tracking app state

* chore: move lifecycle handler in separate file

* chore: replace useState with useRef

* chore: useOnAppLifecycleStateChange

* fix: removed print statement
2025-03-28 10:32:25 -05:00
shenlong
c8331f111f
fix(mobile): prefer remote orientation (#17177)
* fix(mobile): prefer remote orientation

* pr feedback

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-28 10:24:31 -05:00
Alex
411521b21d
chore: post release tasks (#17179) 2025-03-27 19:41:22 -04:00
github-actions
43f8f473e9 chore: version v1.130.3 2025-03-27 15:54:30 +00:00
shenlong
cc393b2b7b
fix(mobile): oauth-mobile-first-login (#17173)
invalidate ref

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-27 15:49:55 +00:00
shenlong
c72c82c401
fix(mobile): faster device album refresh after initial sync (#17170)
fix(mobile): faster device album refresh after fresh sync

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-27 08:47:05 -05:00
github-actions
2f8725c66f chore: version v1.130.2 2025-03-26 15:34:54 +00:00
github-actions
4cf7c55680 chore: version v1.130.1 2025-03-25 20:25:01 +00:00
Alex
b8ff93a3c9
chore: post release tasks (#17097) 2025-03-25 21:22:30 +01:00
github-actions
42b1efb679 chore: version v1.130.0 2025-03-25 13:48:45 +00:00
Alex
c14668bdd4
chore(mobile): translation (#17073)
chore(mobile): translation update
2025-03-24 22:16:10 +00:00
Yaros
a651a4bf0e
chore(mobile): search field in separate widget (#16977)
* chore(mobile): search field in separate widget

* fix: removed unnecessary use of context

* chore: minor styling tweak

* fix: controller not bound

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-24 14:40:33 -05:00
Alex
8bc80076bb
fix(mobile): show new local assets in offline mode (#16817)
fix: show new local assets in offline mode
2025-03-24 16:56:18 +00:00
Luigi311
89656472ef
fix(mobile): fallback authentication client model/type to unknown (#17059)
mobile: fallback authentication client model/type to unknown

Add fallback for client model/type if device is not ios or android

Signed-off-by: Luis Garcia <git@luigi311.com>
2025-03-24 11:26:05 -05:00
Yaros
d9c6ec06e5
chore(mobile): suffix to app name on debug builds (#17044) 2025-03-24 11:23:07 -05:00
shenlong
ad151130f9
chore: rename user api interface (#17062)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-24 11:00:08 -05:00
Damiano Ferrari
a77608e36b
fix(mobile): selectedIcon not set when the device is landscape (#17027) 2025-03-24 10:50:49 -05:00
Damiano Ferrari
df8ba21b7d
fix(mobile): Make icons consistent (all outlined) (#17028)
* fix(mobile): Make icons consistent (all outlined)

* fix(mobile): make `date_range` icon outlined
2025-03-24 10:10:15 -05:00
Yaros
a285b1898e
fix(mobile): platform-dependent share icons & label (#17034)
fix: platform-dependant icons
2025-03-24 08:36:15 -05:00
renovate[bot]
8de71ddaf3
chore(deps): update dependency flutter to v3.29.2 (#16963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 10:58:57 -05:00
renovate[bot]
b609f35841
chore(deps): update base-image to v20250318 (major) (#16950)
* chore(deps): update base-image to v20250318

* chore

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-18 11:07:11 -05:00
shenlong
9cf3b88f80
refactor(mobile): remove int user id (#16814)
* refactor: user entity

* chore: rebase fixes

* refactor: remove int user Id

* refactor: migrate store userId from int to string

* refactor: rename uid to id

* fix: migration

* pr feedback

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-18 11:05:37 -05:00
shenlong
dd263b010c
refactor(mobile): use user service methods (#16783)
* refactor: user entity

* chore: rebase fixes

* refactor(mobile): refactor to use user service methods

* fix: late init error

* fix: lint

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-18 08:32:33 -05:00
Yaros
93907a89d8
fix(mobile): age calculation & formatting (#16833) 2025-03-17 13:51:17 -05:00
Yaros
f8b40188e2
fix(mobile): change share icons for consistency (#16904) 2025-03-17 12:34:58 -05:00
shenlong
1e184a70f1
refactor: cleanup background service (#16855)
refactor: background service

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-17 08:48:22 -05:00
shenlong
b778a86c99
refactor(mobile): move user service to domain (#16782)
* refactor: user entity

* chore: rebase fixes

* refactor(mobile): move user service to domain

* fix: timeline not visible on album selection page

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-13 22:20:26 -05:00
ExceptionsOccur
858d1e9d9b
fix(mobile): back gesture in asset selection page from an album (#16449)
* fix(mobile): the page for adding photos to the album cannot be navigated back using gestures #16409

* First-time return gesture adds the feature to cancel all current selections

---------

Co-authored-by: ExceptionsOccur <yuyu.tao@foxmail.com>
2025-03-13 11:37:05 +05:30
shenlong
77fad86b82
chore(mobile): bump dependency versions (#16823)
* chore(mobile): bump dep version

* reorganize files

* sort

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-12 14:33:11 +00:00
shenlong
d1c8fe5303
refactor: user entity (#16655)
* refactor: user entity

* fix: add users to album & user profile url

* chore: rebase fixes

* generate files

* fix(mobile): timeline not reset on login

* fix: test stub

* refactor: rename user model (#16813)

* refactor: rename user model

* simplify import

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>

* chore: generate files

* fix: use getAllAccessible instead of getAll

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-12 08:56:56 -05:00
shenlong
6caa11d079
chore(mobile): use path provider foundation (#16804)
* chore(mobile): use path provider foundation

* chore: update podfile

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-11 09:26:43 -05:00
shenlong
653fa3f0b1
chore(mobile): add orientation tests for exif (#16806)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-11 09:25:46 -05:00
Alex
2be8b6c16d
chore: ignore correct build folder (#16808) 2025-03-11 14:22:05 +00:00
shenlong
ac1b2d2fab
chore(mobile): generated files and ci check (#16798)
* chore(mobile): more generated files

* ci: verify generated files in mobile are up-to-date

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-11 12:22:31 +00:00
Lorenzo Montanari
d7e0f0e70e
feat(web): exposed a job to manually trigger database backup procedures (#16622)
* feat(web): exposed a new job to create a manual database backup

* chore(server): added a new test case

* chore(server): moved job to backup db into the create job popup

* remove irrelevant change

* openapi

* chore: formatting

* docs: trigger backup documentation

---------

Co-authored-by: Lorenzo Montanari <13736036+l0ll098@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2025-03-11 11:30:43 +00:00
shenlong
81df812f56
fix(mobile): calculate isFlipped for exif from db (#16797)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-11 10:41:47 +00:00
Alex
75fa305e98
chore: flutter 3.29.1 (#16730)
* update dependencies

* update flutter version reference

* update flutter version reference

* update AndroidManifest with flutter_web_auth_2

* chore: lock file flutter version

* fix: ios build
2025-03-10 21:46:36 -05: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 -04:00
Alex
57272904d6
chore(mobile): upgrade maplibre (#16739)
* chore(mobile): upgrade maplibre

* chore(mobile): upgrade maplibre

* color
2025-03-10 09:41:43 -05:00
Yaros
bdabea4030
feat(mobile): locate in timeline (#16722)
* feat(mobile): view in timeline

* fix: throwing error on scroll

* only show option if not in photos tab
2025-03-09 21:31:34 -05:00
Alex
82624b0979
chore(mobile): upgrade riverpod (#16742) 2025-03-09 20:30:58 -05:00
Alex
17c5094719
chore(mobile): upgrade flutter_web_auth_2 (#16741)
* chore(mobile): upgrade flutter_web_auth_2

* pod file
2025-03-09 20:26:37 -05:00
Yaros
6c5f99c47a
feat(mobile): person age on photo properties (#16728)
* feat(mobile): person age on photo properties

* switch to using placeholder
2025-03-08 23:02:40 +01:00
Yaros
5252c013ec
fix(mobile): fix notification icon not displaying properly (#16710) 2025-03-07 19:08:53 -06:00
Yaros
b0bf4e4fff
feat(mobile): search on people page (#16696) 2025-03-07 14:43:32 -06:00
Yaros
c12986d38c
fix(mobile): remain on albums tab after album deletion (#16698)
fix(mobile): remain on albums after album deletion
2025-03-07 13:25:07 -06:00
shenlong
fe931faf17
refactor: exif entity (#16621)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-06 11:58:24 -06:00
Arno
4ebc25c754
feat(mobile): Folder View for mobile (#15047)
* very rough prototype for folder navigation without assets

* fix: refactored data model and tried to implement asset loading

* fix: openapi generator shadowing query param in /view/folder

* add simple alphanumeric sorting for folders

* basic asset viewing in folders

* rudimentary switch sorting order

* fixed reactivity when toggling sort order

* Fixed trailing comma

* Fixed bad merge conflict resolution

* Regenerated open-api

* Added rudimentary breadcrumbs

* Fixed linting problems

* feat: cleanup

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-06 17:27:43 +00:00
Alex
1ed1a0a1fc
feat(mobile): new sync (#16556)
* feat(mobile): new sync

* refactor

* refactor

* refactor

* refactor

* refactor

* refactor

* update analysis option

* remove database operation

* pr feedback
2025-03-06 08:44:28 -06:00
Alex
c110c9b00e
chore(mobile): post release task (#16623) 2025-03-05 14:54:56 -06:00
Yaros
b241a80339
feat(mobile): Navigate back on memories (#16545)
* Navigate back on memories

* Fixes crash on navigating back
2025-03-05 14:42:43 -06:00
github-actions
31dd15ce8a chore: version v1.129.0 2025-03-05 19:47:50 +00:00
Alex
3e50f668d9
feat(mobile): add catalan i18n (#16616)
* feat(mobile): Add Catalan

* refactor

* fix: load correct file

* chore: remove unused language files
2025-03-05 11:47:31 -06:00
Alex
76cb32d8d0
chore(mobile): translations update (#16615)
chore(mobile): translation update
2025-03-05 16:33:41 +00:00
Yaros
e8f3348833
fix(mobile): Fixed zh-Hans not persisting (#16608)
Fixed zh-Hans not persisting
2025-03-05 09:56:00 -06:00
shenlong
3f4bbab4eb
fix: isar crash on resume from app detach (#16599)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-05 08:28:40 -06:00
waclaw66
8b43066632
fix(mobile): .well-known usage (#16577)
fix: .well-known

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-04 20:25:57 -06:00
shenlong
3b0af1c8a9
fix(mobile): do not pause audio on app start (#16596)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-04 16:00:01 -06:00
Alex
86e8effd8e
fix(mobile): incorrect memories with timezone (#16562) 2025-03-04 12:54:54 +00:00
shenlong
7f61ac6983
chore(mobile): fix store.put type def (#16517)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-03 09:11:13 -06:00
shenlong
4db8f0c666
refactor(mobile): move timeline methods to timeline repo (#16526)
* refactor: move timeline calls to timeline repo

* refactor: review changes

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-03 09:10:09 -06:00
Zack Pollard
fe702ba6d7
feat: partner sync (#16424)
feat: partner CUD sync
2025-03-03 11:05:30 +00:00
Justin Cichra
8885e3105e
chore: reword backup_manual_in_progress (#16513)
fix(i18n): reword backup_manual_in_progress

Split "sometime" into "some time".
2025-03-03 03:27:20 +00:00
Yaros
fd5e931617
fix(mobile): Updated formatting of server address in networking (#16483)
* Updated formatting of server address in networking

* fallback for undefined endpoint
2025-03-02 06:58:05 -06:00
shenlong
d8d87bb565
chore(mobile): rename log enum to lowercase (#16476)
* chore(mobile): rename log enum to lowercase

* chore(mobile): do not abbreviate

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-02 06:30:48 -06:00
luzpaz
c8eef5ad4d
fix(mobile): fix typos (#16456)
Found via codespell
2025-03-01 20:06:47 +00:00
Alex
f11080cc2d
chore(mobile): post release task (#16437) 2025-02-28 21:09:09 -06:00
github-actions
dc143046e3 chore: version v1.128.0 2025-02-28 18:54:08 +00:00
shenlong
9a98712db7
fix(mobile): background backup failing due to store (#16418)
fix: background backup failing due to store

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-02-28 07:38:51 -06:00
shenlong
28c664c769
refactor(mobile): log service (#16383)
refactor: log service

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-02-27 15:18:49 -05:00
Alex
1c86293035
chore(mobile): update analysis option (#16396)
chore-update-analysis-option
2025-02-27 18:35:28 +00:00
shenlong
4a9d80298b
fix(mobile): bootstrap store inside isolates (#16392)
fix: bootstrap store inside isolates

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-02-27 18:01:36 +00:00
Alex
c70c9067b0
refactor(mobile): backup provider (#16360)
* refactor(mobile): backup provider

* refactor(mobile): backup provider
2025-02-27 09:56:23 -06:00
Alex
082471dfd9
chore(mobile): post release task (#16349) 2025-02-27 09:46:34 -06:00
Mert
7d6cfd09e6
fix(server): don't expose source types in face creation api (#16381)
* don't expose source types in face creation api

* update open-api

* remove source type reference from web
2025-02-27 17:17:07 +03:00
David Bourgault
4b55888d16
fix: ensure manually tagged faces have proper source type (#16364)
immich-app/immich#16062 added manual face tagging and deletion, but did
not add a new 'SourceType'. The create faces would default to
'machine-learning' which is incorrect, and has the annoying downside
that they will be wiped when the 'Refresh Faces' job is run.

Handling of non-machine-learning faces was previously added in
immich-app/immich#6455. This PR simply extends it to the new manually
tagged faces.
2025-02-26 20:53:21 -06:00
Alex
8fbd650483
refactor(mobile): refactor user provider (#16358) 2025-02-26 17:04:43 -06:00
github-actions
5f7f88ff17 chore: version v1.127.0 2025-02-26 15:18:50 +00:00
Alex
8ecc67a364
feat(mobile): use memories api (#16329) 2025-02-25 19:10:31 -06:00
Alex
90f7c3d9ae
chore(mobile): translations update (#16328)
chore(mobile): translation update
2025-02-25 15:06:40 -06:00
Alex
d0381fddec
refactor(mobile): render list (#16303)
* refactor(mobile): render list 2

* wip

* wip: asset selection page

* remove render_list provider

* remove dead code

* yaml format

* remove unused file

* woop woop more clean up

* woop woop more clean up 2

* fix: album selection doesn't load instantly
2025-02-25 11:33:48 -06:00
ExceptionsOccur
c0fe98fe27
feat(mobile): photos group by date in album page view (#16272)
* feat(mobile): photos group by date in album page view

* fix: format

---------

Co-authored-by: ExceptionsOccur <yuyu.tao@foxmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-02-25 15:10:08 +00:00
Alex
579321251f
refactor(mobile): partners provider (#16299)
* refactor(mobile): partners provider

* update analysis option

* update analysis option
2025-02-25 08:52:33 -06: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 -06:00
Alex
007eaaceb9
feat(web): manual face tagging and deletion (#16062) 2025-02-21 09:58:25 -06:00
shenlong
94c0e8253a
test(mobile): store (#16243)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-02-21 09:10:42 -06:00
Alex
5acf6868b7
refactor(mobile): render list (#16239)
* refactor(mobile): trash provider

* refactor(mobile): trash provider

* pr feedback

* archive timeline

* favorite

* album

* trash timeline

* all videos timeline

* refactor

* refactor: home timeline and partner timeline

* update analysis option
2025-02-21 09:01:46 -06:00
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 -05:00
Alex
17a2043e76
refactor(mobile): trash provider (#16219)
* refactor(mobile): trash provider

* refactor(mobile): trash provider

* pr feedback
2025-02-20 22:14:41 -06: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 +00:00
shenlong
76d95cd348
refactor(mobile): move store settings and store into domain folder (#16201)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-02-19 19:27:32 +00:00
shenlong
aeb3e0a84f
refactor(mobile): split store into repo and service (#16199)
* refactor(mobile): migrate store

* refactor(mobile): expand abbreviations

* chore(mobile): fix lint

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-02-19 13:05:24 -06:00
Alex
9d4aee36e2
refactor(mobile): asset provider (#16159)
* refactor(mobile): asset provider

* wip

* wip: delete local assets

* wip: delete remote assets

* wip: deletion logic

* refactor

* pr feedback
2025-02-18 13:10:55 -06:00
shenlong
70d08a2b2a
chore(mobile): lint (#16182)
* lint - convert path to lowercase for finding index

* update dcm lint rules

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-02-18 09:34:19 -06:00
João Paulo Ros
efd8d8b884
fix(mobile): Server endpoint on the login screen. (#16149)
Fixing the server endpoint on the login screen. It added the "/api" suffix instead of using the default method getServerUrl, which takes care of sanitizing the URL.

Co-authored-by: Joao Paulo Ros <ros@voxit.ai>
2025-02-17 19:12:48 +00:00