1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-27 10:58:13 +02:00
Commit Graph

192 Commits

Author SHA1 Message Date
Alex The Bot
c77702279c Version v1.109.0 2024-07-18 16:03:42 +00:00
Alex
ef0e1a81b9
feat(web): license UI (#11182) 2024-07-18 10:56:27 -05:00
Michel Heusschen
5748f50c1f
refactor(web): remove buffer package (#11058) 2024-07-12 16:40:57 +00:00
Alex The Bot
c7432834d0 Version v1.108.0 2024-07-10 16:14:02 +00: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 -04:00
renovate[bot]
04d0f575b7
chore(deps): update dependency prettier-plugin-organize-imports to v4 (#10930)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-07 22:17:06 -04:00
Alex The Bot
96f29cefeb Version v1.107.2 2024-07-03 03:18:19 +00:00
Alex The Bot
aa29f5d69c Version v1.107.1 2024-07-02 19:04:29 +00:00
Alex The Bot
b47ec2f88f Version v1.107.0 2024-07-02 14:13:10 +00:00
Ben McCann
6ebae3c84f
chore(deps): upgrade @testing-library/svelte (#10690) 2024-06-28 21:31:27 -04: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 -04:00
Michel Heusschen
b3252ffdac
feat(web): translations containing html (#10491)
* feat(web): translations containing html

* add tests and more translations

* more translations

* rename FormatTags --> FormatMessage

* update version_announcement_message
2024-06-21 13:08:36 -07:00
renovate[bot]
7ea0278b32
chore(deps): update dependency eslint-plugin-unicorn to v54 (#10486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 12:56:35 -04:00
renovate[bot]
c58b0ac66a
chore(deps): update typescript-projects (#10445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 07:39:25 -04:00
Alex The Bot
8c2195c820 Version v1.106.4 2024-06-13 15:12:51 +00:00
Alex The Bot
a8a7d29891 Version v1.106.3 2024-06-12 18:26:10 +00:00
Alex The Bot
81790ab166 Version v1.106.2 2024-06-11 19:09:13 +00:00
Alex The Bot
b5991c908e Version v1.106.1 2024-06-11 09:39:23 +00:00
Alex The Bot
f32c02bd25 Version v1.106.0 2024-06-10 17:50:00 +00:00
Zack Pollard
22a0b4d900
chore(web): order json files alphabetically (#10076) 2024-06-10 09:37:21 -04:00
Manic-87
f446bc8caa
feat(web): translations (#9854)
* First test

* Added translation using Weblate (French)

* Translated using Weblate (German)

Currently translated at 100.0% (4 of 4 strings)

Translation: immich/web
Translate-URL: http://familie-mach.net/projects/immich/web/de/

* Translated using Weblate (French)

Currently translated at 100.0% (4 of 4 strings)

Translation: immich/web
Translate-URL: http://familie-mach.net/projects/immich/web/fr/

* Further testing

* Further testing

* Translated using Weblate (German)

Currently translated at 100.0% (18 of 18 strings)

Translation: immich/web
Translate-URL: http://familie-mach.net/projects/immich/web/de/

* Further work

* Update string file.

* More strings

* Automatically changed strings

* Add automatically translated german file for testing purposes

* Fix merge-face-selector component

* Make server stats strings uppercase

* Fix uppercase string

* Fix some strings in jobs-panel

* Fix lower and uppercase strings. Add a few additional string. Fix a few unnecessary replacements

* Update german test translations

* Fix typo in locales file

* Change string keys

* Extract more strings

* Extract and replace some more strings

* Update testtranslationfile

* Change translation keys

* Fix rebase errors

* Fix one more rebase error

* Remove german translation file

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

* chore: clean up translations

* chore: add new line

* fix formatting

* chore: fixes

* fix: loading and tests

---------

Co-authored-by: root <root@Blacki>
Co-authored-by: admin <admin@example.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-06-04 15:53:00 -04: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 +01:00
renovate[bot]
7f0f016f2e
chore(deps): update dependency eslint-plugin-unicorn to v53 (#9502)
* chore(deps): update dependency eslint-plugin-unicorn to v53

* use structured clone to match new eslint rules

* use raw string instead of escaping slash

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-05-15 18:06:25 -04:00
Alex The Bot
88d4338348 Version v1.105.1 2024-05-14 21:31:24 +00:00
Alex The Bot
596ab39293 Version v1.105.0 2024-05-14 17:07:25 +00:00
Michel Heusschen
acc611a3d9
fix(web): admin settings number input validation (#9470)
* fix(web): admin settings number input validation

* fix import by creating *.ts file

* just ignore import error
2024-05-14 15:35:16 +00: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 -04:00
Alex The Bot
a6f557c24c Version v1.104.0 2024-05-13 18:31:57 +00: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 -04:00
Zack Pollard
0a598ae1b8
chore: fvm and node dependency updates and pinning (#9203)
* chore(mobile): ignore .fvm directory and update .fvmrc version

* chore(cli): add nvm and volta node versioning files/config

* chore(docs): add nvm and volta node versioning files/config, bump to node v20

* chore(server): add nvm node versioning file

* chore(web): add nvm and volta node versioning files/config

* chore(e2e): add nvm and volta node versioning files/config
2024-05-01 14:05:18 +01:00
Alex The Bot
ba18776fc2 Version v1.103.1 2024-04-29 17:53:49 +00:00
Alex The Bot
4291b38769 Version v1.103.0 2024-04-29 14:42:49 +00:00
Nguyễn Hoàng Đức
0ff0b891a7
feat(web): separate command to build with rollup plugin visualizer (#9097)
separate command to build with rollup plugin visualizer
2024-04-26 15:36:30 -04:00
renovate[bot]
4458cc4370
chore(deps): update dependency @testing-library/svelte to v5 (#9044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-23 21:01:58 +00:00
TruongSinh Tran-Nguyen
0d3cc28f45
feat(web): support 360 video (equirectangular) (#8762)
* [web]: support 360 video

* lint

* lint

* fix typing

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-21 19:14:54 +00:00
Alex The Bot
a2180a467d Version v1.102.3 2024-04-20 20:17:39 +00:00
Alex The Bot
25549b87c9 Version v1.102.2 2024-04-20 15:55:32 +00:00
Alex The Bot
6eb1b82541 Version v1.102.1 2024-04-20 13:43:46 +00:00
Alex The Bot
886e07604e Version v1.102.0 2024-04-19 20:08:02 +00: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 +02:00
Alex
327b9bd59c
Revert "fix(deps): update typescript-projects (#8647)" (#8650)
This reverts commit 301c217303.
2024-04-09 06:53:48 +02: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 -04:00
renovate[bot]
fff12e3d78
chore(deps): update dependency eslint-plugin-unicorn to v52 (#8629)
* chore(deps): update dependency eslint-plugin-unicorn to v52

* chore: linting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-08 12:45:46 -04:00
Alex The Bot
3b0fff3b3d Version v1.101.0 2024-04-05 02:39:51 +00:00
Alex The Bot
16513b4a6e Version v1.100.0 2024-03-28 18:36:38 +00:00
Alex The Bot
5b314ffd46 Version v1.99.0 2024-03-20 14:50:57 +00:00
Alex The Bot
4027cba4eb Version v1.98.2 2024-03-11 14:17:12 +00:00
Alex The Bot
430561d692 Version v1.98.1 2024-03-08 23:44:13 +00:00
Alex The Bot
7dc5e0cc4f Version v1.98.0 2024-03-07 19:22:14 +00:00
Alex Tran
ba5d5256b1 Revert "Version v1.98.0"
This reverts commit 9b1a379fa6.
2024-03-07 12:04:54 -06:00
Alex The Bot
9b1a379fa6 Version v1.98.0 2024-03-07 17:40:40 +00:00
martin
3b772a772c
fix(web): immich version (#7541)
* fix: web version

* update package-lock.json

* update typescript-sdk
2024-03-01 01:26:50 -06:00
Jason Rasmussen
09a7291527
refactor(web): drop axios (#7490)
* refactor: downloadApi

* refactor: assetApi

* chore: drop axios

* chore: tidy up

* chore: fix exports

* fix: show notification when download starts
2024-02-29 11:22:39 -05:00
Alex The Bot
6f53e83d49 Version v1.97.0 2024-02-28 22:34:00 +00:00
Alex The Bot
6d91c23f65 Version v1.96.0 2024-02-27 20:14:58 +00:00
Ben McCann
79409438a7
chore(web): upgrade dependencies (#7471) 2024-02-27 14:01:11 -05:00
Ben McCann
907a95a746
chore(web): cleanup promise handling (#7382)
* no-misused-promises

* no-floating-promises

* format

* revert for now

* remove load function

* require-await

* revert a few no-floating-promises changes that would cause no-misused-promises failures

* format

* fix a few more

* fix most remaining errors

* executor-queue

* executor-queue.spec

* remove duplicate comments by grouping rules

* upgrade sveltekit and enforce rules

* oops. move await

* try this

* just ignore for now since it's only a test

* run in parallel

* Update web/src/routes/admin/jobs-status/+page.svelte

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

* remove Promise.resolve call

* rename function

* remove unnecessary warning silencing

* make handleError sync

* fix new errors from recently merged PR to main

* extract method

* use handlePromiseError

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-27 10:37:37 -06:00
Ben McCann
2c9dd18f1b
fix: upgrade SvelteKit to 2.5.1 (#7351) 2024-02-22 12:58:48 -05:00
Alex The Bot
7c34d0595e Version v1.95.1 2024-02-21 04:02:43 +00:00
Alex The Bot
302d98ebe1 Version v1.95.0 2024-02-20 16:52:23 +00:00
renovate[bot]
072f61927c
chore(deps): update typescript-eslint monorepo to v7 (major) (#7171) 2024-02-18 11:26:01 -08:00
martin
36e5d298db
perf(web): optimize images and modules (#7088)
* perf: optimize images and modules

* fix: tests

* fix: missing font

* fix: delay showing the loading spinner

* simplify

* simplify

* pr feedback

* chore: merge main

* fix: enum

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-18 13:18:40 -06:00
Ben McCann
3915867b1b
chore: remove svelte-preprocess (#7159) 2024-02-17 08:35:51 -05:00
Michel Heusschen
c84c0bae6c
refactor(web): websocket events (#7152) 2024-02-16 15:43:40 -05:00
Daniel Dietzler
bbf7a54c65
chore(web): upgrade to maplibre 4 (#7132)
upgrade to maplibre 4
2024-02-16 07:55:13 -06:00
Jason Rasmussen
747df0ae86
chore(web): auto sort imports (#7118)
chore(web): auto sort impomrts
2024-02-14 10:54:32 -05:00
Alex
dca1bd22df
Change license to AGPLv3 (#7046)
* Change license to AGPLv3

* Readme and documentation

* Package.json

* More replacement

* Added License MIT for previous code

* NIT

* Update LICENSE

Co-authored-by: bo0tzz <git@bo0tzz.me>

* Update cli/LICENSE

Co-authored-by: bo0tzz <git@bo0tzz.me>

* remote mit

---------

Co-authored-by: bo0tzz <git@bo0tzz.me>
2024-02-12 15:31:59 +00:00
Ben McCann
28e4f8e042
chore: upgrade to Vite 5.1.1 (#7040) 2024-02-11 16:44:32 -05:00
Dmitry Brazhenko
2ee9044b6a
fix (web): panorama / 360 view - partial panorama: use photo-sphere-viewer (#6992)
* panorama viewer fixes

* prettifier

* fix
2024-02-09 10:17:51 -06:00
Ben McCann
b273ea2ba4
chore: setup rollup-plugin-visualizer and remove lodash (#6974)
* chore: setup rollup-plugin-visualizer

* chore: remove lodash

* format

* remove lodash-es from build
2024-02-08 02:27:54 -05:00
renovate[bot]
f80af067bf
chore(deps): update dependency eslint-plugin-unicorn to v51 (#6952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-06 23:53:55 +01:00
Daniel Dietzler
3092a72ac5
chore(web): remove maplibre dependency (#6948)
remove maplibre dependency
2024-02-06 15:30:52 -06:00
Jonathan Jogenfors
f44fa45aa0
chore(server,cli,web): housekeeping and stricter code style (#6751)
* add unicorn to eslint

* fix lint errors for cli

* fix merge

* fix album name extraction

* Update cli/src/commands/upload.command.ts

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>

* es2k23

* use lowercase os

* return undefined album name

* fix bug in asset response dto

* auto fix issues

* fix server code style

* es2022 and formatting

* fix compilation error

* fix test

* fix config load

* fix last lint errors

* set string type

* bump ts

* start work on web

* web formatting

* Fix UUIDParamDto as UUIDParamDto

* fix library service lint

* fix web errors

* fix errors

* formatting

* wip

* lints fixed

* web can now start

* alphabetical package json

* rename error

* chore: clean up

---------

Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-01 22:18:00 -05:00
Jason Rasmussen
2e39243670
deps: open-api generator (#6655)
* deps: open-api generator

* fix: unused sed/replace
2024-01-26 11:40:28 -05:00
Jason Rasmussen
6e066aa220
chore: svelte-kit-2 (#6103)
* chore: upgrade svelte

* chore: type imports

* chore: types
2024-01-20 12:47:41 -06:00
Jason Rasmussen
2439c5ab57
refactor: open api (#6334) 2024-01-12 07:36:27 -05:00
martin
c24d0e82bb
fix: use loading spinner for library spinner (#6116) 2024-01-01 22:10:48 -05:00
Jorge Avila
5f6d09d3da
chore(web): migrate to vitest (#5754)
* Updated vite and ts config file with vtest options and a new alias to fix the dev command error

* Updated package script and update the packages
 -- this removes jest dependencies

* Added new setup file needed in vitest in order to be able to use the jest-dom matchers in tests

* Updated deprecated utilities when using faker

* Updated test files and mocks to use vitest instead of jest

* Enabled web test check in GitHub actions

* remove babel dependencies as they are no longer needed with vitest

* move the jest config files to a folder in case we need to go back to jest

* chore: remove old files

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-01 12:36:49 -05:00
martin
f13dce7d0d
fix: warning when building web (#5680) 2023-12-13 12:02:26 -05:00
Jason Rasmussen
e5d083fe79
chore(deps): remove unused cookie type (#5385) 2023-11-29 04:24:38 +00:00
renovate[bot]
6aa356e69f
chore(deps): update web (#5381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 22:57:20 -05:00
renovate[bot]
cd1b6e6976
chore(deps): update typescript-eslint monorepo to v6 (#5343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 21:11:43 -05:00
Jason Rasmussen
0758d55dea
chore(deps): remove unused package (#5337) 2023-11-27 11:48:07 -05:00
Jason Rasmussen
3992119e32
fix(deps): prettier 3 (#5336) 2023-11-27 11:42:04 -05:00
renovate[bot]
f97dca7707
chore(deps): update web (#5239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-26 00:14:06 -06:00
renovate[bot]
106bae4a31
chore(deps): update dependency svelte-jester to v3 (#5252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-22 08:08:11 -06:00
renovate[bot]
b06c2b786c
chore(deps): update web (#4961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-21 13:46:07 -05:00
renovate[bot]
2a5cf20c9f
chore(deps): update dependency eslint-config-prettier to v9 (#5173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 08:39:00 -06:00
Jason Rasmussen
adae5dd758
feat(web)!: SPA (#5069)
* feat(web): SPA

* chore: remove unnecessary prune

* feat(web): merge with immich-server

* Correct method name

* fix: bugs, docs, workflows, etc.

* chore: keep dockerignore for dev

* chore: remove license

* fix: expose 2283

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-11-17 22:13:36 -06:00
renovate[bot]
b82db1edaa
chore(deps): update dependency @testing-library/jest-dom to v6 (#5073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 22:52:34 -06:00
renovate[bot]
69030ea9a7
chore(deps): update dependency @faker-js/faker to v8 (#5059)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 17:50:07 -06:00
Daniel Dietzler
ad4cbf20de
refactor: map (#4957)
* fix mixed up lng lat for asset map

* minor cleanup

* update packages
2023-11-11 16:32:39 -06:00
Daniel Dietzler
a147dee4b6
feat: Maplibre (#4294)
* maplibre on web, custom styles from server

Actually use new vector tile server, custom style.json

support multiple style files, light/dark mode

cleanup, use new map everywhere

send file directly instead of loading first

better light/dark mode switching

remove leaflet

fix mapstyles dto, first draft of map settings

delete and add styles

fix delete default styles

fix tests

only allow one light and one dark style url

revert config core changes

fix server config store

fix tests

move axios fetches to repo

fix package-lock

fix tests

* open api

* add assets to docker container

* web: use mapSettings color for style

* style: add unique ids to map styles

* mobile: use style json for vector / raster

* do not use svelte-material-icons

* add click events to markers, simplify asset detail map

* improve map performance by using asset thumbnails for markers instead of original file

* Remove custom attribution

(by request)

* mobile: update map attribution

* style: map dark mode

* style: map light mode

* zoom level for state

* styling

* overflow gradient

* Limit maxZoom to 14

* mobile: listen for mapStyle changes in MapThumbnail

* mobile: update concurrency

---------

Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-11-09 10:10:56 -06:00
Jason Rasmussen
2ad389f64e
refactor(web): material icons (#4636) 2023-10-25 13:48:25 +00:00
Alex
9a7e48eaa6
chore(web): remove flowbite (#4178)
* chore(web): remove flowbite

* Added confirmation prompt for deletion
2023-09-23 11:50:21 +07:00
Jonathan Jogenfors
acdc66413c
feat(server,web): libraries (#3124)
* feat: libraries

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-09-20 13:16:33 +02:00
Alex
88e92332ee
chore(web): organize prettier trigger order (#3538)
* chore(web): organize prettier trigger order

* fix package.json

* fix package.json
2023-08-03 16:26:48 -05:00
Dmitry Brazhenko
e071b82e8a
feat (web/server) 360 degrees Web panoramas [attempt 2] (#3412)
* commit 1 (isPanorama: boolean)

* working solution for projectiontypeenum

* fix

* format fix

* fix

* fix

* fix

* fix

* enum projectiontype

* working solution with exif

* fix

* reverted >

* fix format

* reverted auto-magic api.ts prettification

* fix

* reverted api.ts autogenerated

* api ts regenerated

* Update web/src/lib/components/assets/thumbnail/thumbnail.svelte

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>

* Update web/src/lib/components/asset-viewer/asset-viewer.svelte

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>

* exifProjectionType

* Update server/src/microservices/processors/metadata-extraction.processor.ts

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>

* projectionType?: string = ProjectionType.NONE;

* not null

* projectionType!: ProjectionType;

* opeapi generator fix

* fixes

* fix

* fix

* generate api

* asset.exifInifo?.projectionType

* Update server/src/domain/asset/response-dto/exif-response.dto.ts

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

* Update server/src/microservices/processors/metadata-extraction.processor.ts

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

* enum -> varchar;projectiontypeenum->projectiontype

* asset-viewer fixed prettiffier

* @Column({}) single line

* enum | string

* make api

* enum | string

* enum | str fix

* fix

* chore: use string instead of enum

* chore: open api

* fix: checks

---------

Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-07-27 23:29:09 -05:00
Alex
7316ad5a72
chore(web): sort tailwindcss class automatically (#3330) 2023-07-18 13:19:39 -05:00
Thomas
8045fd3f14
fix(web): remove dependency on rxjs (#3301)
The dependency on rxjs has been removed in favour of iterators as it's clearer
and the nature of the workload is inherently non-reactive. The uncaught error
when the list of files is empty has also been implicitly fixed by this change.

Fixes: #3300
2023-07-17 11:22:29 -05:00