Compare commits

..

2238 Commits

Author SHA1 Message Date
vishnukvmd
d16f98cf07 v0.8.95 2024-05-12 08:44:26 +05:30
vishnukvmd
8677cbb4f8 Increase JVM allocation pool 2024-05-12 08:43:55 +05:30
vishnukvmd
0e33299863 Merge branch 'main' into f-droid 2024-05-07 12:54:44 +05:30
Manav Rathi
cb482c60b6 [web] Tell the Crowdin push action not to create a PR (#1643) 2024-05-07 12:02:33 +05:30
Manav Rathi
a567009e2a [web] Tell the Crowdin push action not to create a PR 2024-05-07 12:02:08 +05:30
Vishnu Mohandas
bc75eff172 v0.8.94 (#1642) 2024-05-07 11:43:25 +05:30
vishnukvmd
c5a88499bc v0.8.94 2024-05-07 11:42:32 +05:30
Neeraj Gupta
752850922c [mob] Fix keepPhotos action for hidden albums (#1640)
## Description
While deleting a hidden collection, if user clicks on `Keep photos`,
then we were moving those photos to uncat instead of default hidden
collection.

## Tests
Monkey tested locally
2024-05-07 11:40:54 +05:30
Vishnu Mohandas
d2ccd0a453 [auth] Update Simple Icons (#1641) 2024-05-07 11:40:39 +05:30
vishnukvmd
95063ea442 Update podfile 2024-05-07 11:36:59 +05:30
vishnukvmd
96f22c5e1f Update Simple Icons 2024-05-07 11:36:50 +05:30
Neeraj Gupta
307aaa4c21 [mob] Fix keepPhotos behaviour for hiddenCollections 2024-05-07 11:35:28 +05:30
Neeraj Gupta
aee1c5e88c [mob] generated files 2024-05-07 11:33:48 +05:30
Manav Rathi
500d163df0 [web] Rename storage_unit i18n key (#1639)
and remove separate gb
2024-05-07 11:30:58 +05:30
Manav Rathi
ce9ad0f406 Rename 2024-05-07 11:28:35 +05:30
Manav Rathi
ee8a6cfb55 [web] dynamic free storage - prepare for changes (#1637) 2024-05-07 11:15:29 +05:30
Neeraj Gupta
0a57f3f955 [mob] Enable shared item action (#1638)
## Description

## Tests
Monkey tested locally
2024-05-07 11:14:11 +05:30
Neeraj Gupta
920f8fcd37 [mob] Remove unused import 2024-05-07 11:12:46 +05:30
Manav Rathi
521950075f yarn lint-fix 2024-05-07 11:12:23 +05:30
Neeraj Gupta
68cdc3a1b4 [auth] New translations (#1631)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-05-07 11:12:19 +05:30
Neeraj Gupta
f348a81904 [mob] Enable saving shared items for all users 2024-05-07 11:11:46 +05:30
Manav Rathi
e9bf6d7171 Add a new action 2024-05-07 11:10:09 +05:30
Vishnu Mohandas
3fc4fcd7f9 [mobile] New translations (#1630)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-05-07 10:59:06 +05:30
Vishnu Mohandas
d45ea7a338 Update copy (#1634) 2024-05-07 10:57:27 +05:30
vishnukvmd
487216fd99 v0.8.92 2024-05-07 10:57:18 +05:30
vishnukvmd
11ced154ce Update copy 2024-05-07 10:50:49 +05:30
Manav Rathi
491b814a2e Convert the third one too 2024-05-07 10:45:06 +05:30
Neeraj Gupta
20c2df773d [mob][cast] Enable cast for all 2024-05-07 10:39:52 +05:30
Neeraj Gupta
ab33bc34a1 [mob] Allow fav for shared items 2024-05-07 10:36:22 +05:30
Neeraj Gupta
a39e6b54cc [mob] Disable auto-cast for iOS (#1633)
## Description

## Tests
Tested on sim
2024-05-07 10:35:35 +05:30
Manav Rathi
ccf336e00f 2 2024-05-07 10:35:22 +05:30
Neeraj Gupta
12fb606e77 [mob] Disable auto-cast for iOS 2024-05-07 10:32:48 +05:30
Manav Rathi
7993a07607 1 2024-05-07 10:28:05 +05:30
Neeraj Gupta
c632713752 [mob] Fix _googlecast._tcp value in Info.plist 2024-05-07 10:24:50 +05:30
Manav Rathi
daeccdab32 Move 2024-05-07 10:05:49 +05:30
Manav Rathi
c4756fb847 [desktop] More fixes leading on to the release (#1632) 2024-05-07 09:49:04 +05:30
Manav Rathi
1c2e3479c8 [web] New translations (#1629)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-05-07 09:48:50 +05:30
Manav Rathi
08b5672f93 Migrate off from deprecated API 2024-05-07 09:46:12 +05:30
Manav Rathi
6efbaacdd1 Add note about keychain 2024-05-07 09:43:32 +05:30
Manav Rathi
939b228a0d Note about appDir 2024-05-07 09:37:44 +05:30
Crowdin Bot
68e4b77266 New Crowdin translations by GitHub Action 2024-05-07 02:07:43 +00:00
Crowdin Bot
86e617e54b New Crowdin translations by GitHub Action 2024-05-07 01:58:25 +00:00
Crowdin Bot
e3fae854db New Crowdin translations by GitHub Action 2024-05-07 01:40:22 +00:00
Manav Rathi
e934cc8cb4 Allow UID 1 to re-index 2024-05-06 20:12:38 +05:30
Manav Rathi
94ec766bc6 Add missing conditional 2024-05-06 19:42:42 +05:30
Manav Rathi
66f705ed9b Use the correct key 2024-05-06 19:32:57 +05:30
Manav Rathi
555eda0619 Check 2024-05-06 19:28:05 +05:30
Manav Rathi
333f364d38 Serve legacy face crops 2024-05-06 19:20:25 +05:30
Vishnu Mohandas
90c8fb09a3 Update copy for Cast (#1626) 2024-05-06 18:55:48 +05:30
Vishnu Mohandas
be01f88058 Update copy for Cast 2024-05-06 17:32:14 +05:30
Manav Rathi
0af7d2c13e Retain the devtools option for perhaps another build to help in extreme cases 2024-05-06 16:31:18 +05:30
Manav Rathi
8a8d29e6b9 Fix loading of preload scripts 2024-05-06 16:29:51 +05:30
Manav Rathi
a8d3a8bfe8 Remove duplicate notarization attempt
From build logs:

     • notarization successful
    Error: The appleIdPassword property is required when using notarization with password credentials
        at validateNotaryToolAuthorizationArgs (/Users/runner/work/photos-desktop/photos-desktop/desktop/node_modules/electron-notarize/src/validate-args.ts:107:13)

Not sure, but at the face of it (since this was not enabled earlier too), our
notarization process kicks in during signing because of the presence of env
vars, and specifying it again here starts a separate process we haven't
configured.
2024-05-06 16:08:23 +05:30
Manav Rathi
5f964e533c Show always (for temp debugging) 2024-05-06 16:07:35 +05:30
Neeraj Gupta
06e65fbf37 [cli] Improve documentation for ente account add (#1625)
## Description

## Tests
Tested locally
2024-05-06 15:54:42 +05:30
Neeraj Gupta
f097535756 [cli] Improve ente account add doc 2024-05-06 15:53:47 +05:30
Neeraj Gupta
d8e917ac40 [cli] Hint user to create a account before adding to cli 2024-05-06 15:51:15 +05:30
Neeraj Gupta
28167561f6 [mob] Bump version 0.8.91+611 (#1624)
## Description

## Tests
2024-05-06 15:33:41 +05:30
Manav Rathi
51e9383ce0 lint 2024-05-06 15:33:21 +05:30
Neeraj Gupta
0531438cf0 [mob] Bump version 0.8.91+611 2024-05-06 15:33:15 +05:30
Manav Rathi
c2f5c3968c Note what I noticed 2024-05-06 15:31:07 +05:30
Manav Rathi
90d56f3886 Show dev tools always 2024-05-06 15:26:26 +05:30
Manav Rathi
aa81e14fed Draft release for testing 2024-05-06 15:22:21 +05:30
Neeraj Gupta
56192fe7af [mob] Cast improvements (#1623)
## Description

## Tests
Tested locally
2024-05-06 14:46:46 +05:30
Neeraj Gupta
b5f56bf350 [mobile] New translations (#1617)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-05-06 14:46:25 +05:30
Neeraj Gupta
bdcad0515c [mob][cast] Increase discovery timeout to 7seconds 2024-05-06 14:44:54 +05:30
Neeraj Gupta
371f3b538f [mob][cast] Improve logs 2024-05-06 14:42:58 +05:30
Neeraj Gupta
d779fc05bd [mob][cast] Fix cast progress state 2024-05-06 14:41:52 +05:30
Neeraj Gupta
1d1ee1248c [mob][cast] Send collectionID during pairing 2024-05-06 14:19:27 +05:30
Neeraj Gupta
06e43bf276 [mob] Fix cast button refresh state 2024-05-06 14:17:59 +05:30
Manav Rathi
0df7ba60b3 [docs] Add note about connecting web/desktop app to custom server (#1622) 2024-05-06 14:13:53 +05:30
Manav Rathi
f37769d340 [docs] Add note about connecting web/desktop app to custom server 2024-05-06 14:12:45 +05:30
Manav Rathi
4da4dcaeb5 [web] New translations (#1621)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-05-06 10:33:17 +05:30
Crowdin Bot
6db94b7595 New Crowdin translations by GitHub Action 2024-05-06 05:00:53 +00:00
Manav Rathi
78e97c1c01 [web] Enable German (#1620)
German translation has reached almost 100% coverage, time to enable it.
Thank you to all the translators in Crowdin 🙏
2024-05-06 10:30:16 +05:30
Neeraj Gupta
70216e39df [auth] New translations (#1619)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-05-06 10:28:59 +05:30
Manav Rathi
ea57815945 Add a TODO and fix typo 2024-05-06 10:23:08 +05:30
Manav Rathi
9804d448f6 Enable German (has reached 100%) 2024-05-06 10:19:55 +05:30
Manav Rathi
59d8b9bfbb Remove misused translation strings 2024-05-06 10:17:29 +05:30
Manav Rathi
a288c8305a Add TODO about better translation 2024-05-06 10:07:27 +05:30
Manav Rathi
2b381fdb91 [web] New translations (#1618)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-05-06 09:57:11 +05:30
Crowdin Bot
98b2df1d39 New Crowdin translations by GitHub Action 2024-05-06 04:24:05 +00:00
Crowdin Bot
e59007590d New Crowdin translations by GitHub Action 2024-05-06 04:23:57 +00:00
Crowdin Bot
6df40fe950 New Crowdin translations by GitHub Action 2024-05-06 04:23:54 +00:00
Manav Rathi
4aaed67ffe [meta] Namespace translation branch names, and allow force deploy for WIP apps (#1616)
- Namespace Crowdin PR branches
- Allow force deploying cast and accounts (while they're still in dev)
2024-05-06 09:53:16 +05:30
Manav Rathi
51b103a620 Allow force deploying cast and accounts (while they're still in dev) 2024-05-06 09:52:00 +05:30
Manav Rathi
0194fe65c7 Namespace Crowdin PR branches 2024-05-06 09:48:38 +05:30
Manav Rathi
de9a4a5300 [web] Rework cast (#1611)
* HEIC conversion is still pending, but that should be easy to add if
the rest everything is working fine on Chromecast
* Have tested on manual pairing
2024-05-06 09:46:33 +05:30
Vishnu Mohandas
6041cd73bd Fix typo 2024-05-05 14:56:43 +05:30
Manav Rathi
c92380eb10 Once over 2024-05-04 19:08:48 +05:30
Manav Rathi
fa8f229fcb Help tsc 2024-05-04 19:02:07 +05:30
Manav Rathi
34c30e4520 Remove unused file 2024-05-04 18:59:29 +05:30
Manav Rathi
6a6b77f1d2 Remove unused code 2024-05-04 18:56:52 +05:30
Manav Rathi
575e4809d8 Random order 2024-05-04 18:48:43 +05:30
Manav Rathi
ee503b3bce Shuffle 2024-05-04 18:37:48 +05:30
Manav Rathi
094f1daef3 Get all files 2024-05-04 18:22:36 +05:30
Manav Rathi
3c000b5c62 First time 2024-05-04 17:50:29 +05:30
Manav Rathi
42089403fd Account for processing in the timings 2024-05-04 17:32:02 +05:30
Manav Rathi
2ae2b73c59 Simplify revoke 2024-05-04 17:17:10 +05:30
Manav Rathi
438b6430e0 Simplify 2024-05-04 16:59:10 +05:30
Manav Rathi
b6add9650a Revoke 2024-05-04 15:30:39 +05:30
Manav Rathi
b809523ec9 More 2024-05-04 14:41:06 +05:30
Manav Rathi
77036ee29a Rearrange 2024-05-04 14:26:18 +05:30
Manav Rathi
b42326bd9b Remove unused saved data 2024-05-04 14:23:56 +05:30
Manav Rathi
1d11c906ef Reorder 2024-05-04 14:21:44 +05:30
Manav Rathi
80301b14f4 Rearrange 2024-05-04 14:18:44 +05:30
Manav Rathi
bf66697bcb t2 2024-05-04 13:24:58 +05:30
Manav Rathi
8b75393ea0 gen 2024-05-04 12:39:55 +05:30
Manav Rathi
b520996af5 Sketch 2024-05-04 12:28:15 +05:30
Vishnu Mohandas
2308a731e3 Update changelog (#1609) 2024-05-04 12:16:17 +05:30
vishnukvmd
1fac0fc50d Update changelog 2024-05-04 12:15:22 +05:30
Manav Rathi
882af50507 Reorder 2024-05-04 11:18:23 +05:30
Manav Rathi
efdf980558 busywork 2024-05-04 11:15:06 +05:30
Manav Rathi
fdeb0f9493 Match 2024-05-04 11:12:43 +05:30
Manav Rathi
c2a2370510 Mirror 2024-05-04 11:11:49 +05:30
Manav Rathi
3d8d6e9fac Remove unused remove code 2024-05-04 10:52:12 +05:30
Manav Rathi
3c3955017e Start chromecast SDK only once 2024-05-04 10:49:33 +05:30
Manav Rathi
1dafec15c7 Unused 2024-05-04 10:31:59 +05:30
Manav Rathi
2ca88ef0a3 Placeholder 2024-05-04 10:26:52 +05:30
Manav Rathi
a058897c48 Simplify 2024-05-04 10:24:37 +05:30
Manav Rathi
3ca1bd7729 Fuse 2024-05-04 10:17:09 +05:30
Manav Rathi
4b674c22c1 Inline 2024-05-04 10:15:31 +05:30
Manav Rathi
75a9abab0f Inline 2024-05-04 10:11:59 +05:30
Manav Rathi
949dd22f81 Inline 2024-05-04 10:03:53 +05:30
Manav Rathi
8bcbdeb6e2 Rename 2024-05-04 09:56:24 +05:30
Manav Rathi
6175c2617c Rearrange 2024-05-04 09:08:48 +05:30
Manav Rathi
0f64a506e5 Comments 2024-05-04 09:00:58 +05:30
Manav Rathi
8a4f5e2934 Fix 2024-05-04 08:55:54 +05:30
Manav Rathi
54bb32d5e7 3 phase 2024-05-04 08:44:58 +05:30
Manav Rathi
159d207d1f Phases 2024-05-04 07:27:10 +05:30
Manav Rathi
5dc4352196 Ignore nulls 2024-05-04 07:13:32 +05:30
Manav Rathi
afa8303d91 Split phases 2024-05-04 06:59:06 +05:30
Manav Rathi
a86a818924 pp 2024-05-04 06:34:52 +05:30
Manav Rathi
5388112b48 Pair 2 2024-05-03 21:57:30 +05:30
Manav Rathi
90a87a8e4f Pair 1 2024-05-03 21:42:33 +05:30
github-actions[bot]
ae2f939a4d [mobile] New translations (#1538)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-05-03 20:16:02 +05:30
Neeraj Gupta
791506b510 [mobile][cast] Fix minor UI issues (#1588)
## Description

## Tests
2024-05-03 20:14:21 +05:30
Ashil
b45262c75b [mob][photos] band aid fix for word gettng cut to next line in SelectionActionButton (#1607) 2024-05-03 19:57:01 +05:30
Vishnu Mohandas
7f6e8228af [mob][photos] Fix BG task not getting killed (#1608)
## Description

`BackgroundFetch.finish(taskId)` doesn't seems to be killing the BG
task.
Explicitly killing the Isolate does the work.
2024-05-03 19:56:35 +05:30
Manav Rathi
021ff4611c Remove indirection 2024-05-03 19:25:52 +05:30
Manav Rathi
b7842765e8 Document 2024-05-03 19:24:04 +05:30
ashilkn
8154dc4a7c [mob][photos] Remove logs added for debugging 2024-05-03 19:21:56 +05:30
ashilkn
b494c308b1 [mob][photos] Merge main 2024-05-03 19:19:30 +05:30
Manav Rathi
30464772e2 Inline 2024-05-03 19:19:18 +05:30
ashilkn
d911479031 [mob][photos] Remove logs added for debugging 2024-05-03 19:17:48 +05:30
Manav Rathi
1d8be29bd6 Add missing dependency array 2024-05-03 19:07:25 +05:30
Manav Rathi
c750329fb1 Fix type only import
Ref:
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/28190#issuecomment-444339277
2024-05-03 19:02:04 +05:30
Manav Rathi
a0c5dd84c7 Add typings 2024-05-03 19:00:16 +05:30
Manav Rathi
08f23efeca Use in cast 2024-05-03 18:47:44 +05:30
Manav Rathi
34c664ac33 Move to @/media 2024-05-03 18:37:57 +05:30
Vishnu Mohandas
5527836eab [mob][photos] Bump up to v0.8.90 (#1601) 2024-05-03 15:43:09 +05:30
Vishnu Mohandas
5f3b253607 Changelog (#1599) 2024-05-03 15:42:59 +05:30
Vishnu Mohandas
27ef12b222 [mob][photos] Request for ACCESS_MEDIA_LOCATION permission if not granted (#1600)
## Description


a5d05decf2/mobile/lib/utils/photo_manager_util.dart (L8)

^passing true here should let the app have `ACCESS_MEDIA_LOCATION`
permission. But looks like that isn't working for a small set of users.
So, asking for permission explicitly.
2024-05-03 15:42:47 +05:30
ashilkn
21faf76611 [mob][photos] Bump up to v0.8.90 2024-05-03 15:34:19 +05:30
vishnukvmd
ff45d11384 Changelog 2024-05-03 15:12:53 +05:30
Vishnu Mohandas
a5d05decf2 [web] New translations (#1598)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-05-03 15:09:56 +05:30
ashilkn
377a8b1128 [mob][photos] Request for ACCESS_MEDIA_LOCATION permission if not granted 2024-05-03 15:08:04 +05:30
Crowdin Bot
c31ce04c6e New Crowdin translations by GitHub Action 2024-05-03 09:31:18 +00:00
Vishnu Mohandas
7a5b425c82 Update copies for Cast (#1597) 2024-05-03 15:00:33 +05:30
vishnukvmd
8dc6e1ab6a Fix lint error 2024-05-03 14:59:42 +05:30
vishnukvmd
03e9aef848 Update copies for Cast 2024-05-03 14:54:31 +05:30
Manav Rathi
a127d43d54 [desktop] Prepare for release (#1596)
- **Run the electron builder in the correct path**
- **Provide repository**
- **Move to new notarization mechanism**
- **Use an Electron Builder version that supports notarytool**
2024-05-03 14:46:18 +05:30
Manav Rathi
2b9ee7824d lint 2024-05-03 14:44:24 +05:30
Neeraj Gupta
dc1d2c5b7b [FIX] Handle Steam host (#1539)
## Description

It is same as Totp with 5 digits.
Related: https://github.com/ente-io/ente/discussions/1038
2024-05-03 14:39:40 +05:30
Manav Rathi
ea812561c6 Run everywhere 2024-05-03 14:38:56 +05:30
Prateek Sunal
7ced2f5139 Merge branch 'main' into auth-stream-otpauth 2024-05-03 14:26:30 +05:30
Neeraj Gupta
8831560151 Minor fix 2024-05-03 14:21:59 +05:30
Neeraj Gupta
679922bdfe Refactor 2024-05-03 14:19:12 +05:30
Neeraj Gupta
536de8a3fa Minor refactor 2024-05-03 14:17:23 +05:30
Neeraj Gupta
da45ea3173 [auth] Improve _getDigits 2024-05-03 14:09:36 +05:30
Prateek Sunal
8bf9a2544c chore: bump version 2024-05-03 13:57:09 +05:30
Prateek Sunal
b374dc0dd0 fix: add digits to setup page and create stream type 2024-05-03 13:56:59 +05:30
Neeraj Gupta
26e17d8464 [server][cast] Generate alphaNumberic codes for cast (#1595)
## Description

## Tests
2024-05-03 13:51:27 +05:30
Manav Rathi
3fafc5fd99 Use an Electron Builder version that supports notarytool
We need the following patch (from the release notes of v25.0.0-alpha.6)
https://github.com/electron-userland/electron-builder/releases

> feat: Make notarization with Apple ID more usable by
> https://github.com/electron-userland/electron-builder/pull/8159
2024-05-03 13:17:58 +05:30
ashilkn
b221b80625 Merge branch 'main' into fix_bg_task_not_getting_killed 2024-05-03 13:12:24 +05:30
ashilkn
075d8d9769 [mob][photos] bump up version 2024-05-03 13:07:29 +05:30
ashilkn
ec93a02674 [mob][photos] fix: BG process not getting killed when app is brought to foreground 2024-05-03 13:05:02 +05:30
Manav Rathi
b24d80a267 Move to new notarization mechanism
Refs:
- https://www.electron.build/configuration/mac.html#NotarizeLegacyOptions
- https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/src/macPackager.ts
- https://github.com/samuelmeuli/action-electron-builder/issues/101
2024-05-03 13:02:19 +05:30
Neeraj Gupta
48bfe5b2fe [web][cast] Use deviceCode generated by sever (#1594)
## Description

## Tests
2024-05-03 12:38:46 +05:30
Neeraj Gupta
a62edad446 [server][cast] Fix err handling 2024-05-03 12:36:02 +05:30
Neeraj Gupta
627eab472c [server][cast] Only log ip mismatch instances 2024-05-03 12:32:16 +05:30
Neeraj Gupta
ad5cfdc6db [server][cast] convert deviceCode input to upperCase 2024-05-03 12:31:26 +05:30
Neeraj Gupta
99b13d18b0 [server][cast] Generate alphaNumeric deviceCode 2024-05-03 12:29:32 +05:30
Neeraj Gupta
8a85932512 refactor 2024-05-03 12:27:48 +05:30
Neeraj Gupta
b9b928797c [web][cast] Use server to generate deviceCode 2024-05-03 12:24:52 +05:30
Neeraj Gupta
48f24d48b5 [server] Move generateAlphaNumString to util 2024-05-03 12:11:35 +05:30
Manav Rathi
0f3555468d Provide repository
Fixes:

    Cannot detect repository by .git/config. Please specify "repository" in the package.json (https://docs.npmjs.com/files/package.json#repository).
    Please see https://electron.build/configuration/publish  failedTask=build stackTrace=Error: Cannot detect repository by .git/config. Please specify "repository" in the package.json (https://docs.npmjs.com/files/package.json#repository).
2024-05-03 12:09:03 +05:30
Prateek Sunal
b52133fe57 fix: revert totp changes 2024-05-03 12:00:29 +05:30
Manav Rathi
c04a30a37c [web] New translations (#1586)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-05-03 11:31:06 +05:30
Manav Rathi
0165c72064 [desktop] Run the electron builder in the correct path (#1593)
Also add a convenience script to the [photos-desktop
repo](https://github.com/ente-io/photos-desktop/blob/main/.github/trigger-release.sh):

```sh
#!/bin/sh

set -o errexit

version="$1"
if test -z "$version"
then
    echo "usage: `basename $0` <version-including-v>"
    exit 1
fi

set -o xtrace

cp ../ente/desktop/CHANGELOG.md CHANGELOG.md
cp ../ente/desktop/.github/workflows/desktop-release.yml .github/workflows/
git add CHANGELOG.md .github/workflows/desktop-release.yml
git commit -m "$version"
git push origin main

git tag "$version"
git push origin "$version"
```
2024-05-03 11:30:17 +05:30
Manav Rathi
e9feec37d5 Run the electron builder in the correct path 2024-05-03 11:28:06 +05:30
Manav Rathi
79e15827d3 [desktop] Use same convention as other preexisting tags in our repo (#1592) 2024-05-03 11:09:43 +05:30
Manav Rathi
5d0e62cf5f Use same convention as other preexisting tags in our repo 2024-05-03 11:08:06 +05:30
Manav Rathi
d68e607d4a [desktop] Fix ref ref in action (#1591)
ref_name is the (from my understanding) the shorthand we need for
prefixing. Untested, will do a test build.
2024-05-03 11:02:46 +05:30
Manav Rathi
647cc0d803 [desktop] Fix ref ref in action
ref_name is the (from my understanding) the shorthand we need for prefixing. Untested, will do a test build.
2024-05-03 11:00:55 +05:30
Manav Rathi
383d570ece [desktop] Prepare for beta release (#1590) 2024-05-03 10:51:45 +05:30
Manav Rathi
ddad863b31 Prepare for release 2024-05-03 10:50:21 +05:30
Neeraj Gupta
486d89f506 [mob] Log n/w when mobileBackUpIsDisabled and backup is happening (#1589)
## Description

## Tests
2024-05-03 10:34:34 +05:30
Neeraj Gupta
024f160ca0 [mob] Improve log 2024-05-03 10:14:27 +05:30
Neeraj Gupta
cdfbd402d2 [cli] Documentation improvement (#1587)
- Clarify that config.yaml needs to go to CWD
- Add a notice about ente account add (I think it is the second time
someone got confused about this)

Maybe we can also print a notice or the help docs when `ente` is run
without any arguments (just a thought for future changes)
2024-05-03 10:02:15 +05:30
Manav Rathi
977d212be6 Add a notice about ente account add 2024-05-03 09:42:17 +05:30
Manav Rathi
3eda263d26 Clarify cwd 2024-05-03 09:38:58 +05:30
Crowdin Bot
d08c2b4fa0 New Crowdin translations by GitHub Action 2024-05-03 01:40:38 +00:00
Manav Rathi
9324c739fd [desktop] Electron 30 (#1584)
Upgrade to Electron 30 to get the streaming request fix we need.

Also add a workaround to get POSIX paths from webUtils on Windows. For
the test case, see this
[Fiddle](https://gist.github.com/mnvr/91eaca21b0651926565274ee80f10ad5).
2024-05-02 21:49:44 +05:30
Manav Rathi
0c4da8c86a POSIX paths 2024-05-02 21:38:02 +05:30
Manav Rathi
6a99002064 Start using it 2024-05-02 21:25:44 +05:30
Manav Rathi
67eed1aa89 Upgrade to Electron 30
This picks up the stream fix we need
> Fixed data corruption when protocol.handle() processed incoming data asynchronously. #41933 (Also in 31)
>
> https://github.com/electron/electron/releases/tag/v30.0.2
2024-05-02 21:20:26 +05:30
Manav Rathi
151e7abc19 [desktop] Resurrect desktop build (#1583)
Untested, this is the plan.
2024-05-02 20:25:13 +05:30
Manav Rathi
2f2d15c9f2 lint 2024-05-02 20:22:40 +05:30
Manav Rathi
fecfb4a8b7 Hopes and dreams 2024-05-02 19:52:39 +05:30
Manav Rathi
3b3d24e9e0 It'll need to live in the releases repo, reword accordingly 2024-05-02 19:34:58 +05:30
Manav Rathi
aed781b0ff Use same credentials as the auth app
While we won't actually be using the monorepo for releases, get the action to a
known state:

- MAC_OS_CERTIFICATE and MAC_OS_CERTIFICATE_PASSWORD is the same GitHub secret
  that the auth app already uses

- Need to add APPLE_API_KEY, APPLE_API_KEY_ID, APPLE_API_KEY_ISSUER_ID.
2024-05-02 19:05:52 +05:30
Manav Rathi
fa182b951d [desktop] Resurrect build
Untested
2024-05-02 12:55:08 +05:30
Manav Rathi
85522a946a [desktop] Short-circuit ML (#1580)
This is so that we can make a release. Post-release, we'll come back to
this and give it the finishing touches and re-enable it. This avoids
doing a re-indexing for actual users in case we need to change stuff
during the finishing touches.
2024-05-02 12:07:09 +05:30
Manav Rathi
68721b8168 Pick from the correct table 2024-05-02 11:11:24 +05:30
Manav Rathi
8327c2b881 Remove unused ElectronFile 2024-05-02 10:23:56 +05:30
Vishnu Mohandas
ab471dde96 Replace Isar with SQLite for storing CLIP embeddings (#1575)
## Description
- This PR removes the dependency on Isar, and sets up a SQLite DB for
storing embeddings.
- The existing DB is deleted, and the new DB is populated by pulling
embeddings from the server. Local migration was possible, but that would
have required us to keep Isar as a dependency for an unknown period of
time.
- For 30k embeddings, DB size has dropped from ~420MB to ~115MB. The
first load on a Pixel 7 has increased from ~500ms to ~600ms.
- More details @ https://ente.io/blog/tech/sqlite-objectbox-isar/#update

## Tests
- [x] Verified over internal builds that semantic search is working as
expected

> Note: This fixes that jank that would happen when a foreground process
tries to read data from the Isar DB while a background process is alive.
2024-05-02 09:35:24 +05:30
Manav Rathi
cd5c1e35fa Disable live clip, rely on the thumbnailed version 2024-05-01 21:05:29 +05:30
Manav Rathi
30f22e333a Pass file when we have it 2024-05-01 21:04:41 +05:30
Manav Rathi
5ba2e35af6 Force disable it for non internal users 2024-05-01 20:13:08 +05:30
Manav Rathi
0226a99fa3 Disable enabling ML search 2024-05-01 20:09:36 +05:30
Manav Rathi
2690b874ee Make the migration a no-op 2024-05-01 19:49:09 +05:30
vishnukvmd
11d6cdd7c1 Rename variables 2024-05-01 19:36:09 +05:30
Manav Rathi
eb64cd8367 [desktop] More IPC enhancements and fixes (#1577)
Heading towards a wrap.
2024-05-01 19:08:41 +05:30
Manav Rathi
90b5054fcb chokidar seemed to have gotten stuck after a close
Not sure if something else was off, but after a close new watches in the same
session (after logging in) stopped reacting.
2024-05-01 19:02:43 +05:30
Manav Rathi
932f26684d Electron logout 2024-05-01 18:50:10 +05:30
Manav Rathi
4eb51061cb For real 2024-05-01 18:21:45 +05:30
Manav Rathi
de4aa3a6ca URL encode 2024-05-01 18:15:52 +05:30
Manav Rathi
c988884ab1 Setting pathname had no effect 2024-05-01 17:56:46 +05:30
Manav Rathi
b967d4bbea URL encode better
e.g. fixes the reading of a file with a hash in the name
2024-05-01 17:39:28 +05:30
Manav Rathi
0a93ba67a1 Fix warnings
Refs:
https://stackoverflow.com/questions/69730364/what-is-the-purpose-of-shouldforwardprop-option-in-styled
2024-05-01 17:04:44 +05:30
Manav Rathi
d30a8b8033 [desktop] Finalize zip handling (#1576)
And other fixes. Getting close to a stable desktop build.
2024-05-01 15:42:12 +05:30
Manav Rathi
9dd865ff6e Comment 2024-05-01 15:31:42 +05:30
vishnukvmd
bc32c89d77 Rename DB 2024-05-01 15:14:44 +05:30
vishnukvmd
1cd9fb1021 v0.8.88 2024-05-01 15:12:57 +05:30
Manav Rathi
10f2c3db6f Mention why we're normalizing 2024-05-01 15:12:50 +05:30
vishnukvmd
5f131693f4 Use Int instead of String to represent an enum 2024-05-01 15:12:48 +05:30
Manav Rathi
4c28e83dbb Optimize 2024-05-01 15:07:58 +05:30
Manav Rathi
36984012a8 They're all optionals now 2024-05-01 15:00:18 +05:30
Manav Rathi
cb73bc143d Research 2024-05-01 15:00:14 +05:30
Manav Rathi
52909f6f21 The handler adds its own error message prefix
Error occurred in handler for 'generateImageThumbnail': Error: This feature in not available on the current OS/arch
2024-05-01 14:06:34 +05:30
Manav Rathi
5ffc2f20fd Replicate previous behaviour 2024-05-01 13:57:33 +05:30
Manav Rathi
f2a764aac2 Fix export trash movement 2024-05-01 13:42:09 +05:30
Manav Rathi
f91dddda93 Fix paths 2024-05-01 13:35:42 +05:30
Manav Rathi
6086d43635 Don't log a potentially huge list 2024-05-01 12:32:33 +05:30
Manav Rathi
ff5a167f48 Might not be JSONStringify-able 2024-05-01 11:33:49 +05:30
vishnukvmd
de92a9dd64 v0.8.87 2024-05-01 10:41:36 +05:30
vishnukvmd
81feeef792 Remove dependency on Isar 2024-05-01 10:41:15 +05:30
Manav Rathi
55c603d345 Tweak logs 2024-05-01 10:39:35 +05:30
Manav Rathi
15b013ea36 Verified with a console log 2024-05-01 10:19:21 +05:30
Manav Rathi
38969d6f45 Fix zip reader 2024-05-01 10:17:51 +05:30
Vishnu Mohandas
74f93efe16 Don't send changes for review in internal build 2024-05-01 10:03:26 +05:30
Manav Rathi
bd2969daff Fix inverted condition 2024-05-01 10:03:03 +05:30
Vishnu Mohandas
baf943550f Don't sent internal build for review 2024-05-01 10:01:41 +05:30
Manav Rathi
633aee9dfd [desktop] Fix pending uploads state management (#1574)
and various other 
2024-05-01 09:29:30 +05:30
Manav Rathi
eb1d8a8210 Add a workaround for broken yarn classic dependency resolution
...that causes `yarn install` to fail.

Ref:
- https://github.com/isaacs/jackspeak/issues/5
- https://github.com/yargs/cliui/issues/159
2024-05-01 09:27:56 +05:30
Manav Rathi
735213b474 linter linter on the wall who's the fairest of them all 2024-05-01 09:17:17 +05:30
Manav Rathi
7056e04c02 Fix lint for web
Copy overrides from desktop
2024-05-01 09:13:41 +05:30
Manav Rathi
abee517f8c Fix remote build by recreating yarn.lock 2024-05-01 09:13:20 +05:30
Manav Rathi
42b214a4ba Remove duplicate state and reset store on successful completion
Clears out the collection name
2024-05-01 09:05:12 +05:30
Manav Rathi
e18731e625 yarn upgrade-interactive typescript and lints 2024-05-01 08:51:47 +05:30
Manav Rathi
9cbf69f9b3 upgrade-interactive 2024-05-01 08:46:43 +05:30
Manav Rathi
6c716ad892 Tell prettier not to print the names of the files it processes 2024-05-01 08:30:35 +05:30
Manav Rathi
4e8f2e65f0 Handle undefined better 2024-05-01 08:25:55 +05:30
Prateek Sunal
ebbd946fc2 chore: bump version for auth to 256 (#1573)
## Description

## Tests
2024-05-01 02:05:14 +05:30
Prateek Sunal
b39b470b95 chore: bump version 2024-05-01 01:48:32 +05:30
Vishnu Mohandas
292065a7b5 [FIX] Rpm build for Auth (#1466)
## Description

Try to remove missing deps error in auth desktop.
2024-05-01 01:42:43 +05:30
Prateek Sunal
d0d5ead80b fix: install patchelf for dynamic linking 2024-05-01 01:07:13 +05:30
Prateek Sunal
ac9f5095d1 fix: rpm deps and webview package 2024-05-01 01:05:10 +05:30
Manav Rathi
c353ceaaf9 [desktop] IPC refactoring and general cleanup (#1572) 2024-04-30 23:13:05 +05:30
Manav Rathi
a0d44b58e2 Fix load
Using .on("ready" was not causing the window to start loading the renderer
unless createWindow was made async.
2024-04-30 22:48:46 +05:30
Manav Rathi
54e8d64b9e Fix the loading of utils/index
Naming it index doesn't cause isDev to be loaded.
2024-04-30 22:46:04 +05:30
vishnukvmd
9d6059a176 v0.8.86 2024-04-30 20:06:40 +05:30
vishnukvmd
348b784674 Remove Isar DB for Embeddings 2024-04-30 19:52:30 +05:30
vishnukvmd
c0e12e84ef Merge branch 'main' into embedding_sqlite 2024-04-30 19:10:58 +05:30
Manav Rathi
1eff04fe92 Enable lints 2024-04-30 18:57:19 +05:30
Manav Rathi
50a1447020 Stylistic 2024-04-30 18:54:58 +05:30
Manav Rathi
76c98bdf32 handle unsafe returns 2024-04-30 18:50:15 +05:30
Manav Rathi
7e2ee61a97 void expressions are fine 2024-04-30 18:46:59 +05:30
Manav Rathi
7b16fa9f38 void 2024-04-30 18:42:24 +05:30
Manav Rathi
9a28172565 iife wrapper 2024-04-30 18:37:50 +05:30
Manav Rathi
bda5226796 More unawaited 2024-04-30 18:34:32 +05:30
Neeraj Gupta
f7a62c91e9 Cast logs v2 (#1569)
## Description

## Tests
2024-04-30 18:21:23 +05:30
Neeraj Gupta
d81684a93b [web][cast] More logs 2024-04-30 18:20:01 +05:30
Neeraj Gupta
13d5a9f71a [web][cast] Add logs 2024-04-30 18:09:35 +05:30
Neeraj Gupta
262e8852de [web][cast] Add slide logs (#1566)
## Description

## Tests
2024-04-30 17:47:08 +05:30
Neeraj Gupta
ecfb7d944d [web][cast] Add slide logs 2024-04-30 17:45:50 +05:30
Manav Rathi
82316ff290 Unawaited promises 2024-04-30 17:43:30 +05:30
Manav Rathi
d308d334f8 tt 2024-04-30 17:41:12 +05:30
Neeraj Gupta
b3fc9bb682 [cast] Add logs (#1564)
## Description

## Tests
2024-04-30 17:34:16 +05:30
Neeraj Gupta
20459afc7b [cast] Add logs 2024-04-30 17:33:25 +05:30
Manav Rathi
f4660baeb8 Remove unnecessary awaits 2024-04-30 16:58:58 +05:30
Manav Rathi
9cce8b379c Remove unnecessary asyncs 2024-04-30 16:51:19 +05:30
Manav Rathi
46d67f0c49 Disentagle map from modifications 2024-04-30 16:49:56 +05:30
Manav Rathi
1076471d51 Turn one off 2024-04-30 16:42:52 +05:30
Vishnu Mohandas
569f7c0c47 [mob][photos] Add support for casting (#1556)
## Description

## Tests
2024-04-30 16:41:05 +05:30
Vishnu Mohandas
f00a04710b Add an option to download multiple items (#1563)
## Description

<img width="373" alt="Screenshot 2024-04-30 at 4 06 33 PM"
src="https://github.com/ente-io/ente/assets/1161789/f4bc463e-654d-4e5f-8d7d-27308149068b">

## Tests

- [x] Tested on Simulator

> Note: If the downloaded item was not owned by the user, but was shared
with them, it will get re-uploaded into the user's own account. This is
the existing behavior, so have left it untouched. Will wait for customer
feedback before updating the implementation to ignore such items.
2024-04-30 16:40:59 +05:30
Manav Rathi
7fb912c9df ensure 2024-04-30 16:34:48 +05:30
Manav Rathi
9e279da6b3 annotations 2024-04-30 16:30:19 +05:30
Manav Rathi
01c77c3949 unk 2024-04-30 16:29:24 +05:30
Manav Rathi
9771db6ade Use the built in transformer 2024-04-30 16:28:48 +05:30
Manav Rathi
994ca4b6a3 That's why cache fails 2024-04-30 16:25:35 +05:30
Neeraj Gupta
e7a5e1be3f Merge branch 'main' into cast 2024-04-30 16:24:28 +05:30
vishnukvmd
99e72a119f Update download icon 2024-04-30 16:13:48 +05:30
Manav Rathi
755ee4a0c2 hopefully 2024-04-30 16:13:16 +05:30
Neeraj Gupta
90baf7efb9 [mob] Add Ente popup menu widget (#1562)
## Description

## Tests
2024-04-30 16:12:05 +05:30
Manav Rathi
a9671481d8 Allow numbers to be used in template literals 2024-04-30 16:10:56 +05:30
vishnukvmd
fe5e6c18e8 Provide option to download multiple items 2024-04-30 16:06:03 +05:30
vishnukvmd
cdddbc4602 Increase severity of error log 2024-04-30 16:05:44 +05:30
vishnukvmd
d7bef6cd4d Log filetype 2024-04-30 16:05:06 +05:30
vishnukvmd
db47f8eaf5 Add copy 2024-04-30 16:05:00 +05:30
vishnukvmd
6f338867e4 Add log 2024-04-30 16:04:50 +05:30
vishnukvmd
872245cf0e Update package for icons 2024-04-30 16:04:32 +05:30
Manav Rathi
9b996ff353 Lint+ 2024-04-30 16:03:52 +05:30
Manav Rathi
51ffaa4a90 Preempt 2024-04-30 16:00:32 +05:30
Manav Rathi
2f3a2421f7 Strict 2024-04-30 15:51:22 +05:30
Manav Rathi
824e73f150 strict 2024-04-30 15:30:57 +05:30
Manav Rathi
9cc730e6a9 more posix 2024-04-30 14:56:13 +05:30
Neeraj Gupta
268c7d8a99 [mob] Use EntePopupMenuItem in gallery_app_bar 2024-04-30 14:42:21 +05:30
Neeraj Gupta
ebed315cb0 [mob] Add popup item widget 2024-04-30 14:41:54 +05:30
vishnukvmd
ae057da331 Remove redundant code 2024-04-30 14:37:15 +05:30
Manav Rathi
5681f14967 Clarify that entry names are guaranteed to be posixy 2024-04-30 14:31:06 +05:30
vishnukvmd
24fc486721 Pull out the code to download a file to gallery 2024-04-30 14:29:12 +05:30
Manav Rathi
612d8682b5 strict 2024-04-30 14:21:43 +05:30
Manav Rathi
0c312c0ea1 strict 3 2024-04-30 14:10:59 +05:30
Manav Rathi
bee2cd533c strict 2 2024-04-30 14:01:28 +05:30
Manav Rathi
72b9113d30 ensure 2024-04-30 13:59:00 +05:30
Manav Rathi
333f9c58f2 strict 1 2024-04-30 13:56:11 +05:30
Manav Rathi
14348351a9 Fix call of undefined 2024-04-30 13:44:46 +05:30
Manav Rathi
8400620488 Gone from desktop 2024-04-30 13:42:41 +05:30
Manav Rathi
4feefb9b8d Fix comment 2024-04-30 13:41:18 +05:30
Manav Rathi
b52c9f558f Remove cache size overrides
Need a bit more benchmarking or real world feedback to see if this is even something that is helping us.
2024-04-30 13:39:58 +05:30
Manav Rathi
6c4adb1127 Housekeeping 2024-04-30 13:37:17 +05:30
Manav Rathi
d6aeef85d6 Rearrange 2024-04-30 13:33:18 +05:30
Manav Rathi
f84937f8c1 Bye ElectronFile 2024-04-30 13:26:55 +05:30
Manav Rathi
f5754eb2e1 Remove uses of path 2024-04-30 13:01:29 +05:30
Manav Rathi
a148f1a7af [web] New translations (#1560)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-30 12:40:08 +05:30
Manav Rathi
2099663a93 [web] Revert "search-bar component added" (#1561)
This reverts commit 4ed194f397.

@daviddeepan I had to revert your PR unfortunately.

Two main functional issues was:

- When trying to upload files, if I would search something without
results, the dialog would just close instantly.

- As a user, I expect to be able to move out of the search bar with
escape. However, pressing escape closes the whole dialog, causing the
user's drag and dropped or selected files to be lost. This is not
specifically a problem with the code added in this commit, however this
UX will need to be fixed in some way before introducing the search bar.

One medium issue:

- The dialog box kept changing size when I searched. This is visually
jarring.

Other minor issues:

- The input element did not match the look and feel for the rest of the
search input elements in the app. Aligning the search bar to the left
and right of the album thumbnails and using the MUI Input element (as
our code uses MUI elements in other places) might've fixed it.

- There were various debugging console.logs left over, once of which
even seemed like a case we need to handle.

- The strings were not localized.

---

Again, I appreciate your effort, but I think let us leave this for now,
we can come back to it in the future after having thought more about the
UX.
2024-04-30 12:38:57 +05:30
Manav Rathi
92a066d322 Revert "search-bar component added"
This reverts commit 4ed194f397.

Two main functional issues was:

- When trying to upload files, if I would search something without results, the
  dialog would just close.

- As a user, I expect to be able to move out of the search bar with
  escape. However, pressing escape closes the whole dialog, causing the user's
  drag and dropped or selected files to be lost. This is not specifically a
  problem with the code added in this commit, however this UX will need to be
  fixed in some way before introducing the search bar.

One medium issue:

- The dialog box kept changing size when I searched. This is visually jarring.

Other minor issues:

- The input element did not match the look and feel for the rest of the search
  input elements in the app. Aligning the search bar to the left and right of
  the album thumbnails and using the MUI Input element (as our code uses MUI
  elements in other places) might've fixed it.

- There were various debugging console.logs left over, once of which even seemed
  like a case we need to handle.

- The strings were not localized.
2024-04-30 12:31:24 +05:30
Crowdin Bot
25fd5d5422 New Crowdin translations by GitHub Action 2024-04-30 06:42:25 +00:00
Manav Rathi
09bc15ddd3 [web] Upload refactoring - Zip file support (#1559) 2024-04-30 12:11:46 +05:30
Manav Rathi
e2cd1ea380 Fallback 2024-04-30 12:03:05 +05:30
Manav Rathi
ab95b4daee Inline 2024-04-30 11:51:25 +05:30
Manav Rathi
92ecbf9fa1 Add search bar within the Album selection screen #564 (#1558)
## Description
Search bar component for the ente-web added.
The component for web and mobile responsiveness is shown below.

> Thank you to the team for considering 


## Tests
Normal screen--
![Screenshot 2024-04-30
103238](https://github.com/ente-io/ente/assets/82031202/c4d8b033-2624-4985-b9ba-18e5eca29f0f)
Mobile screen--
![Screenshot 2024-04-30
111031](https://github.com/ente-io/ente/assets/82031202/4246a71b-3dd3-4de3-b4e0-f06185926faa)
2024-04-30 11:38:37 +05:30
Manav Rathi
8ee9b2be32 Use only the currently uploaded items 2024-04-30 11:36:28 +05:30
Manav Rathi
1f110929b2 connect 2024-04-30 11:08:55 +05:30
daviddeepan
4ed194f397 search-bar component added 2024-04-30 11:05:27 +05:30
Manav Rathi
68f3f1e714 more 2024-04-30 11:01:50 +05:30
Manav Rathi
a5177a3742 fore 2024-04-30 10:51:20 +05:30
Manav Rathi
761fd560a1 Separate file 2024-04-30 10:43:12 +05:30
Manav Rathi
c1a3fb4896 docs 2024-04-30 10:31:33 +05:30
Manav Rathi
5f0103682b entries 2024-04-30 10:24:41 +05:30
Manav Rathi
7ad4069b99 hobgoblins 2024-04-30 10:23:33 +05:30
Manav Rathi
afb0e1aff3 web 2024-04-30 10:20:37 +05:30
Manav Rathi
73baf5a375 Uncollide with ZipEntry from StreamZip 2024-04-30 10:08:31 +05:30
Manav Rathi
e9bf26e421 Extract 2024-04-30 09:59:02 +05:30
Manav Rathi
77fe4f9f03 wip ze ipc 2024-04-30 09:39:38 +05:30
Manav Rathi
93991c3a7f up 2024-04-30 09:25:59 +05:30
Manav Rathi
baf491c624 up 2024-04-30 09:10:27 +05:30
Manav Rathi
ff8aba816a cont 2024-04-29 21:48:31 +05:30
Manav Rathi
39737b985b teach readstream about zips 2024-04-29 21:40:10 +05:30
Manav Rathi
6bcf985390 or can it 2024-04-29 21:27:45 +05:30
Manav Rathi
eb608f4bdd ren 2024-04-29 21:12:47 +05:30
Manav Rathi
fca398f296 impl 2024-04-29 21:07:20 +05:30
Manav Rathi
38094f317a wipx 2024-04-29 20:58:58 +05:30
Manav Rathi
2c62f983a8 wipx 2024-04-29 20:42:57 +05:30
Manav Rathi
61de0c9c9c Before the changes 2024-04-29 19:55:04 +05:30
Manav Rathi
3ef727537c UploadItem 2024-04-29 19:46:50 +05:30
Manav Rathi
cca33074fb Pending uploads 2024-04-29 19:29:52 +05:30
Vishnu Mohandas
e7ca750168 Fixed typo (#1555)
## Description
Fixed a small typo
2024-04-29 17:39:13 +05:30
vishnukvmd
8ecb7710de v0.8.85 2024-04-29 17:34:00 +05:30
vishnukvmd
0f5007b8d2 Update key 2024-04-29 17:32:42 +05:30
vishnukvmd
64f2be09e6 Replace Isar with SQLite 2024-04-29 17:30:56 +05:30
Manav Rathi
c1ef0199be Partial integration 2024-04-29 17:16:43 +05:30
vishnukvmd
104a7a5f00 Fix queries 2024-04-29 17:10:53 +05:30
Neeraj Gupta
9e7c82d5b9 [mob][photos] Extract string 2024-04-29 16:59:28 +05:30
Neeraj Gupta
5c645d50f0 [mob][photos] Show custom error on ip mismatch 2024-04-29 16:56:53 +05:30
Neeraj Gupta
7c9160478d [mob][photos] Extract strings 2024-04-29 16:45:43 +05:30
vishnukvmd
bb6cd41ec8 Implement SQLite version of EmbeddingsDB 2024-04-29 16:44:07 +05:30
Manav Rathi
0fbafcc4f5 Remove unused sharedFiles app context prop
setSharedFiles was removed in 3b468cb154 (years ago).
2024-04-29 16:33:04 +05:30
Manav Rathi
2d40f530a7 more 2024-04-29 15:51:20 +05:30
Manav Rathi
864a53afa2 more 2024-04-29 15:23:46 +05:30
Manav Rathi
d94f0a0f56 wip 2024-04-29 15:08:46 +05:30
Manav Rathi
2fa1fcac65 impl 2024-04-29 14:34:05 +05:30
Manav Rathi
3d298a9cd4 separate type 2024-04-29 14:23:33 +05:30
BifrostTenmei
e258aa3524 Fixed typo 2024-04-29 10:53:20 +02:00
Neeraj Gupta
16888c8aad [mob][photos] Fix lint warning 2024-04-29 14:14:23 +05:30
Neeraj Gupta
bd07759d8e [mob][photos] Show loading indicator on device tap 2024-04-29 14:05:41 +05:30
Manav Rathi
3b6204f47d Take 2 2024-04-29 13:49:02 +05:30
Neeraj Gupta
b12e6221d4 [mob][photos] Change button type to neutral 2024-04-29 13:46:18 +05:30
Manav Rathi
2d8bcd2530 Propagate 2024-04-29 11:59:08 +05:30
Manav Rathi
63841abd30 Envision 2024-04-29 11:44:43 +05:30
Neeraj Gupta
195ad01f14 [mob][photos] Add timeout for stop casting 2024-04-29 11:26:13 +05:30
Neeraj Gupta
7411125194 [mob][photos] Add support for closing session 2024-04-29 11:20:17 +05:30
Manav Rathi
e8687caba2 wip pending 2024-04-29 11:07:57 +05:30
Neeraj Gupta
4b97f832b2 [mob][photos] Finish auto-pair integration 2024-04-29 10:23:19 +05:30
Manav Rathi
aa111b2a24 Outline the plan 2024-04-29 10:12:53 +05:30
Manav Rathi
75c058fc4c This is where it comes from 2024-04-29 09:53:54 +05:30
Manav Rathi
7ce34c9b2e [web] Allow thumbnail cache to be optional (#1552)
See:
https://github.com/ente-io/ente/discussions/1449#discussioncomment-9255346

I'm not yet sure what was the case why it was not initialized, hoping to
get some logs for the error when initializing the cache to see how we
got to this state. But meanwhile, ensure that the code works even
without the cache.
2024-04-29 09:28:41 +05:30
Manav Rathi
0f46a25a5d [web] Allow thumbnail cache to be optional
See: https://github.com/ente-io/ente/discussions/1449#discussioncomment-9255346

I'm not yet sure what was the case why it was not initialized, hoping to get
some logs for the error when initializing the cache to see how we got to this
state. But meanwhile, ensure that the code works even without the cache.
2024-04-29 09:25:55 +05:30
Vishnu Mohandas
6f52df1fda Fixed typo (#1549)
## Description
Fixed a small typo
2024-04-28 22:36:20 +05:30
BifrostTenmei
d46dbf1e73 Fixed typo 2024-04-28 18:20:58 +02:00
Manav Rathi
24b64f9522 Verify assumption 2024-04-28 20:38:50 +05:30
Manav Rathi
13f0ff3af5 wip zip selection on web itself 2024-04-28 20:31:11 +05:30
Manav Rathi
a3d06c54af Prune 2024-04-28 17:38:03 +05:30
Manav Rathi
243d019e8b Potential implementation 2024-04-28 17:24:11 +05:30
Manav Rathi
e65307517d Scaffold 2024-04-28 17:08:22 +05:30
Manav Rathi
0e9507be34 Understand better 2024-04-28 16:47:03 +05:30
Manav Rathi
0202f8f38b More debug 2024-04-28 16:32:45 +05:30
Manav Rathi
42b0b6e9bb convert to mp4 2024-04-28 16:28:57 +05:30
Manav Rathi
7179b0a603 less line 2024-04-28 15:58:15 +05:30
Manav Rathi
69193e374c Wait for i18n loaded before accessing messages 2024-04-28 15:51:45 +05:30
Vishnu Mohandas
650a078fd7 Fixed typo (#1544)
## Description
Fixed a small typo
2024-04-28 13:32:03 +05:30
Manav Rathi
c61d58f6ea [web] Upload refactoring - Part x/x (happy paths working checkpoint) (#1547)
Checkpoint
- Both upload and export work now (in both the desktop and web apps)
- Uploads after individual selection and takeout uploads still need to
be fixed when in desktop
2024-04-28 13:31:58 +05:30
Manav Rathi
c90e9b7fd1 Add a debug inspector 2024-04-28 13:26:43 +05:30
Manav Rathi
b66972e884 Handle missing stacks 2024-04-28 12:48:00 +05:30
Manav Rathi
05b9f834cf ffmpeg wasm timings 2024-04-28 12:42:34 +05:30
Manav Rathi
e7a4e3e7c2 fix logger 2024-04-28 12:27:36 +05:30
Manav Rathi
85d0a72df3 Rework the stream handling 2024-04-28 11:32:23 +05:30
Manav Rathi
9a37141d29 Not yet sure how but desktop drag drops have the full path 2024-04-27 20:50:45 +05:30
Manav Rathi
7836562ff1 less noise 2024-04-27 20:21:54 +05:30
Manav Rathi
17275ed29d Inline 2024-04-27 18:03:09 +05:30
Manav Rathi
bb2ddec163 Inline
The zip-file tests are no longer directly usable, the way we read the files has
changed, these will have to be recreated in a new form.
2024-04-27 17:45:34 +05:30
BifrostTenmei
c2b55d4389 Fixed typo 2024-04-27 13:58:27 +02:00
Manav Rathi
6671a62c78 duh 2024-04-27 17:06:33 +05:30
Manav Rathi
536bcf1091 Add a fixed size block transformer
Surprisingly, this is not a primitive. Or maybe I didn't find it.

The highWaterMark-ing didn't work, that seems more of a recommendation than an
enforcement.
2024-04-27 17:00:01 +05:30
Manav Rathi
31a70674ff Revert "Read in 4 MB blocks"
This reverts commit db30d8d81e.
2024-04-27 16:49:22 +05:30
Prateek Sunal
8a4229122e fix: use steam digits instead of hardcoding it 2024-04-27 15:45:50 +05:30
Prateek Sunal
e4ea377ee0 fix: use steam digits instead of hardcoding it everywhere 2024-04-27 15:44:58 +05:30
Prateek Sunal
e84b9da35e fix: typo and lint 2024-04-27 15:43:05 +05:30
Prateek Sunal
6cd624c90c fix: don't run tray window code on mobile 2024-04-27 15:43:05 +05:30
Prateek Sunal
1418741229 fix: treat steam host same as totp with 5 digits 2024-04-27 15:43:05 +05:30
Neeraj Gupta
4ce6fa790f [mob] Add method to close cast and keep track of active casts 2024-04-27 12:16:48 +05:30
Manav Rathi
db30d8d81e Read in 4 MB blocks
Refs:
- https://developer.mozilla.org/en-US/docs/Web/API/TransformStream/TransformStream
2024-04-26 18:48:33 +05:30
Manav Rathi
31608ab8fa Inline 2024-04-26 18:18:15 +05:30
Manav Rathi
e786bed078 Inline 2024-04-26 18:16:22 +05:30
Manav Rathi
3074bc108f Fix 2024-04-26 17:49:50 +05:30
Manav Rathi
8ba952c3b8 Remove unused 2024-04-26 17:48:10 +05:30
Manav Rathi
2724760d6c Remove NodeJS global 2024-04-26 17:47:08 +05:30
Manav Rathi
9f41539330 Enhance 2024-04-26 17:47:08 +05:30
Manav Rathi
1c59a36c73 Partially revert 699a12cc79 2024-04-26 16:11:19 +05:30
Manav Rathi
21ad409c61 Don't overwrite what net.fetch already added 2024-04-26 16:06:45 +05:30
Manav Rathi
faba29b422 console.log(Object.fromEntries(res.headers.entries())); 2024-04-26 15:58:47 +05:30
Manav Rathi
88eb0d687e Fix log 2024-04-26 13:51:48 +05:30
Manav Rathi
cc94615823 fix 2024-04-26 13:46:44 +05:30
Manav Rathi
a6ee7ac2bd [web] Upload refactoring - Part x/x (+ checkpoint) (#1540)
The main web side refactoring is done, and uploads initiated from the
web are still going through correctly. Next up will be getting back to
the desktop side, and tie the loose ends and prune the remaining
references to the `ElectronFile` that can't be IPC-ed.
2024-04-26 12:37:35 +05:30
Manav Rathi
0a70451add Tweak log 2024-04-26 12:18:11 +05:30
Manav Rathi
87d3bdc717 Scan 2024-04-26 12:14:51 +05:30
Manav Rathi
fa0d1331a8 bye getUint8ArrayView 2024-04-26 11:10:07 +05:30
Manav Rathi
4a0bf42fe3 Peck 2024-04-26 11:07:03 +05:30
Manav Rathi
390f628557 Clone 2024-04-26 10:58:56 +05:30
Manav Rathi
b93638e354 type merge 2024-04-26 10:57:50 +05:30
Manav Rathi
b66d74c652 Get to FileWithCollection 2024-04-26 10:47:06 +05:30
Manav Rathi
070d9e1a62 fop 2024-04-26 10:20:37 +05:30
Manav Rathi
879f3389d1 Inner types 2024-04-26 10:17:52 +05:30
Manav Rathi
a7f5061eb6 And the next 2024-04-26 09:45:06 +05:30
Manav Rathi
f47732ff5e Type the next stage 2024-04-26 09:33:17 +05:30
Manav Rathi
eec61b0a13 Propagate niceness 2024-04-26 09:18:26 +05:30
Manav Rathi
9fa9d6d5dc Invert 2024-04-26 08:47:31 +05:30
Manav Rathi
19fd1b5ce4 Rename 2024-04-26 08:41:13 +05:30
Manav Rathi
16a07c79f4 Rename 2024-04-26 08:34:22 +05:30
Manav Rathi
c1103b656c [web] Upload refactoring - Part x/x (#1536) 2024-04-25 21:33:03 +05:30
Manav Rathi
8067d9b9b9 Start with a new copy each time
Otherwise all the map keys refer to the same object
2024-04-25 21:22:09 +05:30
Manav Rathi
1b93e9d1c1 Do it 2024-04-25 19:35:05 +05:30
Manav Rathi
2e3b86a2e9 Agenda 2024-04-25 19:22:05 +05:30
Neeraj Gupta
6d864a71a7 [web][cast] Close on sender disconnect (#1534)
## Description

## Tests
2024-04-25 18:17:19 +05:30
Neeraj Gupta
1dc8ac6023 [web][cast] Close on sender disconnect 2024-04-25 18:14:02 +05:30
Neeraj Gupta
dddbb959b5 [mob][photos] Refactor 2024-04-25 17:45:03 +05:30
Manav Rathi
38fe3f5300 Types 2024-04-25 16:54:49 +05:30
Manav Rathi
e90657ce5c Interim type 2024-04-25 16:35:45 +05:30
Neeraj Gupta
483cfd1f39 [mob][photos] Lint suggestions 2024-04-25 16:28:30 +05:30
Neeraj Gupta
864f5c1fd4 [mob][photos] Extract strings 2024-04-25 16:25:04 +05:30
Manav Rathi
c2c5267e9b Tinker 2024-04-25 16:19:47 +05:30
Manav Rathi
73292a5405 aic 2024-04-25 15:48:54 +05:30
Manav Rathi
ca0afc2f3a File sizes 2024-04-25 15:47:34 +05:30
Manav Rathi
ac9a272c70 Cache name 2024-04-25 15:33:44 +05:30
Manav Rathi
4ae4e42260 log.warn 2024-04-25 15:19:46 +05:30
Neeraj Gupta
9894f88654 [server] Cast changes (#1532)
## Description

- Add IP check before completing cast pair
- Rate limit register device/TV API
- Clean up older sessions after 7 days.

## Tests
2024-04-25 15:05:36 +05:30
Neeraj Gupta
32b5e8210e [web][cast] Remove debug logs and castDebugger (#1533)
## Description

## Tests
2024-04-25 15:03:19 +05:30
Neeraj Gupta
a243db032c [web][cast] Remove help qrcode 2024-04-25 15:00:25 +05:30
Neeraj Gupta
3f62357016 [web][cast] Remove debug logs and castDebugger 2024-04-25 14:59:02 +05:30
Manav Rathi
7086130129 Finalize uploader 2024-04-25 14:54:16 +05:30
Neeraj Gupta
94d0378e18 [server] Clean up old cast sessions 2024-04-25 14:43:25 +05:30
Manav Rathi
72b1df0b75 Rearrange 2024-04-25 14:41:48 +05:30
Manav Rathi
3ac81df561 Vids 2024-04-25 14:38:08 +05:30
Manav Rathi
c8542211b4 Images 2024-04-25 14:21:06 +05:30
Manav Rathi
eb4d83749f Hash 2024-04-25 14:08:03 +05:30
Neeraj Gupta
4694bf6b7e [server] Ratelimit add device code API for cast 2024-04-25 14:07:10 +05:30
Neeraj Gupta
8038583d5a [server] Restrict casting to same IP 2024-04-25 14:03:25 +05:30
Manav Rathi
0a09a915e9 Thread lastModifiedMs 2024-04-25 13:55:34 +05:30
Manav Rathi
6aa096d3d3 More 2024-04-25 13:46:10 +05:30
Manav Rathi
3c90a3438b Streamline 2024-04-25 13:21:38 +05:30
Neeraj Gupta
badd9263f4 [server] Add ip column 2024-04-25 13:14:37 +05:30
Neeraj Gupta
ef0873082a Fixed typo 2024-04-25 13:02:54 +05:30
Manav Rathi
c76d12f4a7 Document based on current understanding 2024-04-25 12:52:42 +05:30
Manav Rathi
c13812c31a Move to library 2024-04-25 12:46:21 +05:30
Neeraj Gupta
f777bdba1b [mob][photos] Extract strings 2024-04-25 12:44:46 +05:30
Manav Rathi
891ba97e0a Rearrange 2024-04-25 12:30:49 +05:30
Manav Rathi
0675b04f84 Inline 2024-04-25 12:21:29 +05:30
Manav Rathi
0603f8ffb9 Extract 2024-04-25 12:15:09 +05:30
Manav Rathi
79d26173a4 Inline 2024-04-25 12:07:14 +05:30
Neeraj Gupta
36dbda895c [mob][photos] Send pair req after getting receiver status 2024-04-25 11:50:49 +05:30
Neeraj Gupta
e903fbf9bc [mob][photos] Continue showing pair dialog in case of error 2024-04-25 11:50:02 +05:30
Manav Rathi
f5ef478a90 Propogate last modified time
It should've also been possible to use the regular Last-Modified HTTP header,
however that'd have caused a potential loss of precsion if I correctly
understand the string format that we'll need to use.

Refs:
- https://developer.mozilla.org/en-US/docs/Web/API/File/lastModified
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString
- https://nodejs.org/api/fs.html#class-fsstats
2024-04-25 11:46:04 +05:30
Manav Rathi
e8e53b2ca5 Prepare for inlining 2024-04-25 11:15:42 +05:30
Manav Rathi
420f52f78f Live photos too 2024-04-25 10:31:30 +05:30
Manav Rathi
476d8de72a Wrap 2024-04-25 10:16:16 +05:30
Manav Rathi
5324d805c6 Rejig type 2024-04-25 09:56:25 +05:30
Manav Rathi
2e7b12ad29 Agenda and rearrange 2024-04-25 09:21:18 +05:30
Manav Rathi
7f3d9690c0 exactType => extension 2024-04-24 22:02:46 +05:30
Manav Rathi
e03a0a09d4 lowercase extension 2024-04-24 21:28:30 +05:30
Manav Rathi
34d44f599d Cleanup 2024-04-24 21:12:56 +05:30
Manav Rathi
852fc7830f Document 2024-04-24 21:05:09 +05:30
Manav Rathi
5c07751c8c Rename 2024-04-24 20:59:30 +05:30
Manav Rathi
1106393045 Inline 2024-04-24 20:54:56 +05:30
Manav Rathi
d05ca58f57 Move to correct package 2024-04-24 20:46:36 +05:30
Manav Rathi
c684b5fd69 [web] Upload refactoring - Part x/x (#1531) 2024-04-24 18:51:43 +05:30
Manav Rathi
1447d4976f lint-fix and beautifuller 2024-04-24 18:48:44 +05:30
Manav Rathi
af79db90d0 Doesn't work for us yet
Current version throws
    Module build failed: UnhandledSchemeError: Reading from "node:buffer" is not handled by plugins (Unhandled scheme).
    Webpack supports "data:" and "file:" URIs by default.
    You may need an additional plugin to handle "node:" URIs.

See: https://github.com/sindresorhus/file-type/issues/502

There are ways around by using polyfills, e.g.
- https://stackoverflow.com/questions/76500464/issues-while-using-gradio-client-in-next-js/76522223#76522223
- https://github.com/vercel/next.js/discussions/33982

but since no functional changes in the detection that impact us have been made,
stay back at the old version for now.
2024-04-24 18:44:09 +05:30
Manav Rathi
38e18f29bd Update file-type dependency and move it to its correct package.json
Refs:
- https://github.com/sindresorhus/file-type/releases/tag/v17.0.0

Went through the release notes since v16 to check that none of the MIME types we
care about have changed.
2024-04-24 18:27:30 +05:30
Manav Rathi
f3c798148c type-detect 2024-04-24 18:06:52 +05:30
Manav Rathi
319fe0fb71 Rename 2024-04-24 16:21:58 +05:30
Manav Rathi
2a8417af1c Rename 2024-04-24 16:18:36 +05:30
Manav Rathi
81c729a405 Inline 2024-04-24 16:18:01 +05:30
Manav Rathi
6f6ade1901 Inline 2024-04-24 16:14:10 +05:30
Manav Rathi
2b82c61853 Inline 2024-04-24 16:08:57 +05:30
Manav Rathi
e217635a1b Remove linkage 2024-04-24 16:07:28 +05:30
Manav Rathi
105157c164 Shout less 2024-04-24 15:55:55 +05:30
Neeraj Gupta
a935f2e2cf [web][cast] Disable cast stop (#1529)
## Description

## Tests
2024-04-24 15:46:19 +05:30
Neeraj Gupta
a5dfc97035 [web][cast] disable cast stop 2024-04-24 15:41:18 +05:30
Neeraj Gupta
aced4bb5cf [mob][photos] Update cast selection dialog 2024-04-24 15:22:24 +05:30
Manav Rathi
c8fc007898 [web] Fix build (#1528) 2024-04-24 15:19:43 +05:30
Manav Rathi
e5545e9c80 Make tsc happy to allow builds to complete 2024-04-24 15:16:46 +05:30
Manav Rathi
e0975130b6 More context from Discord 2024-04-24 15:10:15 +05:30
Manav Rathi
cf576c07f7 [desktop] [web] Upload refactoring (#1527) 2024-04-24 14:59:20 +05:30
Manav Rathi
80802d44e3 Better log 2024-04-24 14:55:41 +05:30
Manav Rathi
f32a396b36 Fix video thumbnailing (the .jpeg extension is required) 2024-04-24 14:37:14 +05:30
Manav Rathi
5f146aa597 Fix 2024-04-24 13:45:56 +05:30
Manav Rathi
7dba4c0af4 Fix 2024-04-24 13:41:35 +05:30
Manav Rathi
a08df9a839 Clarification after asking in Discord 2024-04-24 13:36:10 +05:30
Neeraj Gupta
729e2adfd1 [mob] Use separate widget for auto-cast 2024-04-24 13:21:12 +05:30
Manav Rathi
9de8a3d40a Fixes 2024-04-24 13:19:37 +05:30
Manav Rathi
e919dfd09d Scope 2024-04-24 13:08:54 +05:30
Manav Rathi
c486919547 Reuse 2024-04-24 13:06:11 +05:30
Manav Rathi
0566d2ee93 Spruce 2024-04-24 13:01:53 +05:30
Manav Rathi
51a1c77720 Get to a mergeable state 2024-04-24 12:50:55 +05:30
Manav Rathi
d96f710d6d Prune 2024-04-24 12:35:27 +05:30
Manav Rathi
239688b7d8 Remove potentially dangerous wip forks 2024-04-24 12:27:33 +05:30
Manav Rathi
06dbf5fb06 Phasal types 2024-04-24 12:21:52 +05:30
Manav Rathi
58b1c4b489 Doodle 2024-04-24 11:49:58 +05:30
Manav Rathi
cb0b549027 Rename 2024-04-24 11:42:35 +05:30
Manav Rathi
00c0780de1 Reorder 2024-04-24 11:40:35 +05:30
Neeraj Gupta
bed14d8ee9 [mob][photos] Use cast Icon in appbar 2024-04-24 11:38:22 +05:30
Manav Rathi
feb59b00d2 Move 2024-04-24 11:36:34 +05:30
Manav Rathi
e490f194e7 Line 2024-04-24 11:31:16 +05:30
Manav Rathi
58d2670171 Prune 2024-04-24 11:29:54 +05:30
Manav Rathi
3b0433c4ab Reorder 2024-04-24 11:17:41 +05:30
Manav Rathi
bded3c6706 Prune 2024-04-24 11:14:34 +05:30
Vishnu Mohandas
0e8166eadd Favorite button (#1526)
## Description
Wanted to increase the tap area for the favorite button. Ended up fixing
some other iOS specific issues that were getting silently ignored
(related to home widget and update service).

## Tests
- [x] Tested in Simulator
2024-04-24 11:09:49 +05:30
Manav Rathi
5b928883a6 Tinker 2024-04-24 11:03:49 +05:30
vishnukvmd
b5cf67ca98 Update like button widget 2024-04-24 11:00:23 +05:30
vishnukvmd
0b212bf7a6 Move padding within to increase tap-able area 2024-04-24 11:00:18 +05:30
Manav Rathi
27185c333c Prune 2024-04-24 10:58:04 +05:30
Neeraj Gupta
1251a014b0 [mob][cast] Show choice to auto and manual pair 2024-04-24 10:57:28 +05:30
vishnukvmd
50b6d95ec2 Fix update checker for iOS 2024-04-24 10:54:37 +05:30
vishnukvmd
88e34683ee Don't check for widgets on iOS 2024-04-24 10:54:21 +05:30
vishnukvmd
21baf023cc Fix typo 2024-04-24 10:39:50 +05:30
Manav Rathi
88c2a52edf Spruce 2024-04-24 10:39:47 +05:30
Manav Rathi
2bee444078 Tinker 2024-04-24 10:33:05 +05:30
Manav Rathi
9103dadc6f Tinker 2024-04-24 10:13:03 +05:30
Manav Rathi
48bace50df Extract 2024-04-24 10:04:29 +05:30
Manav Rathi
56713325ed Spruce 2024-04-24 09:42:18 +05:30
Manav Rathi
0d0397124f Hoist state 2024-04-24 09:22:51 +05:30
Manav Rathi
0da46f3298 Shuffle 2024-04-23 21:07:40 +05:30
Manav Rathi
5befc53d8c Streamline 2024-04-23 20:54:57 +05:30
Manav Rathi
e1a3475faa Shorten chunk 2024-04-23 20:50:15 +05:30
Manav Rathi
86a102c47d Streamlined 2024-04-23 20:39:16 +05:30
Manav Rathi
c401b9a938 Log error 2024-04-23 20:33:06 +05:30
Manav Rathi
3c9ef294b0 Trim 2024-04-23 20:21:04 +05:30
Manav Rathi
2eef50a849 More 2024-04-23 20:20:14 +05:30
Manav Rathi
7940ef53b5 Route 2024-04-23 20:15:35 +05:30
Manav Rathi
c948b29729 Inline 2024-04-23 20:10:19 +05:30
Manav Rathi
6b55f3b2f1 Reduce use of uiservice 2024-04-23 19:50:49 +05:30
Manav Rathi
0ca4b06872 Trim logging 2024-04-23 19:46:21 +05:30
Manav Rathi
e81d3a0c3c Remove tracer 2024-04-23 18:56:15 +05:30
Manav Rathi
f96adddf54 Prune 2024-04-23 18:54:34 +05:30
Manav Rathi
190dc586a9 Prune 2024-04-23 18:47:48 +05:30
Manav Rathi
00c9d78ec9 Inline 2024-04-23 18:37:47 +05:30
Manav Rathi
2e222d9409 Remove derived state 2024-04-23 16:15:57 +05:30
Manav Rathi
c5ab1811fb Inline and skip 2024-04-23 16:08:19 +05:30
Neeraj Gupta
bd225ced04 [mob][cast] Return name and castDevice as record 2024-04-23 16:08:16 +05:30
Manav Rathi
5e5d66c2a2 Inline 2024-04-23 16:04:19 +05:30
Manav Rathi
c7e0986b12 Inline and reorder 2024-04-23 16:01:22 +05:30
Neeraj Gupta
89646ac469 [mob][cast] Refactor + add multiple cast plugin to gracefully handle fdroid 2024-04-23 15:57:17 +05:30
Manav Rathi
14427b6011 Remove unused 2024-04-23 15:57:09 +05:30
Manav Rathi
b80f567e74 Rearrange 2024-04-23 15:52:20 +05:30
Manav Rathi
3a93a7a956 Prune 2024-04-23 15:48:52 +05:30
Manav Rathi
91afe68111 Cluster 2024-04-23 15:43:59 +05:30
Manav Rathi
be2d8c45d0 ReadLivePhoto 2024-04-23 15:26:56 +05:30
Manav Rathi
7f9563ab9a Possible approach 2024-04-23 15:03:29 +05:30
Manav Rathi
308d8179b0 Rework 2024-04-23 14:52:16 +05:30
Neeraj Gupta
8fd330c304 Merge branch 'main' into cast 2024-04-23 14:35:37 +05:30
Manav Rathi
6ff41db939 Try another factoring 2024-04-23 14:16:41 +05:30
Neeraj Gupta
c55272c87e [mobile] Add feature flag plugin & use ente server to fetch flags. (#1524)
## Description

## Tests
2024-04-23 13:57:57 +05:30
Manav Rathi
6ca3eb55af Try another factoring 2024-04-23 13:49:09 +05:30
Neeraj Gupta
73f35c1a0c [mobile] Use passkey flag for showing passkey option 2024-04-23 13:38:55 +05:30
Neeraj Gupta
8937a896d1 [mob][photos] Improve log 2024-04-23 13:37:34 +05:30
Manav Rathi
abbfbf695f Split earlier 2024-04-23 13:13:25 +05:30
Manav Rathi
66c64d0c58 Let the caller decide 2024-04-23 13:07:27 +05:30
Manav Rathi
a286b11adb Checkpoint 2024-04-23 12:55:27 +05:30
Manav Rathi
e6e235490a Content-Length 2024-04-23 12:37:42 +05:30
Manav Rathi
cb0d25030d API 1 2024-04-23 12:10:46 +05:30
Manav Rathi
1d4efd738c Stream reader 2024-04-23 12:04:10 +05:30
Neeraj Gupta
9c87a64f92 [server] Add API to get feature flags + allow admin edit (#1518)
## Description

## Tests
2024-04-23 11:57:21 +05:30
Neeraj Gupta
cc49fdf126 [mobile] Remove old feature flag service 2024-04-23 11:55:16 +05:30
Neeraj Gupta
83075ea367 [mobile] Switch to feature flag plugin 2024-04-23 11:54:24 +05:30
Neeraj Gupta
74cdfdcb9e [mobile] Minor fixes in feature flag plugin 2024-04-23 11:40:51 +05:30
Manav Rathi
76be5e37d5 cp 2024-04-23 11:33:34 +05:30
Manav Rathi
1f5fbcae76 Checkpoint 2024-04-23 11:20:22 +05:30
Manav Rathi
4a12774a3c Impl 1 2024-04-23 11:07:10 +05:30
Manav Rathi
cd22400136 Agenda 2024-04-23 10:42:07 +05:30
Neeraj Gupta
40503d6ef2 [mobile]Whitelist domain ente.io as internal user 2024-04-23 10:32:53 +05:30
Manav Rathi
1f0c80cabc Refactor 1 2024-04-23 10:21:39 +05:30
Neeraj Gupta
41b151ce7b [plugin] Add ente_feature_flag plugin 2024-04-23 10:16:19 +05:30
Manav Rathi
7a0abf2268 Prepare a split 2024-04-23 09:52:13 +05:30
Vishnu Mohandas
16f4f38aa7 [auth] New translations (#1521)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-04-23 07:52:47 +05:30
Vishnu Mohandas
7cd1d5a951 [mobile] New translations (#1520)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-04-23 07:52:34 +05:30
Vishnu Mohandas
37a9baa9cf [web] New translations (#1519)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-23 07:52:15 +05:30
Crowdin Bot
d9538c1a12 New Crowdin translations by GitHub Action 2024-04-23 02:04:57 +00:00
Crowdin Bot
96e5eae9dd New Crowdin translations by GitHub Action 2024-04-23 01:57:07 +00:00
Crowdin Bot
7e2ba7e5da New Crowdin translations by GitHub Action 2024-04-23 01:38:47 +00:00
Neeraj Gupta
5afc2de7bc [server] Add admin endpoint for updating feature flag 2024-04-22 17:43:14 +05:30
Neeraj Gupta
648806baa7 [server] Add endpoint to get user feature flags 2024-04-22 17:30:54 +05:30
Manav Rathi
3ab14d5949 Remove unnecessary flexibility 2024-04-22 17:20:21 +05:30
Manav Rathi
dfa50e8ed1 thumb 2024-04-22 17:14:21 +05:30
Neeraj Gupta
3fbf6674fe [server] Add API to return feature flags value 2024-04-22 16:57:00 +05:30
Manav Rathi
05cd0bcd2c input filename is not needed
tested with sips
2024-04-22 16:49:06 +05:30
Neeraj Gupta
5b4d66933e [server] Add req validation for remoteStore insertOrUpdate 2024-04-22 16:44:12 +05:30
Manav Rathi
4461775283 Desktop side 2024-04-22 16:32:04 +05:30
Manav Rathi
4750caf156 Blob 2024-04-22 16:12:03 +05:30
Manav Rathi
bb094743f3 Rework 2 2024-04-22 15:44:58 +05:30
Manav Rathi
1c9c6d849a Rework 1 2024-04-22 15:30:48 +05:30
Neeraj Gupta
7e5b63cdc0 [mob] Discard upload to deleted or others collection (#1516)
## Description
On server, certain uploads are getting rejected because the upload is
being made on a collection that's not owned by the user.
Still looking for the root cause where it's happening, this check during
upload ensures that the client is not repeatitively trying to upload the
file.

## Tests
2024-04-22 15:28:35 +05:30
Manav Rathi
9038ea7959 Dead-endish 2024-04-22 14:57:38 +05:30
Manav Rathi
875b92ea91 New interface 2024-04-22 14:39:48 +05:30
Manav Rathi
afca600a69 New abstraction 2024-04-22 14:04:49 +05:30
Manav Rathi
2a647e3ddb Dedup type 2024-04-22 12:00:41 +05:30
Manav Rathi
b1e9f863d7 Same 2024-04-22 11:49:59 +05:30
Manav Rathi
37f1a7b630 Mirror the desktop impl 2024-04-22 11:25:14 +05:30
Neeraj Gupta
206ab1114e [mob]Discard upload to deleted or others collection 2024-04-22 11:23:04 +05:30
Neeraj Gupta
da1d778eeb [mob][photos] Add hook to connect to cast device 2024-04-22 10:47:49 +05:30
Manav Rathi
24d3156a5b [web][desktop] Upload refactoring to get desktop watch to work again - Part 3/x (#1515) 2024-04-22 10:44:42 +05:30
Manav Rathi
ed6a72eb3c Fix npe on main
TypeError: Cannot read properties of undefined (reading 'put')
        at DownloadManagerImpl.downloadFile (webpack-internal:///./src/services/download/index.ts:176:84)
2024-04-22 10:38:06 +05:30
Manav Rathi
d0956642b7 Get it back to a mergable state 2024-04-22 10:28:12 +05:30
Neeraj Gupta
ba2ca95c5b [server] Fix another validation issue (#1514)
## Description

## Tests
Tested file create and file update locally
2024-04-22 10:18:52 +05:30
Neeraj Gupta
59ce8ea9bb [server] Fix another validation issue 2024-04-22 10:18:18 +05:30
Neeraj Gupta
9485d4d2d0 [server] Another fix in file update req validation (#1513)
## Description
Even collectionID is missing.

## Tests
2024-04-22 10:03:46 +05:30
Neeraj Gupta
b43e077a24 [server] Another fix in file update req validation 2024-04-22 09:53:48 +05:30
Neeraj Gupta
8d5a0317ec [server] Fix validation for fileUpdate (#1512)
## Description

## Tests
2024-04-22 09:42:26 +05:30
Neeraj Gupta
74360f3c84 [server] Fix validation for fileUpdate 2024-04-22 09:41:14 +05:30
Neeraj Gupta
9cb030124b [web][cast] Minor fixes (#1507)
## Description

## Tests
2024-04-21 18:04:35 +05:30
Neeraj Gupta
8e5d5c4e41 [web][cast] Minor fixes 2024-04-21 17:59:57 +05:30
Neeraj Gupta
fdc7cf6ad8 [web] Fix cast build 2024-04-21 17:56:50 +05:30
Neeraj Gupta
19b71e2f2a [cast] Load debug script (#1505)
## Description

## Tests
2024-04-21 14:40:04 +05:30
Neeraj Gupta
a7a44140e5 [cast] Load debug script 2024-04-21 14:35:56 +05:30
Neeraj Gupta
53b98b09c1 [web] Cast: add additional logs (#1503)
## Description

## Tests
2024-04-21 14:18:57 +05:30
Neeraj Gupta
026647f192 cast: add additional logs 2024-04-21 14:14:36 +05:30
Neeraj Gupta
52a0aab7e9 [cast] Add additional console logs for debuging remote device (#1501)
## Description

## Tests
2024-04-21 12:11:17 +05:30
Neeraj Gupta
3486ef090c [cast] Add additional console logs for debuging remote device 2024-04-21 11:58:57 +05:30
Manav Rathi
31a19cb738 Desktop side 2024-04-21 11:29:58 +05:30
Manav Rathi
cfced851c6 Expectation 2024-04-21 10:26:17 +05:30
Manav Rathi
36ccd3b202 Remove log interceptors 2024-04-21 09:48:34 +05:30
Manav Rathi
e39194d993 How it was 2024-04-21 09:41:22 +05:30
Manav Rathi
1026974e23 Nomenclature 2024-04-21 09:14:47 +05:30
Manav Rathi
381bffabbf Inline 2024-04-21 09:11:39 +05:30
Manav Rathi
7ca6b31a4c Do not synchronously create heic workers on app start 2024-04-21 09:00:26 +05:30
Manav Rathi
0fe6fa72b6 Rename 2024-04-21 08:51:51 +05:30
Manav Rathi
462caec0ca Rename 2024-04-21 08:45:18 +05:30
Manav Rathi
d3390f13af Inline 2024-04-21 08:22:30 +05:30
Manav Rathi
2ebcde1cdf Rename 2024-04-21 08:21:40 +05:30
Manav Rathi
08e71a1718 Import what we need 2024-04-20 21:58:09 +05:30
Manav Rathi
feb8814ac1 Prune 2024-04-20 21:54:43 +05:30
Manav Rathi
30fe91efb9 Inline 2024-04-20 21:49:22 +05:30
Manav Rathi
2b945dc169 Fix typo 2024-04-20 21:25:03 +05:30
Manav Rathi
0dfaa15923 Tinker 2024-04-20 21:09:35 +05:30
Manav Rathi
d62f6077ce Inline 2024-04-20 21:03:05 +05:30
Manav Rathi
71cf2c30d7 Reuse 2024-04-20 20:54:40 +05:30
Manav Rathi
9285954e01 Use same constants 2024-04-20 20:50:44 +05:30
Manav Rathi
09a0872af7 Inline 2024-04-20 20:48:12 +05:30
Manav Rathi
dd2c58d7a2 Unabstract 2024-04-20 20:41:38 +05:30
Manav Rathi
c33b231885 Trace paths 2024-04-20 20:32:53 +05:30
Manav Rathi
8d6787b823 Inline 2024-04-20 20:06:06 +05:30
Manav Rathi
5992efd58a Document 2024-04-20 19:54:26 +05:30
Manav Rathi
9c63bccddb Mirrorize 2024-04-20 19:49:21 +05:30
Manav Rathi
f820be9652 Clean up entry point 2024-04-20 18:11:21 +05:30
Manav Rathi
a9d8b083f6 Shorten 2024-04-20 17:59:55 +05:30
Manav Rathi
c8f04f35ba Reduce concepts 2024-04-20 17:59:07 +05:30
Manav Rathi
19103f4961 To point of use 2024-04-20 17:47:00 +05:30
Manav Rathi
5710846125 Inline 2024-04-20 17:44:58 +05:30
Manav Rathi
e3586811dc Scope 2024-04-20 17:38:15 +05:30
Manav Rathi
e1faa965b8 Remove layer of abstraction 2024-04-20 17:33:54 +05:30
Neeraj Gupta
4a7d859539 [mob][photos] Restrict multipart upload to debug builds (#1500)
## Description

## Tests
2024-04-20 17:32:05 +05:30
Neeraj Gupta
733fe6b3d8 [mob][photos] Restrict multipart upload to debug builds 2024-04-20 17:31:42 +05:30
Manav Rathi
86929c5d2d gen => make 2024-04-20 17:16:55 +05:30
Manav Rathi
f1e530dfa1 Reorder to match 2024-04-20 17:15:41 +05:30
Manav Rathi
eed95811c5 JPEG + temp wip 2024-04-20 17:12:25 +05:30
Neeraj Gupta
92e253ff1b [mob][photos] Increase loading iconSize + reduce padding (#1499)
## Description


https://github.com/ente-io/ente/assets/254676/94f15baf-d350-4738-879e-ad163a1e4b45


## Tests
2024-04-20 17:10:32 +05:30
Neeraj Gupta
1cdca5c9ff [mob][photos] Increase loading iconSize + reduce padding 2024-04-20 17:07:53 +05:30
Manav Rathi
9bddd741a5 Better log 2024-04-20 16:35:52 +05:30
Manav Rathi
30464c87f4 Reuse util 2024-04-20 16:33:37 +05:30
Manav Rathi
4985ba8aac Comment 2024-04-20 16:22:54 +05:30
Neeraj Gupta
6f1714e9a2 [mob][photos] Bump version : 0.8.84+604 (#1498)
## Description

## Tests
2024-04-20 15:47:22 +05:30
Neeraj Gupta
b9c82fb427 [mob][photos] Bump version 0.8.84+604 2024-04-20 15:45:04 +05:30
Neeraj Gupta
04a381fa51 [mob][photos] Use 100 as batchSize for copy 2024-04-20 15:44:43 +05:30
Neeraj Gupta
3e5648dae4 [mob][photos][internal] Enable fav + add to album action for shared files (#1484)
## Description


https://github.com/ente-io/ente/assets/254676/7ec2f82a-d0d1-4dbe-8836-87d1ffd793f6


## Tests

- [x] Hide Shared Item on Home Page If user has copied it.
- [x] Keep the fav state on the UI
- [x] Client side hash based dedupe works for copied items. Items are
linked to existing item instead of uploading duplicate entries
2024-04-20 15:33:54 +05:30
Neeraj Gupta
5e2c6f84f1 [mob][photos] Use internal flag check 2024-04-20 15:28:22 +05:30
Neeraj Gupta
b7d002feef [server] Support for copying files owned by others (#1496)
## Description

## Tests
Tested as part of https://github.com/ente-io/ente/pull/1484
- Verified that the client was able to download and decrypt the metadata
- Verified that storage was going up.
2024-04-20 15:27:11 +05:30
ashilkn
93ba4e011a Merge branch 'main' into f-droid 2024-04-20 15:23:14 +05:30
Neeraj Gupta
72ddbbdf79 [mob][photos] Add assert to ensure copy is enabled for internal users 2024-04-20 15:21:26 +05:30
Vishnu Mohandas
076335ce5c [mob][photos] Fix build failing in release workflow (#1497)
## Description

Build was failing with this error
```
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':connectivity_plus:compileReleaseJavaWithJavac'.
> error: invalid source release: 17
```

## Tests

- [x] Ran workflow to verify it's completing.
2024-04-20 15:18:31 +05:30
ashilkn
b10e212e0f [mob] use flutter v3.19.3 2024-04-20 15:11:09 +05:30
ashilkn
ae2e740752 [mob] fix build error in github workflow for photos 2024-04-20 15:01:07 +05:30
Neeraj Gupta
d0621eea3e [server] Limit copying max 100 files in single req 2024-04-20 12:54:27 +05:30
Neeraj Gupta
cbdd116cea [server] Copy thumb and file in parallel 2024-04-20 12:49:28 +05:30
Neeraj Gupta
91620965b0 [server] Minor refactor 2024-04-20 12:37:35 +05:30
Neeraj Gupta
5a5e3d28cb [server] Copy files in parallel 2024-04-20 12:36:18 +05:30
Manav Rathi
52d830cd06 modulestate 2024-04-20 12:30:43 +05:30
Neeraj Gupta
bf738d9585 [server] Lint fix 2024-04-20 12:23:00 +05:30
Neeraj Gupta
ca7b03e945 [server] Fix incorrect pointer assignment in collection file map 2024-04-20 12:21:44 +05:30
Manav Rathi
14e4205feb Restructure 2024-04-20 12:16:58 +05:30
Manav Rathi
6337ffc203 Inline 2024-04-20 11:50:15 +05:30
Vishnu Mohandas
2160b4d7f9 Downgrade to Flutter v3.19.3 (#1495) 2024-04-20 11:33:31 +05:30
Ashil
a6e3d6de97 [mob][photos] Bump up to v0.8.83 (#1494) 2024-04-20 11:32:31 +05:30
Neeraj Gupta
c165b9ee9c [mob][photos] Lint 2024-04-20 11:31:09 +05:30
Neeraj Gupta
e2aae744be [mob][photos] Fix ownerID for copied items 2024-04-20 11:30:40 +05:30
vishnukvmd
f1e723a672 Downgrade to Flutter v3.19.3 2024-04-20 11:30:36 +05:30
Neeraj Gupta
9a34fdce05 [mob][photos] Enable add to option for shared photos for internal users 2024-04-20 11:30:20 +05:30
Vishnu Mohandas
200cab16c3 Setup GH action to auto-deploy Photos to the internal track (#1493) 2024-04-20 11:06:59 +05:30
vishnukvmd
a704251bdd Switch to manual workflow 2024-04-20 11:06:34 +05:30
vishnukvmd
38aca8a947 Setup GH action to auto-deploy Photos to the internal track 2024-04-20 10:59:49 +05:30
Manav Rathi
13542c1511 Document
Cite: https://github.com/electron/electron/issues/25640
2024-04-20 10:39:18 +05:30
Manav Rathi
7c1207fb9a Show dev tools option only in dev builds 2024-04-20 10:37:13 +05:30
Manav Rathi
d0b1ff5520 In band signalling 2024-04-20 10:17:51 +05:30
Manav Rathi
093b3a67cb Enum instead of error 2024-04-20 09:12:48 +05:30
Manav Rathi
926bc33c79 Use 2024-04-20 09:02:36 +05:30
Manav Rathi
46a53d5fdf Possibly 2024-04-20 08:47:02 +05:30
Manav Rathi
a8ae86cb43 genr 2024-04-20 08:11:14 +05:30
Manav Rathi
196090152c Remove an error that is never thrown 2024-04-19 21:39:44 +05:30
Manav Rathi
80a6fe16e7 timeouts 2024-04-19 21:34:35 +05:30
Manav Rathi
9cfdc4cae9 Look for next advancement points 2024-04-19 20:02:25 +05:30
Manav Rathi
766dd2d85d um finished 2024-04-19 19:50:27 +05:30
Manav Rathi
c034c5cc70 flatmap 2024-04-19 19:48:28 +05:30
Manav Rathi
bbe6dde4cb Inline 2024-04-19 19:40:12 +05:30
Manav Rathi
6fe8a72299 Spruce 2024-04-19 19:38:11 +05:30
Manav Rathi
a079035a43 Back in the watcher 2024-04-19 19:32:48 +05:30
Neeraj Gupta
fbf8b61891 [server] Fix query 2024-04-19 19:20:21 +05:30
Manav Rathi
afaf89ad1a Except the size 2024-04-19 19:00:25 +05:30
Ashil
8113b70441 [mob][photos] Remove code related to sqlite3 (#1490) 2024-04-19 18:11:52 +05:30
Ashil
c4c513a1d7 [mob][photos] Use sqlite_async instead of sqlite3 (#1489)
## Description

Using both `sqlite_async` and `sqlite3` for querying at the same time
was throwing this error:
`error: SqliteException(5): while executing, database is locked,
database is locked (code 5)`

So, have used `sqlite_async` everywhere.

## Tests

- [x] Tested all changes
2024-04-19 16:56:40 +05:30
Neeraj Gupta
fc5705dd7b [mob][photos] Add additional check for fileType 2024-04-19 16:46:42 +05:30
Neeraj Gupta
01822b760d [mob][photos] Dedupe using hash before copying 2024-04-19 16:45:29 +05:30
Manav Rathi
42c1bec044 JSON 2 2024-04-19 16:41:54 +05:30
Manav Rathi
505d376dc9 issa supertype 2024-04-19 16:27:46 +05:30
Manav Rathi
5dd21b2b38 Parallel 2024-04-19 16:25:58 +05:30
Manav Rathi
32ac31fd44 Start using it 2024-04-19 16:20:20 +05:30
Manav Rathi
d1069dcfbb Dig a gully on the side 2024-04-19 16:06:33 +05:30
Manav Rathi
bf3d04fc12 Deeper 2024-04-19 16:01:05 +05:30
Neeraj Gupta
02890a100b [mob][photos] Lint fix 2024-04-19 15:56:49 +05:30
Neeraj Gupta
f55fd36579 [mob][photos] Fix: Pass copy of EnteFile to avoid modification in original 2024-04-19 15:54:49 +05:30
Manav Rathi
de783b6158 Seep in paths 2024-04-19 15:54:42 +05:30
Neeraj Gupta
08040d9154 [mob][photos] Use loading indicator instead of blocking progress 2024-04-19 15:52:41 +05:30
Manav Rathi
814803edb4 [desktop] Watch related refactoring - Part 2/x (#1488)
Inline, mostly, in preparation for a subsequent refactoring.
2024-04-19 15:05:01 +05:30
Manav Rathi
41aeb63465 Fix lint issues
unrelated to this PR, come from https://github.com/ente-io/ente/pull/1479
2024-04-19 15:02:09 +05:30
Neeraj Gupta
564ca77a8b Merge remote-tracking branch 'origin/main' into mobile_save_a_copy 2024-04-19 14:57:19 +05:30
Neeraj Gupta
136f53b581 [mob][photos] Fix: Remove fav action on shared photos 2024-04-19 14:53:41 +05:30
Manav Rathi
82c365b2db Inline 2024-04-19 14:49:24 +05:30
Manav Rathi
5f87dce547 Inline 2024-04-19 14:47:44 +05:30
Manav Rathi
643d028ffc Inline 2024-04-19 14:44:29 +05:30
Manav Rathi
7ed6e729f5 Inline 2024-04-19 14:37:35 +05:30
Manav Rathi
2b35d586c1 Inline 2024-04-19 14:33:54 +05:30
Manav Rathi
292084c00d Inline 2024-04-19 14:32:09 +05:30
Ashil
937267ed72 [mob] perf: avoid unnecessary frame builds and computations when toggling full fullscreen when viewing a file (#1487) 2024-04-19 14:17:01 +05:30
Manav Rathi
0509aad4af Remove unused prop 2024-04-19 14:15:53 +05:30
Neeraj Gupta
3788fdda6f [mob][photos]Fix: Show fav icon on shared photos 2024-04-19 14:15:33 +05:30
Manav Rathi
f59ecdb8d8 Reword 2024-04-19 14:14:48 +05:30
Manav Rathi
2c46be6ded async 2024-04-19 13:46:09 +05:30
Neeraj Gupta
710f76ee40 Merge remote-tracking branch 'origin/main' into save_a_copy 2024-04-19 13:36:00 +05:30
Neeraj Gupta
7f879aaf57 [mob][photos] Hide incoming file from home screen is saved 2024-04-19 13:34:44 +05:30
Manav Rathi
967ef2e3ea [desktop] Watch refactoring to get it work with new IPC (#1486) 2024-04-19 13:09:40 +05:30
Manav Rathi
760be52dc5 Fix schema 2024-04-19 12:59:10 +05:30
Manav Rathi
5be1b07c71 Remove noise on logout 2024-04-19 12:50:57 +05:30
Manav Rathi
57d09c08d4 Only load when in electron 2024-04-19 12:47:16 +05:30
Manav Rathi
00173bae1e Fix type 2024-04-19 12:46:10 +05:30
Manav Rathi
1b3c38d91f Lintable 2024-04-19 12:40:19 +05:30
Neeraj Gupta
398e66a0eb [mob][photos] Lint fix 2024-04-19 12:36:28 +05:30
Manav Rathi
f3e1abfaa1 Tie loops 2024-04-19 12:34:09 +05:30
Neeraj Gupta
04df64de05 [server] Improvate req validation on file createOrUpdate (#1485)
## Description
During the testing of copyFile functionality, I ran into issues where
files were created without all attributes (esp File EncryptedKey & Nonce
for thumbnail and file decryption).
This change

## Tests
Tested regular file upload, unable to test update as Photos app on
simulator is not showing save option. I don't expect it to break.
2024-04-19 12:11:57 +05:30
Manav Rathi
9d7f056883 Some shape 2024-04-19 12:03:00 +05:30
Neeraj Gupta
816fa330de [server] Implement support for copying object 2024-04-19 11:26:14 +05:30
Neeraj Gupta
7631eb3b12 [mob][photos] Enable fav incoming files 2024-04-19 11:22:47 +05:30
Manav Rathi
f24fd98bc3 Sculpt 2024-04-19 11:22:02 +05:30
Manav Rathi
722cc74e64 Club 2024-04-19 10:27:18 +05:30
Manav Rathi
0e9703f770 Event listeners 2024-04-19 10:16:46 +05:30
Manav Rathi
500bac0b32 Prune happens on the node side now 2024-04-19 09:26:28 +05:30
Neeraj Gupta
b8ad320931 [mob] Add assertion check 2024-04-19 09:18:55 +05:30
Ashil
dac0ddf41c [mob][photos] Migrate use of WillPopScope to PopScope (#1473)
## Description

[Documentation followed for the
migration](https://docs.flutter.dev/release/breaking-changes/android-predictive-back)

## Tests

- [x] Tested screens in which migration wasn't straight forward
(HomeScreen)
2024-04-19 09:16:42 +05:30
Neeraj Gupta
d430616ccb [mobile] New translations (#1482)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-04-19 09:16:24 +05:30
Manav Rathi
46ac8968e8 Localize global state 2024-04-19 09:12:45 +05:30
Vishnu Mohandas
c7eb9a6084 [mob][photos] Migrate from sqflite (#1483)
## Tests

- [x] Tested all changes
2024-04-19 09:07:24 +05:30
Laurens Priem
7500758857 [desktop] Better blur detection service (#1479)
## Description

Improve blur detection that better handles noise in background of faces

## Tests

Manually verified the blur detection scores are identical to those on
mobile
2024-04-19 09:03:06 +05:30
Crowdin Bot
340f0b75cf New Crowdin translations by GitHub Action 2024-04-19 01:56:15 +00:00
Neeraj Gupta
420cec01d2 [mob][photos] Rename method 2024-04-18 22:30:02 +05:30
Manav Rathi
b49cb9dec2 Update add/rm 2024-04-18 21:32:15 +05:30
Manav Rathi
a9ccec6398 The remaining 2 2024-04-18 21:26:05 +05:30
Manav Rathi
76053c4029 impl 2024-04-18 21:07:00 +05:30
laurenspriem
31aa46ead2 [desktop] Better blur detection service 2024-04-18 20:41:28 +05:30
Manav Rathi
ca36b3c750 Migrate 2024-04-18 19:59:06 +05:30
Manav Rathi
14285b66ae Seep deeper 2024-04-18 18:45:02 +05:30
Manav Rathi
4455bb9595 API on electron side 2024-04-18 18:31:38 +05:30
ashilkn
23801f8fa6 Merge branch 'main' into migrate_from_sqflite 2024-04-18 17:15:08 +05:30
ashilkn
b238ba2c62 [mob] Migrate from sqflite (2) 2024-04-18 17:14:22 +05:30
ashilkn
eb68a6c293 [mob] Migrate from sqflite 2024-04-18 16:23:43 +05:30
Manav Rathi
275b763648 Work towards it 2024-04-18 16:18:01 +05:30
Vishnu Mohandas
a49448b9cc [mob][photos] pref: use sqlite_async for getFilesCreatedWithinDurations (#1478) 2024-04-18 16:07:27 +05:30
Manav Rathi
8a728abffe Envision the API 2024-04-18 15:31:22 +05:30
Neeraj Gupta
b18e5cb036 [mob][photos] Minor refactor 2024-04-18 15:11:15 +05:30
Manav Rathi
c90cd258ec Deduce 2024-04-18 15:05:39 +05:30
Manav Rathi
9d4a76a642 Compose 2024-04-18 14:46:13 +05:30
Manav Rathi
9e35469bdc Emulate basename and dirname 2024-04-18 14:42:52 +05:30
Manav Rathi
89162bc45f [desktop] Fix the imagemagick path when running in dev build (#1477)
"resources" needs to be "build"
2024-04-18 14:24:02 +05:30
Manav Rathi
6cc705d682 [desktop] Fix the imagemagick path when running in dev build
"resources" needs to be "build"
2024-04-18 14:22:53 +05:30
Manav Rathi
4fd9ecba56 Abstraction 2024-04-18 14:13:55 +05:30
Manav Rathi
e9e17e6ea3 Handle dotfiles 2024-04-18 14:10:43 +05:30
Manav Rathi
ca29c81394 Don't need much 2024-04-18 13:59:00 +05:30
Manav Rathi
9c336a38c0 path mainp 2024-04-18 13:47:46 +05:30
Manav Rathi
518d573add Improve docs 2024-04-18 13:23:20 +05:30
Manav Rathi
230a8a72ab Use correct types
Not sure if this is expected or some misconfiguration in our case, but the types
generated by electron-store do not have the correct TypeScript types.
2024-04-18 13:19:21 +05:30
Manav Rathi
4852a87ae0 Load after attaching listeners 2024-04-18 13:11:45 +05:30
Manav Rathi
f19b90d0ae Imbibe 2024-04-18 13:04:19 +05:30
Manav Rathi
28c1c45325 Tinker 2024-04-18 12:58:11 +05:30
Manav Rathi
eb587a313a Tighten 2024-04-18 12:55:16 +05:30
Manav Rathi
532824b3d5 Spruce types 2024-04-18 12:53:47 +05:30
Manav Rathi
9e093493eb Implement new 2024-04-18 12:44:07 +05:30
Manav Rathi
0668490f8a Desktop side 2024-04-18 12:29:41 +05:30
Manav Rathi
04f32d64f1 Unclass 2024-04-18 12:00:01 +05:30
Manav Rathi
4d80dc3af9 Interface for pending uploads 2024-04-18 11:51:14 +05:30
ashilkn
e87ae499eb [mob] pref: use sqlite_async for getFilesCreatedWithinDurations 2024-04-18 10:59:22 +05:30
Manav Rathi
73cadcd36b Remove layer 2024-04-18 10:57:13 +05:30
Manav Rathi
278df2aae8 Rearrange and simplify
The auto launcher migration already rolled out months ago, except for rare cases
it is safe to remove (impact of non-migration is not critical too).
2024-04-18 10:54:37 +05:30
Manav Rathi
775dbaf10d Remove unused keys store 2024-04-18 10:16:22 +05:30
Manav Rathi
dedc2f8585 wip 2024-04-18 09:23:03 +05:30
Vishnu Mohandas
f1c878f462 Fix typos 2024-04-18 08:34:45 +05:30
Manav Rathi
7bf5c0ad5c Continue refactoring 2024-04-17 21:51:17 +05:30
Manav Rathi
cdc45e9fcc Remove old types 2024-04-17 20:56:58 +05:30
Manav Rathi
acec41f526 More renaming - wip 2024-04-17 20:56:00 +05:30
Manav Rathi
ca5b98b8d2 Enum to type - wip 2024-04-17 20:32:21 +05:30
Manav Rathi
739c541f5d Terminology 2024-04-17 19:44:39 +05:30
Manav Rathi
f21ccd4935 Rearrange 2024-04-17 19:38:07 +05:30
Manav Rathi
170ea0c997 Cleanup 2024-04-17 19:21:40 +05:30
Manav Rathi
a22423d039 WIP 2 2024-04-17 17:00:51 +05:30
Manav Rathi
52c35108ca WIP 1 2024-04-17 15:51:51 +05:30
Neeraj Gupta
c124cde471 [server] Add basic scaffold for copying files 2024-04-17 15:43:48 +05:30
Neeraj Gupta
aabb884828 [server] Add validation logic for file copy 2024-04-17 15:19:20 +05:30
Manav Rathi
2051ccee46 List files alternate 2024-04-17 14:48:03 +05:30
Manav Rathi
ee89506923 Unlegacy isDir 2024-04-17 14:27:48 +05:30
Manav Rathi
00c400f682 Reword 2024-04-17 14:19:11 +05:30
Manav Rathi
4971099da9 Merge 2024-04-17 13:41:10 +05:30
Manav Rathi
626321b6d1 [web] Create package for sharing code between photos and cast (#1470) 2024-04-17 12:42:14 +05:30
Manav Rathi
75e07353be Thank you tsc 2024-04-17 12:38:52 +05:30
Manav Rathi
df483b0755 lint 2024-04-17 12:37:18 +05:30
Manav Rathi
184ba91a2d Refactor 2024-04-17 12:34:00 +05:30
Manav Rathi
652be207be Update another place 2024-04-17 12:11:08 +05:30
Manav Rathi
fb1d2c800a Dedup 2024-04-17 12:07:15 +05:30
Manav Rathi
871cb417d6 Replace 2024-04-17 12:03:45 +05:30
Manav Rathi
27a2b087c7 Elaborate 2024-04-17 12:01:54 +05:30
Manav Rathi
2d5ab044ee Docs 2024-04-17 11:55:07 +05:30
Manav Rathi
637d830f19 Replace encodelivephoto 2024-04-17 11:51:35 +05:30
Neeraj Gupta
e9bc465353 [server] Add request object for copying files 2024-04-17 11:40:37 +05:30
Manav Rathi
3172104578 Start using @/media's version 2024-04-17 10:08:08 +05:30
Manav Rathi
4b9446a9b0 Create a package to share code between photos and cast 2024-04-17 09:47:28 +05:30
Manav Rathi
486044ad51 [cast] Fix live photo handling, precache (#1465)
- Fix live photo cast (previously these were not being rendered because
of an incorrect conditional)
- Precache

There is still an initial delay where the missing thumbnail is shown on
switching to the next image on first load. But anyways, these are
improvements, can tackle that later.
2024-04-16 21:06:30 +05:30
Manav Rathi
d80358552f Trim spaces for more forgiving copy paste 2024-04-16 21:02:57 +05:30
Manav Rathi
c98d5a3e40 Filter out files with HEIC previews 2024-04-16 21:00:47 +05:30
Manav Rathi
2dd705d7f7 Not better not worse 2024-04-16 20:49:47 +05:30
Manav Rathi
0a248e5ce5 Prepare 2024-04-16 20:22:12 +05:30
Manav Rathi
598a885df2 Refactor
This doesn't fix the initial gap, functionality is still the same, but the flow
is now easier to understand.
2024-04-16 20:17:28 +05:30
Manav Rathi
138b775c13 At a more opportune place 2024-04-16 19:57:08 +05:30
Manav Rathi
2bb3e152f8 Precache 2024-04-16 19:54:00 +05:30
Manav Rathi
f78e4d3914 Fix live photo cast 2024-04-16 19:42:53 +05:30
Manav Rathi
bb9c384a52 [desktop] Fix watch related IPC - Part 1/x (#1463) 2024-04-16 18:45:38 +05:30
Ashil
45942f7931 [mob][photos] Search field fixes (#1464)
## Description

See commits.
2024-04-16 17:49:28 +05:30
Manav Rathi
f775890af7 Rename on the renderer side 2024-04-16 16:35:30 +05:30
Manav Rathi
1fea509793 Rename the type on the electron side 2024-04-16 16:29:22 +05:30
Manav Rathi
9a6f3133b1 Reduce API 2024-04-16 16:17:27 +05:30
Manav Rathi
afec29d6e7 Inline and spruce 2024-04-16 15:54:28 +05:30
Neeraj Gupta
f645fff31c [mob][photos] Add hook to show cast devices 2024-04-16 15:38:41 +05:30
Manav Rathi
8fbff7e3a3 Inline 2024-04-16 15:33:47 +05:30
Manav Rathi
96ea996401 Inline 2024-04-16 15:29:56 +05:30
Manav Rathi
cf889b24af Inline 2024-04-16 15:28:23 +05:30
Manav Rathi
cd4b2a6810 Inline 2024-04-16 15:26:35 +05:30
Manav Rathi
415fa79271 [desktop] Make export work with the new IPC (#1461)
There is one piece of the puzzle still missing - the files are being
sent wholesale instead of being streamed - and this might cause memory
issues. I haven't benchmarked yet, leaving this until we get some
response from the upstream issue
https://github.com/electron/electron/issues/41872 (hopefully it's just
some thing I missed).

But otherwise, ran export on a trivial library and it worked fine, so
everything is at least hooked up properly now.
2024-04-16 15:12:34 +05:30
Manav Rathi
2403c19f70 Add a temporary fallback 2024-04-16 14:50:25 +05:30
Vishnu Mohandas
7ada38cca0 [auth] New translations (#1456)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-04-16 13:41:23 +05:30
Vishnu Mohandas
3c464549cf Remove submodules (#1460) 2024-04-16 11:47:29 +05:30
vishnukvmd
4cede0feb0 Remove submodules 2024-04-16 11:46:37 +05:30
Vishnu Mohandas
d9cef398cf [photos] v0.8.82 (#1459) 2024-04-16 11:36:53 +05:30
vishnukvmd
3b5a2e9d2a [photos] v0.8.82 2024-04-16 11:36:35 +05:30
vishnukvmd
7977bebcaa Update Flutter to v3.19.3 2024-04-16 11:35:32 +05:30
Manav Rathi
450e494a5e Throwing darts 2024-04-16 11:34:34 +05:30
Prateek Sunal
4b2ebec11b [FEAT] Route widget on click to image (#1418) (#1435)
## Description

Previously clicking on it was opening favorites album but now it will
open favorites album as well as image.

## Tests
2024-04-16 11:28:51 +05:30
Manav Rathi
2bc22f472e [web] New translations (#1455)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-16 11:27:16 +05:30
Manav Rathi
b104334fc6 [server] Specify a default for apps.public-albums (#1458)
local.yaml is only loaded in the local environment, and will not be used
in production. To avoid specifying it in both production and local
configurations, use it as a default specified in the code instead
(that's the pattern we're using in other places too from what I
remember, maybe we should refactor that too, but that's a bigger task
not tied to this change).

**Tested by**

On a local dev cluster

- [x] Not specifying anything and ensuring that the default is picked
- [x] Specifying an override in museum.yaml and verifying that is used
instead
2024-04-16 11:26:44 +05:30
Manav Rathi
81d1563c3d Also reproducible on latest beta 2024-04-16 10:17:51 +05:30
Neeraj Gupta
db95de8829 [mob][photos] Add cast pkg dependency 2024-04-16 09:55:01 +05:30
Manav Rathi
d53a4a14b8 Try another reader 2024-04-16 09:46:55 +05:30
Manav Rathi
1e202a76c4 Works if we don't stream 2024-04-16 09:39:43 +05:30
Manav Rathi
74b9a2a408 [server] Specify a default for apps.public-albums
local.yaml is only loaded in the local environment, and will not be used in
production. To avoid specifying it in both production and local configurations,
use it as a default specified in the code instead (that's the pattern we're
using in other places too from what I remember, maybe we should refactor that
too, but that's a bigger task not tied to this change).

**Tested by**

On a local dev cluster
- Not specifying anything and ensuring that the default is picked
- Specifying an override in museum.yaml and verifying that is used instead
2024-04-16 09:19:13 +05:30
Manav Rathi
bd00471a08 [web] Clear search bar state when value is falsey (#1457)
Updates https://github.com/ente-io/ente/pull/1453 so that we also clear
the existing state by calling the setFoo methods even when value is
falsey.
2024-04-16 09:09:18 +05:30
Manav Rathi
d7b0beb949 [web] Clear search bar state when value is falsey
Updates https://github.com/ente-io/ente/pull/1453 so that we also clear the
existing state by calling the setFoo methods even when value is falsey.
2024-04-16 09:03:35 +05:30
Crowdin Bot
22c080c2aa New Crowdin translations by GitHub Action 2024-04-16 02:03:30 +00:00
Crowdin Bot
0f4624e829 New Crowdin translations by GitHub Action 2024-04-16 01:37:39 +00:00
Prateek Sunal
311d23873e chore: bump version 2024-04-15 21:44:49 +05:30
Prateek Sunal
0956e3ccc4 Merge remote-tracking branch 'origin/main' into mobile-widgetsimproved 2024-04-15 21:43:52 +05:30
Manav Rathi
2577cfe2f1 Replace cast with @ts-expect-error 2024-04-15 21:43:38 +05:30
Prateek Sunal
587f721683 fix: revert old 2024-04-15 21:43:30 +05:30
Manav Rathi
a5be903abe Try writing the stream manually (same result) 2024-04-15 21:37:38 +05:30
Manav Rathi
8d76966d99 Upgrade Electron and other dependencies
This was primarily for getting the latest Electron, but I ran `yarn
upgrade-interactive` and upgraded the other non-breaking deps (mostly dev) too.

Reason for wanting electron is to try and see if this backport fixes the issue
with our streams not getting faithfully written:
https://github.com/electron/electron/pull/41052

In some ad-hoc and quick testing, I noticed that the new `writeStream` we've
implemented works fine for files up to 128 K, presumably some chunk size, but
then begins to diverge. Sounds similar (but not exactly the same) as this issue:
https://github.com/electron/electron/issues/39658

Unfortunately, this didn't fix the issue we're facing, so our case is perhaps
different.
2024-04-15 21:21:09 +05:30
Manav Rathi
020ed59d40 [web] Fix dev mode error on search input (#1453)
## Description
Ran into error after clearing search bar of queries by hitting
backspace.

>  The error is shown below
> Thank you to the team for considering 


## Tests
**Error**
![Screenshot 2024-04-15
184234](https://github.com/ente-io/ente/assets/82031202/f5f9845c-9420-4746-998b-2c67136d69cd)
**Fix**
Fixed by wrapping the line-causing error around by an `if` block.
2024-04-15 20:50:06 +05:30
Manav Rathi
2c5ed5bce9 [desktop] Streaming IPC - Part 2/x (#1454)
The data is getting streamed, but not correctly in some cases. So the
mechanics are in place, need to figure out the readable stream chunks
etc.
2024-04-15 20:48:48 +05:30
daviddeepan
09c07e58e6 search-input runtime-error fix 2024-04-15 19:54:33 +05:30
Manav Rathi
f2e352c344 Handle spaces 2024-04-15 19:50:56 +05:30
Manav Rathi
83d2644bf4 Fix double slashing 2024-04-15 19:43:30 +05:30
Manav Rathi
67aacf8391 Replace everywhere 2024-04-15 19:40:50 +05:30
Manav Rathi
c99c4ac839 Use new method 2024-04-15 19:35:19 +05:30
Manav Rathi
6b331612b6 writeStream 2024-04-15 18:39:08 +05:30
Neeraj Gupta
61f05f8eff [mob][photos] Use modificationTime as creationTime if it's lower than… (#1451)
… creationTime

## Description

## Tests
2024-04-15 16:40:59 +05:30
Neeraj Gupta
c840ac4d6c [mob][photos] Upgrade connectivity_plus pkg (#1450)
## Description

## Tests
2024-04-15 16:26:30 +05:30
Manav Rathi
d9ce28e4a3 [desktop] Streaming IPC 🚅 - Proof of concept (#1452) 2024-04-15 16:05:23 +05:30
Manav Rathi
a74d904989 Use a test stream
Example taken from https://developer.chrome.com/docs/capabilities/web-apis/fetch-streaming-requests
2024-04-15 16:00:25 +05:30
Manav Rathi
8cdb31783b Enhance 2024-04-15 15:57:57 +05:30
Manav Rathi
4c88f5eec9 Add write handler 2024-04-15 15:53:40 +05:30
Neeraj Gupta
fdb9e4e205 [mob][photos] Use modificationTime as creationTime if it's lower than creationTime 2024-04-15 15:46:47 +05:30
Manav Rathi
0881212e4f Rearrange 2024-04-15 15:44:11 +05:30
Manav Rathi
720e84ba1f Prune
Refs:
- https://www.electronjs.org/docs/latest/api/protocol
- https://github.com/electron/electron/issues/39031
- https://github.com/electron/electron/issues/38749
2024-04-15 15:25:33 +05:30
Neeraj Gupta
5bac629c2b [mob][photos] Fix connectivityResult check 2024-04-15 15:21:43 +05:30
Manav Rathi
057fe9bbb1 Allow fetches for "stream"
Ref:
- https://github.com/electron/electron/issues/40362
2024-04-15 15:08:10 +05:30
Neeraj Gupta
ab1ac9cf11 [mob][lint] error on unrelated_type_equality_checks rule voilation 2024-04-15 15:04:10 +05:30
Neeraj Gupta
223a4ffcfd [mob][photos] Upgrade connectivity_plus pkg 2024-04-15 15:00:59 +05:30
Prateek Sunal
d46d74c6e2 Merge branch 'main' into mobile-widgetsimproved 2024-04-15 14:50:28 +05:30
Manav Rathi
2a425b0f9b Add duplex parameter to a streaming request
Attempt to solve the following error in the browser's console when trying to
make the request:

    [error] download and save failed: TypeError: Failed to construct 'Request':
    The `duplex` member must be specified for a request with a streaming body
2024-04-15 14:22:00 +05:30
Manav Rathi
9eab93cfdf Suppress webpack's critical dependency warnings for libheif
Supressing it for now since it obscures other important information in the console.

Upstream issue, which currently doesn't have a workaround:
https://github.com/catdad-experiments/libheif-js/issues/23

Full error message:

     ⚠ ../../node_modules/libheif-js/libheif-wasm/libheif-bundle.js
    Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

    Import trace for requested module:
    ../../node_modules/libheif-js/libheif-wasm/libheif-bundle.js
    ../../node_modules/libheif-js/wasm-bundle.js
    ../../node_modules/heic-decode/index.js
    ../../node_modules/heic-convert/index.js
    ./src/worker/convert.worker.ts
    ./src/utils/comlink/ComlinkConvertWorker.ts
    ./src/services/heic-convert/service.ts
    ...

Refs:
- https://stackoverflow.com/questions/38392697/webpack-umd-critical-dependency-cannot-be-statically-extracted
2024-04-15 13:47:46 +05:30
Manav Rathi
89b832d21f Baby's first steps 2024-04-15 12:47:55 +05:30
Manav Rathi
0161739bc0 Outline the plan 2024-04-15 12:41:17 +05:30
Manav Rathi
3ea4879cf0 Remove text qualifier
The type already enforces that. And it reads better and the call sites this way.
2024-04-15 12:20:41 +05:30
Manav Rathi
73ef03a5d9 Move read/write whole files into fs 2024-04-15 12:17:33 +05:30
Neeraj Gupta
d8c798e5a2 [FEAT] Multipart upload support (#1347)
## Description

Add multipart file upload support
2024-04-15 12:00:49 +05:30
Neeraj Gupta
177d35a32e Merge branch 'main' into multipart 2024-04-15 11:59:49 +05:30
Neeraj Gupta
6300984bd1 Merge branch 'main' into multipart 2024-04-15 11:59:15 +05:30
Manav Rathi
896cf0f785 Disable full file caches for now
This is only needed for ML indexing, let us revisit this once the ML flow is
done instead of adding a premature and possibly disk-space heavy optimization.
2024-04-15 11:50:23 +05:30
ashilkn
f28f49d724 Merge main 2024-04-15 11:20:03 +05:30
Manav Rathi
f5fa3128a7 [desktop] Fix desktop payments redirect (#1447)
Fixes: https://github.com/ente-io/ente/issues/1440

There were two issues:

- It was a backward incompatible change to change the scheme from
ente:// to next://. Revert.

- We also need to setup a top level redirect when the user presses back
without making any changes to their subscription.

**Tested by**

Running payments app and desktop app locally, and verifying that

- [x] Signing up for a new account, purchasing a plan and verifying that
we went back to the app as expected
- [x] Existing account, after pressing back from the manage payments
page we go back to the app as expected
2024-04-15 11:05:23 +05:30
Manav Rathi
95c0f53d21 Preserve parameters
This was needed for the purchase success to be relayed back.
2024-04-15 10:59:07 +05:30
ashilkn
2a835e80a4 [mob] bump up photos version to v0.8.81 2024-04-15 10:58:35 +05:30
ashilkn
48cbe17ccd [mob] Make the borders of settings drawer not-round 2024-04-15 10:58:35 +05:30
Neeraj Gupta
2638a06551 [mob][photos] Enable multiPart upload for internal users 2024-04-15 10:56:41 +05:30
Manav Rathi
8d24a489f6 [desktop] Fix payment redirect
Fixes: https://github.com/ente-io/ente/issues/1440

There were two issues:

- It was a backward incompatible change to change the scheme from ente:// to
  next://. Revert.

- We also need to setup a top level redirect when the user presses back without
  making any changes to their subscription.

**Tested by**

Running payments app and desktop app locally, and verifying that after
interactions with the payments endpoint we go back to the desktop app's actual
contents correctly.
2024-04-15 10:47:14 +05:30
Neeraj Gupta
601a776b7a Merge branch 'main' into multipart 2024-04-15 10:37:42 +05:30
Ashil
bb90b2d3bc [mob][photos] Upgrade flutter (#1434)
## Description

- Update flutter
- Update packages
- Fix UI issues because of update (material 3)
- bump up version to v0.8.80

## Tests

- [x] Building on android and iOS.

---------

Co-authored-by: Neeraj Gupta <254676+ua741@users.noreply.github.com>
2024-04-15 10:21:18 +05:30
Manav Rathi
5a3545e56e [web] Use the public link origin provided by the server (#1444)
When implementing https://github.com/ente-io/ente/pull/1443 it was found
that the Photos web app wasnt' using the sharedCollectionUrl prefix that
is returned by the server. Instead, it was using
NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT as the baseHost, while mobile client
completely rely on the server for returning the correct hostUrl.

**Tested by**

Running against the modified server, and verifying that changes to
apps.public-albums were being used.
2024-04-15 10:09:55 +05:30
Neeraj Gupta
c73dc36a8c [Server] Fix data cleanup pipeline for recovered account (#1410)
## Description
For accounts that were recovered post deletion (within x days), we were
not removing the entry from data_cleanup cron.

The data_clean up cron anyways verify that the account is indeed deleted
before proceeding with deletion, so it was not causing any harm, but the
cron was logging error.

## Tests

- [x] Verify that data clean up entry is removed if the account is
recovered
- [x] Verify that for existing data_cleanup entry for already recovered
account, the entry is deleted from cron.
2024-04-15 10:09:29 +05:30
Manav Rathi
92b5b56ac7 Add docs 2024-04-15 10:06:14 +05:30
Manav Rathi
bcfd144ce9 [web] Use the public link origin provided by the server
When implementing https://github.com/ente-io/ente/pull/1443 it was found that
the Photos web app wasnt' using the sharedCollectionUrl prefix that is returned
by the server. Instead, it was using NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT as the
baseHost, while mobile client completely rely on the server for returning the
correct hostUrl.

**Tested by**

Running against the modified server, and verifying that changes to
apps.public-albums were being used.
2024-04-15 09:57:01 +05:30
Neeraj Gupta
8ed2c7cff9 [server] Pick base publicHost url from config (#1443)
## Description

## Tests
Ran locally with the config in local.yaml and verified that it's
modified as well when I had put localhost:3002 in the museum.yaml config
2024-04-15 09:56:21 +05:30
github-actions[bot]
2387d7875c [auth] New translations (#1240)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-04-15 09:36:11 +05:30
Manav Rathi
2ae119b2ec [desktop] Fix export related IPC - Part 4/x (#1441) 2024-04-14 20:23:04 +05:30
Manav Rathi
18ac361688 Remove unused IPC method 2024-04-14 20:11:25 +05:30
Manav Rathi
87077417a2 Remove dup 2024-04-14 20:07:17 +05:30
Manav Rathi
d0ac3ea9ca Remove newly dead code 2024-04-14 20:00:59 +05:30
Manav Rathi
a5f9fdd10d Restructure selection 2024-04-14 19:59:13 +05:30
Manav Rathi
881a963fde Inline 2024-04-14 19:46:26 +05:30
Manav Rathi
f9560ec533 Inline 2024-04-14 19:43:31 +05:30
Manav Rathi
22616bb77d Remove top level error suppressors 2024-04-14 19:42:30 +05:30
Manav Rathi
4d19c46d7c Replace exception handling for control flow 2024-04-14 19:39:35 +05:30
Manav Rathi
cc323905d5 Another 2024-04-14 19:33:49 +05:30
Manav Rathi
fca4b2aca6 Use also for the image 2024-04-14 19:29:22 +05:30
Manav Rathi
c4ac5e39a2 Refactor 2024-04-14 19:25:01 +05:30
Manav Rathi
28574e516d [desktop] Fix export related IPC - Part 3/x (#1439) 2024-04-14 19:04:38 +05:30
Manav Rathi
1232c74b8b [web] Fix CSS alignment issue on gallery page (#1438)
## Description
Ran ente.io locally on PC and found a CSS-alignment issue on the
`http://localhost:3000/gallery` page.
The alignment issue was found when it was locally hosted and found when
'/gallery' was in an empty state.
The line - "Welcome to" followed by the image of 'ente' was not aligned.
It was fixed by adding the following line `vertical-align: middle;` to
the styled component.

> Please find below images showing the off-alignment and the rectified
image.

> Thank you ! to the team for considering

## Tests
### Before
![Screenshot 2024-04-14
115356](https://github.com/ente-io/ente/assets/82031202/d733a8b3-702f-41df-9480-9692db6b8e86)
### After
![Screenshot 2024-04-14
115433](https://github.com/ente-io/ente/assets/82031202/0c5acc8e-0107-4b00-b7e0-d26a4369ed19)
2024-04-14 19:01:44 +05:30
Manav Rathi
22f221d481 Extract 2024-04-14 18:36:36 +05:30
Manav Rathi
f5a4830a5a Remove unnecessary check
e.g. macOS node shell

    > await fs.rename("/tmp/foo/bar/quxx.txt", "/tmp/foo/a.txt")
    [Error: ENOENT: no such file or directory, rename '/tmp/foo/bar/quxx.txt' -> '/tmp/foo/a.txt']
2024-04-14 18:28:10 +05:30
Manav Rathi
eb64a00ed2 Remove unnecessary checks
It is simpler for us to parallel the rm command than our bespoke variant.
2024-04-14 18:22:46 +05:30
Manav Rathi
59b9e3e586 Move into fs 2024-04-14 18:12:19 +05:30
Manav Rathi
0f1c2fa1cd Remove unnecessary check
Mentioned in rmdir docs

Tested on macOS with a node shell

    > await fs.rmdir("/tmp/foo/bar/baz")
    Uncaught [Error: ENOTEMPTY: directory not empty, rmdir '/tmp/foo/bar/baz']
2024-04-14 18:06:49 +05:30
Manav Rathi
fb5ae3a2ac Remove unnecessary check
rmdir docs already mention it'll only work on folders

Also tested on macOS with a node shell

    > await fs.rmdir("/tmp/foo/bar/baz/quxx.txt")
    Uncaught [Error: ENOTDIR: not a directory, rmdir '/tmp/foo/bar/baz/quxx.txt'] {
2024-04-14 17:55:40 +05:30
Prateek Sunal
5da8ee7e27 fix: segregate logic for launch from widget 2024-04-14 14:35:10 +05:30
daviddeepan
2a9060bd39 css-alignment-issue-page-gallery 2024-04-14 13:53:00 +05:30
Vishnu Mohandas
db50d121e6 Update index.md 2024-04-14 11:30:47 +05:30
Manav Rathi
adb37f38e4 Shorten 2024-04-14 10:31:45 +05:30
Manav Rathi
14922b65f8 Inline 2024-04-14 10:28:27 +05:30
Manav Rathi
7438c3301e Move mkdirIfNeeded into fs 2024-04-14 10:25:28 +05:30
Manav Rathi
0e8678715a Remove layer 2024-04-14 10:03:16 +05:30
Manav Rathi
3824ebe91a Remove exportService indirection 2024-04-14 09:57:58 +05:30
Manav Rathi
ea34eebfc9 Remove implicit electron dependency 2024-04-14 09:53:18 +05:30
Manav Rathi
eeb1952585 Use 2024-04-14 09:30:51 +05:30
Manav Rathi
72dd47fa7b Audit rename 2024-04-14 09:27:52 +05:30
Manav Rathi
b977f982dd [desktop] Fix export related IPC - Part 2/x (#1436) 2024-04-13 21:56:46 +05:30
Manav Rathi
38db03c3a0 Start giving it more power 2024-04-13 21:50:56 +05:30
Manav Rathi
e268b9204e Inline 2024-04-13 21:46:34 +05:30
Manav Rathi
acd50bb172 Inline 2024-04-13 21:39:36 +05:30
Manav Rathi
28d559bd84 Hoist 2024-04-13 21:35:58 +05:30
Manav Rathi
e87c7ed108 Inline 2024-04-13 21:34:37 +05:30
Manav Rathi
67a81f8d86 Dedup 2024-04-13 21:31:36 +05:30
Manav Rathi
30f147ec5b Update jsdoc 2024-04-13 21:26:00 +05:30
Manav Rathi
6829d0bf15 Remove unused 2024-04-13 21:24:52 +05:30
Manav Rathi
d03b265eb4 Captialize
We've been capitalizing the name at places where we can. This name is only used
when creating new exports, and shouldn't effect existing export, so it is safe
to change.
2024-04-13 21:21:48 +05:30
Manav Rathi
297ca09535 Refactor and extract 2024-04-13 21:20:20 +05:30
Manav Rathi
82bbb1c6dd Cleanup and document 2024-04-13 21:06:47 +05:30
Prateek Sunal
f04e45a461 fix: logic of await/async 2024-04-13 21:00:21 +05:30
Manav Rathi
4fbfbf0aa0 Cleanup 2024-04-13 20:53:35 +05:30
Manav Rathi
56d04066ea sfn 2024-04-13 20:38:29 +05:30
Manav Rathi
7838f7484d Make explicit 2024-04-13 20:29:17 +05:30
Prateek Sunal
45ab6d92b5 fix: also route to photo on click of widget 2024-04-13 20:22:34 +05:30
ashilkn
c3de396d21 [mob] bump up version to v0.8.80 2024-04-13 20:06:32 +05:30
ashilkn
f2987a82f2 [mob] merge main 2024-04-13 20:05:38 +05:30
ashilkn
81c47bc768 [mob] UI changes to segmented button in stripe and store pages 2024-04-13 20:01:28 +05:30
ashilkn
6c75b35472 [mob] pub upgrade 2024-04-13 19:45:06 +05:30
ashilkn
d35fe3ff00 [mob] Use SegmentedButton instead of broken(UI) toggle in app store subscription page 2024-04-13 19:44:22 +05:30
ashilkn
10cb54ddc1 [mob] Use SegmentedButton instead of broken(UI) toggle in stripe subscription page 2024-04-13 19:43:19 +05:30
ashilkn
0348e43e81 Merge branch 'material_3_ui_issues_fix' into update_deps_and_flutter 2024-04-13 19:08:01 +05:30
Manav Rathi
a6887e3037 [web] Add ESLint to enforce HMR how vite likes it (#1433)
Configuration changes taken from the vite starter (react-ts).

From the [vite
docs](https://github.com/vitejs/vite-plugin-react-swc?tab=readme-ov-file#consistent-components-exports)

> For React refresh to work correctly, your file should only export
React components.
>
> If an incompatible change in exports is found, the module will be
invalidated. To make it easier to export simple constants alongside your
component the module is only invalidated when their value changes.

While we're not currently using vite for our main apps, it would be
worthwhile to write code in a way that a future migration to it is
painless if needed.

About the what and the why, the Gatsby docs are illuminating:

https://www.gatsbyjs.com/docs/reference/local-development/fast-refresh/#how-it-works

Some other refs:
- https://github.com/ArnaudBarre/eslint-plugin-react-refresh
-
https://github.com/vitejs/vite/discussions/4577#discussioncomment-1161007
- https://github.com/vitejs/vite-plugin-react/issues/34
2024-04-13 18:57:24 +05:30
Manav Rathi
c7757cb08e Prune more stale overrides 2024-04-13 18:54:15 +05:30
Manav Rathi
ce642e12c1 Remove stale disables 2024-04-13 18:50:12 +05:30
Manav Rathi
e07559c8da Fix oopsie 2024-04-13 18:41:47 +05:30
Manav Rathi
64231c73f1 [web] Add ESLint to enforce HMR how vite likes it
Configuration changes taken from the vite starter (react-ts).

From the vite docs (https://github.com/vitejs/vite-plugin-react-swc?tab=readme-ov-file#consistent-components-exports)

> For React refresh to work correctly, your file should only export React components.
>
> If an incompatible change in exports is found, the module will be invalidated.
> To make it easier to export simple constants alongside your component the module
> is only invalidated when their value changes.

While we're not currently using vite for our main apps, it would be worthwhile
to write code in a way that a future migration to it is painless if needed.

About the what and the why, the Gatsby docs are illuminating:
https://www.gatsbyjs.com/docs/reference/local-development/fast-refresh/#how-it-works

Some other refs:
- https://github.com/ArnaudBarre/eslint-plugin-react-refresh
- https://github.com/vitejs/vite/discussions/4577#discussioncomment-1161007
- https://github.com/vitejs/vite-plugin-react/issues/34
2024-04-13 18:38:24 +05:30
Manav Rathi
27fb43837b [desktop] Fix export related IPC - Part 1/x (#1432) 2024-04-13 18:31:36 +05:30
Manav Rathi
4f764dc77c Consolidate constants 2024-04-13 18:27:40 +05:30
Manav Rathi
63a2ca7606 Fix lint 2024-04-13 18:24:57 +05:30
Manav Rathi
eb995f4354 Split 2024-04-13 18:20:40 +05:30
Manav Rathi
37cb2aaaf9 Refactor 2024-04-13 18:09:32 +05:30
Neeraj Gupta
4c93033522 [mob] Upgrade sqflite_async 2024-04-13 18:08:57 +05:30
Neeraj Gupta
ab70908980 Merge branch 'update_deps_and_flutter' of https://github.com/ente-io/auth into update_deps_and_flutter 2024-04-13 18:07:44 +05:30
ashilkn
a3f102c183 [mob] Use custom toggle widget to remove UI issues after migrating to material 3 2024-04-13 18:07:01 +05:30
Neeraj Gupta
2feee2cc5e [mob][photos] Bump flutter version in README and github workflow 2024-04-13 17:58:41 +05:30
Neeraj Gupta
c183531e8b Switch to older version of share_plus 2024-04-13 17:53:06 +05:30
Neeraj Gupta
9522854685 Flutter gradle plugin changes 2024-04-13 17:52:49 +05:30
Neeraj Gupta
d864acafa3 [mob] Upgrade to flutter 3.19.5 2024-04-13 17:52:35 +05:30
ashilkn
75dd7c3e48 [mob] make function private 2024-04-13 17:15:13 +05:30
ashilkn
2c0148d661 [mob] fix UI of toggle widget on iOS 2024-04-13 17:11:04 +05:30
Manav Rathi
1ffa905f99 Inline 2 2024-04-13 17:00:50 +05:30
Manav Rathi
07fa5cb83d Inline 2 2024-04-13 16:59:47 +05:30
Manav Rathi
c90ba63aad Inline 1 2024-04-13 16:57:04 +05:30
Manav Rathi
284d7920b3 Inline 2 2024-04-13 16:54:26 +05:30
Manav Rathi
ca114a467d Inline 1 2024-04-13 16:50:23 +05:30
ashilkn
372ced2502 [mob] fix colour of loading dialog 2024-04-13 16:48:36 +05:30
Manav Rathi
f7e961e86b Inline 2024-04-13 16:44:55 +05:30
ashilkn
d9a93ddad6 Merge branch 'main' into f-droid 2024-04-13 15:24:56 +05:30
Vishnu Mohandas
e72003c199 [mob][photos] Prepare for release v0.8.79 (#1430)
![v0 8 79
changelog](https://github.com/ente-io/ente/assets/77285023/f55a544a-9d10-467c-b23f-bd57f9a2efe4)
2024-04-13 15:09:12 +05:30
ashilkn
1a8ec9fb4c [mob] minor change to change log 2024-04-13 15:02:43 +05:30
Prateek Sunal
17507cce68 fix: remove unused constants 2024-04-13 14:09:52 +05:30
Prateek Sunal
51d02177ad chore: bump dependencies 2024-04-13 14:07:20 +05:30
Prateek Sunal
0a06ee1f55 chore: lint fix 2024-04-13 14:04:06 +05:30
Prateek Sunal
564ca440e7 fix: remove unwanted line 2024-04-13 14:03:54 +05:30
Prateek Sunal
de06c8f38b fix: use better way to remove quotes 2024-04-13 14:02:29 +05:30
Prateek Sunal
780ec7f9d6 fix: generalize xml parser logic 2024-04-13 14:02:29 +05:30
Prateek Sunal
2b9db5cbfb fix: only multipart when count is greater than 1 2024-04-13 14:02:29 +05:30
Prateek Sunal
baeac73339 fix: complete url xml 2024-04-13 14:02:29 +05:30
Prateek Sunal
69394fc8a6 fix: separate xml parser util 2024-04-13 14:02:29 +05:30
Prateek Sunal
99d84821c7 feat: add multipart upload support 2024-04-13 14:02:29 +05:30
ashilkn
8fa18e1ffe [mob] update change log 2024-04-13 13:37:03 +05:30
ashilkn
703ba5ad9b [mob] bump up to v0.8.79 2024-04-13 13:22:38 +05:30
Manav Rathi
ba5383789a [desktop] Add an OPFS based cache (#1429)
See the extensive documentation in `blob-cache.ts` for the why and the
how. Done basic sanity testing for normal flows, the beta ML flows still
need to be tested.
2024-04-13 13:19:37 +05:30
Manav Rathi
7deb0dca8e Fix lint 2024-04-13 13:17:42 +05:30
Manav Rathi
f2d3ec74a1 Granular migration 2024-04-13 13:12:16 +05:30
Manav Rathi
0f3b28a425 Revert "Recreate ML db"
This partially reverts commit 95a0e80c5b.
2024-04-13 12:56:21 +05:30
Manav Rathi
95a0e80c5b Recreate ML db 2024-04-13 12:46:48 +05:30
ashilkn
04e45b7908 fix: call updateEmail after initState to avoid runtime exception
updateEmail uses getEnteColorScheme() which adds an inherited widget as dependency to the widget. Adding an inherited widget as dependency before init state is completed throws an exception
2024-04-13 12:42:55 +05:30
Neeraj Gupta
555a960def [auth] Potential fix for keyboard popup not working while focusing on… (#1428)
… search

## Description

## Tests
2024-04-13 12:15:49 +05:30
Neeraj Gupta
949a304078 [auth] Potential fix for keyboard popup not working while focusing on search 2024-04-13 12:03:29 +05:30
Manav Rathi
b50f8a8212 Promise 2024-04-13 10:35:20 +05:30
Manav Rathi
edd9c94d73 URL => id, which is what it is 2024-04-13 10:32:40 +05:30
Manav Rathi
d0dc8b1320 Dedup 2024-04-13 10:22:24 +05:30
Manav Rathi
c0d95edac8 Inline 2 2024-04-13 10:19:16 +05:30
Manav Rathi
f7ba28d1fb Inline 1 2024-04-13 10:17:58 +05:30
Manav Rathi
eef9bf1f26 Inline 2024-04-13 10:16:08 +05:30
Manav Rathi
75e693186a Inline 2024-04-13 10:14:35 +05:30
Manav Rathi
02abe24213 Detect ML search status 2024-04-13 10:00:22 +05:30
Manav Rathi
5082124aa5 Cleanup 2024-04-13 09:44:06 +05:30
Manav Rathi
997c74d064 res2 2024-04-13 09:39:29 +05:30
Manav Rathi
9cf57c847e Rely on global uncaught handler to log 2024-04-13 09:34:49 +05:30
Manav Rathi
9aaf6098b7 Use new APIs for file 2024-04-13 09:08:13 +05:30
Manav Rathi
4055f02a1d Cleaner 2024-04-13 08:52:37 +05:30
Manav Rathi
b32c13fe31 thumb2 2024-04-13 08:48:39 +05:30
Manav Rathi
c52fd4383c Nicer delete 2024-04-13 08:43:01 +05:30
Manav Rathi
a86cdb1f1e Interface 2024-04-13 08:40:08 +05:30
Manav Rathi
999f7e45c9 Remove unused param 2024-04-13 08:34:57 +05:30
Manav Rathi
e8b779745d put2 2024-04-13 08:33:13 +05:30
Manav Rathi
f2aee30f7c get 2024-04-13 08:18:11 +05:30
Manav Rathi
db96a0eb1b get 2024-04-13 08:12:38 +05:30
Manav Rathi
6d1f8b4728 Blobs it is 2024-04-13 08:04:43 +05:30
Manav Rathi
acedbdbe7d Note 2024-04-13 07:42:24 +05:30
Manav Rathi
6a3f4baed3 Enhance 2024-04-13 07:30:32 +05:30
Manav Rathi
6cd795e29c Create alternate code path 2024-04-13 07:19:28 +05:30
Manav Rathi
b5096b02da Remove unused knob
Ref:
- https://www.typescriptlang.org/docs/handbook/2/classes.html#parameter-properties
2024-04-13 06:56:46 +05:30
Manav Rathi
3499e47c88 Tweak 2024-04-13 06:47:43 +05:30
Manav Rathi
5ff01c40d8 poc implementation 2024-04-12 21:29:05 +05:30
Manav Rathi
295c0aa82e Splinter 2024-04-12 21:12:37 +05:30
Manav Rathi
871a0e83cf Fix 2024-04-12 20:59:15 +05:30
Manav Rathi
a56cf55ffa Remove indirection 2024-04-12 20:58:00 +05:30
Manav Rathi
b056cf7f56 Move to newer shared package 2024-04-12 20:55:07 +05:30
Manav Rathi
a2a8be3b19 Scaffold the split 2024-04-12 20:52:33 +05:30
Manav Rathi
41472eb87d Document and structure more 2024-04-12 20:24:48 +05:30
Manav Rathi
c691ad2ac1 Document the plan 2024-04-12 20:11:44 +05:30
Manav Rathi
36f9ca2004 Remove unused param 2024-04-12 19:53:23 +05:30
Manav Rathi
ce869be158 [docs] Add a web-app deployment guide (#1427) 2024-04-12 19:41:12 +05:30
Manav Rathi
29e7653f38 [docs] Add a web-app deployment guide 2024-04-12 19:40:16 +05:30
Manav Rathi
65c7cd2c05 [web] Various changes, moving towards fixing desktop caching (#1424)
The overall aim was to get the caching layer trimmed down to a point
where we can plug in OPFS into it for desktop. This PR doesn't have that
specific change, but it's just me gradually changing things, working
towards that.
2024-04-12 16:28:59 +05:30
Manav Rathi
b061b618e7 Tweaks 2024-04-12 16:16:02 +05:30
Manav Rathi
55632fff64 Use new method 2024-04-12 16:11:34 +05:30
Manav Rathi
401f879424 Consolidate 2024-04-12 16:08:36 +05:30
Manav Rathi
b36175a779 user 2024-04-12 15:40:24 +05:30
Manav Rathi
158186290c Inline 2024-04-12 15:03:53 +05:30
Manav Rathi
15b601b0ff Inline and prune 2024-04-12 14:53:11 +05:30
Manav Rathi
c83dc87d5d Inline the factory 2024-04-12 14:45:03 +05:30
Manav Rathi
495ff99874 Replace enum with TS type 2024-04-12 14:41:33 +05:30
Manav Rathi
cd3ff6f878 Delete is not needed outside 2024-04-12 14:32:50 +05:30
Manav Rathi
b447dedf83 Cache limit is usused 2024-04-12 14:26:41 +05:30
Manav Rathi
bdadc839e0 Remove firefox specific workaround
In a quick (but possibly incomplete) test I wasn't able to reproduce this in an
incognito window. Throwing the error from here has a potential for breaking
things though, I'll try to verify this as I go through the flows individually.
2024-04-12 14:23:56 +05:30
Manav Rathi
02763e3be4 Kill the renderer when we quit the app 2024-04-12 14:05:10 +05:30
Manav Rathi
8045bd1e5a Rename and prune 2024-04-12 14:01:53 +05:30
Manav Rathi
d1d9cd9518 Document 2024-04-12 13:48:16 +05:30
ashilkn
8137825693 fix: explicitly add fill colour for textFields with filled flag set to true for it to remain the same as before using material 3 2024-04-12 13:38:47 +05:30
Manav Rathi
39912d9b35 Remove unused code 2024-04-12 13:25:48 +05:30
Manav Rathi
a80ed32bc3 [web] New translations (#1419)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-12 13:20:52 +05:30
Neeraj Gupta
a9072d7dcb [server] Add todo 2024-04-12 13:16:55 +05:30
github-actions[bot]
c50013350b [mobile] New translations (#1420)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-04-12 12:08:27 +05:30
Manav Rathi
b4a896846c [docs] Add a FAQ for album sharing on self hosted instances (#1422) 2024-04-12 11:31:51 +05:30
Manav Rathi
3e9bbacd2f [docs] Add a FAQ for album sharing on self hosted instances 2024-04-12 11:30:35 +05:30
Manav Rathi
cfec6ca52e Enable the Chromium sandbox 2024-04-12 10:39:00 +05:30
Manav Rathi
98c3e43b70 Inline 2024-04-12 10:28:23 +05:30
Manav Rathi
87905a39f8 Dedup 2024-04-12 10:22:04 +05:30
Manav Rathi
a71ca93696 Inline 2024-04-12 10:15:08 +05:30
Manav Rathi
e651e9d9c7 Inline 2024-04-12 10:11:38 +05:30
Manav Rathi
664cf2157b Reword 2024-04-12 10:07:03 +05:30
Manav Rathi
aace18aba0 Inline and rename 2024-04-12 09:51:08 +05:30
Manav Rathi
4d867898f7 Remove the sharedarraybuffer flag
From my understanding, this was needed for the wasm FFMPEG, which we are no
longer using when running as the desktop app.
2024-04-12 09:43:52 +05:30
Manav Rathi
9c786da73b Tweak 2024-04-12 09:38:38 +05:30
Crowdin Bot
ac534cf163 New Crowdin translations by GitHub Action 2024-04-12 01:37:37 +00:00
Manav Rathi
7fa9e924eb Consolidate 2024-04-11 20:57:54 +05:30
Neeraj Gupta
997debf924 [mob] Minor fixes for semantic search (#1412)
## Description
Fixes two issues
- [x] If remote embedding fetch fails, don't queue backfill for files.
- [x] Fix infinite search loader when user quickly typing search term on
the search screen.

## Tests
2024-04-11 18:07:29 +05:30
Manav Rathi
df41133924 [desktop] Enable ONNX Face ML (#1413)
Indexing + PUT embeddings works now, but most other things are still
WIP.
2024-04-11 16:40:36 +05:30
Manav Rathi
61143c9c62 Cleanup 2024-04-11 16:36:56 +05:30
Manav Rathi
33c84f7a08 Prevent undefined errors 2024-04-11 16:27:27 +05:30
Manav Rathi
320db9f8b7 Fix the putEmbeddings API calls for now 2024-04-11 16:22:38 +05:30
Manav Rathi
e58e96091f Ignore (expected) errors when trying to cache face crops 2024-04-11 16:15:08 +05:30
Neeraj Gupta
de96f108c2 [mob] Clean up + rethrow remote fetch error 2024-04-11 15:40:31 +05:30
Manav Rathi
ef4462553c Fix incorrect typecheck that fails on undefined 2024-04-11 15:35:25 +05:30
Neeraj Gupta
ff4e64819b [mob] Clean up code 2024-04-11 15:31:11 +05:30
Neeraj Gupta
1cc188dd9c [mob][clip] Simplify semantic search + fix infinite search loader 2024-04-11 15:27:22 +05:30
Manav Rathi
ff66a2f44c The ML code runs in workers 2024-04-11 15:27:02 +05:30
Manav Rathi
33e3265db6 Migration for existing configs 2024-04-11 15:21:21 +05:30
Manav Rathi
f5bf776848 lint 2024-04-11 15:06:03 +05:30
Manav Rathi
52727f2255 Also move the embedding 2024-04-11 15:04:18 +05:30
Manav Rathi
9ff4989d81 Cleanup 2024-04-11 14:44:00 +05:30
Manav Rathi
a1d6ef43b4 Roundtrip 2024-04-11 14:37:44 +05:30
Manav Rathi
41f7b30ca0 Wire together 2024-04-11 14:22:52 +05:30
Neeraj Gupta
b8417d1fcc [mob] Skip backfill if remote fetch fails 2024-04-11 14:09:31 +05:30
Manav Rathi
a88f551b6a WIP IPC API 2024-04-11 13:58:52 +05:30
Manav Rathi
2bb9e77e34 Remove unused code 2024-04-11 13:46:34 +05:30
Neeraj Gupta
0fa29b3d7c [mob] iOS build changes 2024-04-11 13:46:26 +05:30
Manav Rathi
7bf8912dbc Duplicate for now 2024-04-11 13:45:02 +05:30
Manav Rathi
2b6047a979 Split 2024-04-11 13:40:35 +05:30
Manav Rathi
d3eb85be8d Split 2024-04-11 13:17:56 +05:30
Manav Rathi
bbdbad5891 [web] Remove tensorflow, and then some (#1411)
Remove all ML code that is not in the immediate release path. We will
resurrect if/when we reintroduce object and text detection, for now we
prune in an attempt to get the face detection release out to completion.
2024-04-11 12:48:47 +05:30
Manav Rathi
6d769773cc tsc 2024-04-11 12:42:18 +05:30
Manav Rathi
d0ffb83d90 Restore 2024-04-11 12:40:49 +05:30
Manav Rathi
6091ad9cfd Remove search UI integration 2024-04-11 12:36:37 +05:30
Manav Rathi
4fff855070 lint-fix 2024-04-11 12:31:42 +05:30
Manav Rathi
e52d17dcfc Last tf 2024-04-11 12:30:07 +05:30
Manav Rathi
485a1e0be4 Remove unused code that required tensorflow 2024-04-11 12:29:06 +05:30
Manav Rathi
da5edc610f Remove more tf 2024-04-11 12:24:03 +05:30
Manav Rathi
1f8ebc0bca Inline 2024-04-11 12:22:09 +05:30
Manav Rathi
e57e44c139 Inline 2024-04-11 12:14:59 +05:30
Manav Rathi
6ba5852876 Prune 2024-04-11 12:10:02 +05:30
Manav Rathi
38e9e901f6 Inline 2024-04-11 12:06:50 +05:30
Manav Rathi
79a975a281 Remove various unused util methods 2024-04-11 12:05:09 +05:30
Manav Rathi
ce566f522d Prune 2024-04-11 11:59:36 +05:30
Manav Rathi
d2e7925c63 Prune 2024-04-11 11:47:07 +05:30
Manav Rathi
006ea085fe Prune 2024-04-11 11:43:05 +05:30
Manav Rathi
03df858dcc Remove ssdMobileNetV2 2024-04-11 11:23:23 +05:30
Manav Rathi
da3b58661a Remove blazeface 2024-04-11 11:21:19 +05:30
Manav Rathi
e6905577c6 Remove blazeface-back 2024-04-11 11:17:15 +05:30
Manav Rathi
e7902c5d83 Remove more tf 2024-04-11 11:15:15 +05:30
Manav Rathi
3182d67ca1 Remove tf utils 2024-04-11 11:13:52 +05:30
Manav Rathi
1ad5cb83f9 Remove object detection related code 2024-04-11 11:09:32 +05:30
Neeraj Gupta
830483ca68 [server] Remove existing scheduledDelete entries if account is recovered 2024-04-11 11:03:57 +05:30
Manav Rathi
24a4c73351 [server] Reduce noise from error logs (#1409)
## Description

## Tests
2024-04-11 10:56:00 +05:30
Neeraj Gupta
02e8861e96 [server] Remove entry from data cleanup on account recovery 2024-04-11 10:54:38 +05:30
Neeraj Gupta
339d728774 [server] Handle no user err gracefully 2024-04-11 10:29:39 +05:30
Neeraj Gupta
fa195af971 [server]Change log level to warning 2024-04-11 10:26:19 +05:30
Neeraj Gupta
ed69de9875 [server]Log invalid password at warn level 2024-04-11 10:21:56 +05:30
Manav Rathi
6079ebbc05 [docs] Enteception (#1408)
Add FAQ about storing Ente 2FA in Ente Auth.
2024-04-11 09:28:16 +05:30
Manav Rathi
17f84398b7 Enteception 2024-04-11 09:26:45 +05:30
Manav Rathi
26c528f359 yarn pretty 2024-04-11 09:03:51 +05:30
Manav Rathi
b6e1c4d3da Inline 2024-04-10 21:36:43 +05:30
Manav Rathi
0ee416c91b git rm -r apps/photos/public/js/{tesseract,tfjs,tflite} 2024-04-10 21:32:22 +05:30
Manav Rathi
3e8d88caf2 git rm -r apps/photos/public/models 2024-04-10 21:31:06 +05:30
Manav Rathi
52342a23cb Remove tensorflow packages
yarn workspace photos remove "@tensorflow-models/coco-ssd" "@tensorflow/tfjs-backend-cpu" "@tensorflow/tfjs-backend-webgl" "@tensorflow/tfjs-converter" "@tensorflow/tfjs-core" "@tensorflow/tfjs-tflite"
2024-04-10 21:29:23 +05:30
Manav Rathi
f6c47138e1 Addedfaq-v1 (#1404) 2024-04-10 21:13:51 +05:30
Manav Rathi
549ad77ac6 [desktop] Various improvements (#1407)
- Restore macOS icon
- Remove unnecessary require
- Spruce dependencies docs
- Use standard import for jpeg-js
- Rearrange files
- Import onnxruntime with TypeScript types
2024-04-10 21:13:01 +05:30
Manav Rathi
500022d4b9 Import onnxruntime with TypeScript types
Refs:
- https://github.com/microsoft/onnxruntime/issues/17979
2024-04-10 21:01:30 +05:30
Manav Rathi
2da9565dcb Rearrange files 2024-04-10 20:44:52 +05:30
Manav Rathi
8f8d93d11e Use standard import for jpeg-js 2024-04-10 20:36:46 +05:30
Manav Rathi
008b6d5186 Spruce dependencies docs 2024-04-10 20:36:46 +05:30
Manav Rathi
d913cbeae5 Remove unnecessary require 2024-04-10 20:32:32 +05:30
Manav Rathi
11451efffd Restore macOS icon
git checkout 42679bc9daa4108681683079f4cb1f2832f4578c~ -- build/icon.icns
2024-04-10 20:32:32 +05:30
Manav Rathi
66c06c7601 [desktop] Build ARM64 variant of Windows (#1405)
Fixes https://github.com/ente-io/ente/issues/1374

A customer reported that the app fails to run on Windows ARM. The error
is coming when trying to load ONNX.

ONNX runtime supports Windows ARM, e.g. see
-
https://www.jsdelivr.com/package/npm/onnxruntime-node?tab=files&path=bin%2Fnapi-v3%2Fwin32
- https://github.com/microsoft/onnxruntime/issues/18078

The issue then seems to be that we're not actually building for Windows
ARM. I'm not sure about this (don't have a Windows ARM machine at hand),
but my theory is that since we don't ask Electron Builder to build for
win arm64, it doesn't copy the corresponding ONNX binary into the
generated bundle.

Other refs:
- https://www.electron.build/cli.html
2024-04-10 19:34:35 +05:30
Manav Rathi
ecf40a70cf [desktop] Build ARM64 variant of Windows
Fixes https://github.com/ente-io/ente/issues/1374

A customer reported that the app fails to run on Windows ARM. The error is
coming when trying to load ONNX.

ONNX runtime supports Windows ARM, e.g. see
- https://www.jsdelivr.com/package/npm/onnxruntime-node?tab=files&path=bin%2Fnapi-v3%2Fwin32
- https://github.com/microsoft/onnxruntime/issues/18078

The issue then seems to be that we're not actually building for Windows ARM. I'm
not sure about this (don't have a Windows ARM machine at hand), but my theory is
that since we don't ask Electron Builder to build for win arm64, it doesn't copy
the corresponding ONNX binary into the generated bundle.

Other refs:
- https://www.electron.build/cli.html
2024-04-10 19:33:37 +05:30
ashilkn
6607fce144 fix not building on iOS 2024-04-10 18:13:27 +05:30
ashilkn
a67da8102d fix breaking change 2024-04-10 18:12:42 +05:30
Manav Rathi
4a69e9260c [web] Import the scaffolding to sync face embeddings from web_face_v2 (#1402)
This PR cherry picks Neeraj's ML related changes from the web_face_v2
branch.

Similar to https://github.com/ente-io/ente/pull/1399, this gets us one
step closer to integrating ONNX-YOLO with our desktop app. But it is not
currently in a usable state (The web app's functionality remains
untouched).
2024-04-10 16:53:48 +05:30
ashilkn
0e9db0828f pub upgrade changes 2024-04-10 16:51:28 +05:30
ashilkn
e3bb6a29d0 Resolve merge conflicts and merge main 2024-04-10 16:43:10 +05:30
Manav Rathi
18937581a5 Lint fixes 2024-04-10 16:41:26 +05:30
Neeraj Gupta
eefac7fd01 [web] Import the scaffolding to sync face embeddings from web_face_v2
This PR cherry picks Neeraj's ML related changes from the web_face_v2 branch.

Similar to https://github.com/ente-io/ente/pull/1399, this gets us one step
closer to integrating ONNX-YOLO with our desktop app. But it is not currently in
a usable state (The web app's functionality remains untouched).
2024-04-10 16:38:12 +05:30
Manav Rathi
334fd61ea3 [desktop] Code tweaks (#1401)
- Remove top level wrapper
- Document the tray icon
- Update to the new product name where possible
2024-04-10 16:30:54 +05:30
Ashil
3542c8eeff [Mobile][Photos] Bump up version to 0.8.78 (#1400) 2024-04-10 16:10:54 +05:30
Manav Rathi
c73c674ee4 Update to the new product name where possible
(without breaking auto-updates)
2024-04-10 16:07:25 +05:30
Manav Rathi
e57e6845a5 Product name 2024-04-10 16:06:04 +05:30
Manav Rathi
3123caea92 Document the tray icon 2024-04-10 16:05:52 +05:30
Manav Rathi
4e3cce51de Inline 2024-04-10 15:59:57 +05:30
Manav Rathi
127bb9988f Remove top level wrapper 2024-04-10 15:55:58 +05:30
Manav Rathi
6fc82ff062 [web] Import ONNX-YOLO face changes from the web_face branch (#1399)
Laurens has made the relevant changes to get ONNX-YOLO face detection
working in a manner where the generated embeddings are the same as what
get generated by the corresponding ML stack in the mobile client.

This PR cherry picks his ML related changes from the branch he was
working in, but leaves out the surrounding scaffolding (We cannot merge
that branch directly because it relies on wasm that we don't need and
don't want to commit to main).

At this point this functionality is correct but not usable - the next
step will be to tie this to the ONNX runtime that we already have on the
Node.js layer of our desktop app.

**Tests**

- yarn dev + smoke test
- yarn build + smoke test
- yarn lint
2024-04-10 15:36:03 +05:30
Manav Rathi
45d22d5863 Undo concurrency change 2024-04-10 15:34:21 +05:30
Vishnu Mohandas
b8be65862f Use sqlite async for fetching files for gallery (#1397)
## Description

- Migrated from `sqflite` to `sqlite_async` when fetching files for
gallery (Home gallery, Collections page, Archive page & Add photos sheet
gallery ). This has made gallery load significantly faster and has
gotten rid of logs like `NativeAlloc concurrent copying GC freed
392872(19MB) AllocSpace objects, 139(4024KB) LOS objects, 38% free,
38MB/62MB, paused 2.868ms,93us total 324.898ms`. The initial load(100
files) and final load completes instantaneously even before the user
starts interacting with the app which has gotten rid of the jank which
was present before on the final load.
- In the 'Add Photos sheet', it takes time for the gallery to load when
using `sqflite` and images are rendered after this delay. After
migrating to `sqlite_async`, since the gallery loads instantly and
images are rendered right after, the animation of the bottom sheet
coming up became a bit janky. To make it smooth, have added a delay to
load gallery only after the bottom sheet is up fully.
 

## Tests
- [x] Did basic testing to make sure the migrations are working fine.
2024-04-10 15:34:06 +05:30
ashilkn
5879f5ed06 Merge branch 'main' into use_sqlite_async_for_fetching_files_for_gallery 2024-04-10 15:24:23 +05:30
Manav Rathi
71e839e9c4 Remove unused minFaceSize 2024-04-10 14:52:23 +05:30
laurenspriem
3eb95bd822 Import ONNX-YOLO face changes from the web_face branch
Laurens has made the relevant changes to get ONNX-YOLO face detection working in
a manner where the generated embeddings are the same as what get generated by
the corresponding ML stack in the mobile client.

This commit cherry picks his ML related changes from the branch he was working
in, but leaves out the surrounding scaffolding (We cannot merge that branch
directly because it relies on wasm that we don't need and don't want to commit
to main).

At this point this functionality is correct but not usable - the next step will
be to tie this to the ONNX runtime that we already have on the Node.js layer of
our desktop app.
2024-04-10 14:41:59 +05:30
Manav Rathi
03176911ee [web] [desktop] Refactoring IPC (#1398)
- IPC cleanup and refactoring
- Log on unhandled errors and promise rejections
2024-04-10 14:08:07 +05:30
Manav Rathi
6ec4cc7c89 Log unhandled errors and promise rejections in the desktop app
Test code:

    setTimeout(() => testFunctionSync(), 5000);
    setTimeout(
        () => testFunction().then(() => console.log("done testFunction")),
        10000,
    );

    const testFunctionSync = () => {
        console.log("sleeping not");
        throw new Error("Handle me");
    };

    const testFunction = async () => {
        console.log("sleeping");
        await fs.mkdir("/tmp/foo", { recursive: true });
        console.log("woke up");
        throw new Error("Handle me");
    };
2024-04-10 13:35:04 +05:30
Manav Rathi
5eda8fd464 Log in other apps too 2024-04-10 13:09:14 +05:30
Manav Rathi
e0fe018f34 Log on unhandled errors and promise rejections
Test code:

    useEffect(() => {
        setTimeout(() => testFunctionSync(), 5000);
    }, []);

    useEffect(() => {
        testFunction();
    }, []);

    const testFunctionSync = () => {
        console.log("sleeping not");
        // sleep(2000);
        console.log("woke up not");
        throw new Error("Handle me");
    };

    const testFunction = async () => {
        console.log("sleeping");
        sleep(2000);
        console.log("woke up");
        throw new Error("Handle me");
    };

Refs:
- https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event
- https://github.com/megahertz/electron-log/blob/master/src/renderer/lib/RendererErrorHandler.js
2024-04-10 13:05:00 +05:30
Manav Rathi
af79f4f0c9 Audit app update functions 2024-04-10 12:32:43 +05:30
ashilkn
d07c4f4d1d Remove code used for debugging/testing 2024-04-10 12:29:01 +05:30
ashilkn
7759d6dcc9 Call super.initState() first in override of initState() in Gallery Widget 2024-04-10 11:47:54 +05:30
ashilkn
af7b533016 Add a delay before gallery loads in 'add photos sheet' to make opening of the bottom sheet jank free 2024-04-10 11:38:30 +05:30
Manav Rathi
3c7277a0b1 onMainWindowFocus 2024-04-10 11:16:21 +05:30
ashilkn
b9b623e3f7 fix: query in getAllLocalAndUploadedFiles doesn't work if limit is null 2024-04-10 11:11:39 +05:30
Manav Rathi
170aef9b30 Rename 2024-04-10 11:06:18 +05:30
Manav Rathi
8bcf77b7f7 IPC keys 2024-04-10 11:03:36 +05:30
Manav Rathi
18606b2358 IPC cleanup 2024-04-10 10:18:06 +05:30
Manav Rathi
ea18608727 [web] Fix SSR build (#1396)
Fixes the following error on the nightly build

Error: Attempting to assert globalThis.electron in a non-electron
context
at r
(/home/runner/work/ente/ente/web/apps/photos/.next/server/chunks/676.js:1:25418)
        ...

    > Build error occurred
    Error: Failed to collect page data for /gallery
at
/home/runner/work/ente/ente/web/node_modules/next/dist/build/utils.js:1258:15
{
      type: 'Error'
    }
2024-04-10 09:55:28 +05:30
Manav Rathi
d828bcb071 [web] Fix SSR build
Fixes the following error on the nightly build

    Error: Attempting to assert globalThis.electron in a non-electron context
        at r (/home/runner/work/ente/ente/web/apps/photos/.next/server/chunks/676.js:1:25418)
        ...

    > Build error occurred
    Error: Failed to collect page data for /gallery
        at /home/runner/work/ente/ente/web/node_modules/next/dist/build/utils.js:1258:15 {
      type: 'Error'
    }
2024-04-10 09:53:30 +05:30
Manav Rathi
f893f12f26 [infra] Limit the maximum size of the nginx stdout logs (#1395)
nginx logs to stdout, which is captured by docker and put into a file at
`/var/lib/docker/containers/<nginx-cont-id>/<id>-json.log`

By default, the size of this file is unbounded. Add a maximum limit of 1
GB to this.

References:
- https://docs.docker.com/config/containers/logging/local/
-
https://stackoverflow.com/questions/31829587/docker-container-logs-taking-all-my-disk-space
2024-04-10 09:41:05 +05:30
Manav Rathi
e2c894f87f [infra] Limit the maximum size of the nginx stdout logs
nginx logs to stdout, which is captured by docker and put into a file at
/var/lib/docker/containers/<nginx-cont-id>/<id>-json.log

By default, the size of this file is unbounded. Add a maximum limit of 1 GB to this.

References:
- https://docs.docker.com/config/containers/logging/local/
- https://stackoverflow.com/questions/31829587/docker-container-logs-taking-all-my-disk-space
2024-04-10 09:23:48 +05:30
Vishnu Mohandas
13a78ce84a [mobile] New translations (#1282)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-04-10 08:03:42 +05:30
Manav Rathi
eebb90fb40 [desktop] Remove GGML (#1394) 2024-04-09 21:36:22 +05:30
Manav Rathi
6a7220ca43 Remove support files for (removed) Windows GGML binary
These were added together with the GGML Windows binary in commit
c3887847bc.
2024-04-09 21:32:41 +05:30
Manav Rathi
e8d224c511 Remove stale ggml reference 2024-04-09 21:29:15 +05:30
Manav Rathi
7dccdecff3 Improve log 2024-04-09 21:24:31 +05:30
Manav Rathi
1214b4ddc3 Web enum cleanup 2024-04-09 21:12:00 +05:30
Manav Rathi
a813de5617 Only ONNX, web 2024-04-09 20:53:08 +05:30
Manav Rathi
4327cfdb23 Only ONNX, desktop 2024-04-09 20:46:27 +05:30
Manav Rathi
b76b57d07e Bye GGML web 2024-04-09 20:07:11 +05:30
Manav Rathi
67e39daff5 Cleanup 2024-04-09 19:59:31 +05:30
Manav Rathi
b02600cb42 Rename 2024-04-09 19:26:20 +05:30
Jay
b7544870d9 Addedfaq 2024-04-09 18:47:19 +05:30
ashilkn
83d122341f Migrate getAllLocalAndUploadedFiles from sqflite to sqlite_async 2024-04-09 17:48:53 +05:30
ashilkn
785beeb9b3 Migrate getFilesInCollection from sqflite to sqlite_async 2024-04-09 17:40:22 +05:30
Vishnu Mohandas
4406307044 Update index.md (#1392) 2024-04-09 17:12:17 +05:30
Vishnu Mohandas
c5208d8160 Update index.md 2024-04-09 17:12:06 +05:30
Manav Rathi
af07de58f6 More docs 2024-04-09 16:36:23 +05:30
Prateek Sunal
cdbb9ab3c3 [fix] include libffi too as it's not included by default (#1387)
## Description

## Tests
2024-04-09 16:24:25 +05:30
Prateek Sunal
f3356147f5 chore: bump version 2024-04-09 16:23:26 +05:30
Manav Rathi
b937102cda A more apropos link 2024-04-09 16:22:02 +05:30
ashilkn
1ec941b022 Migrate getAllPendingOrUploadedFiles from sqflite to sqlite_async 2024-04-09 16:12:37 +05:30
Manav Rathi
544e6be3fd Document 2024-04-09 15:38:59 +05:30
Ashil
628d13ea53 [mobile][photos] Use sqlite async for fetching all files for search (#1391)
## Description

Using [sqlite_async](https://pub.dev/packages/sqlite_async) has
increased query speed by about 5x and has removed GC logs like:
`Background concurrent copying GC freed 424845(20MB) AllocSpace objects,
183(4932KB) LOS objects, 37% free, 39MB/63MB, paused 144us,44us total
128.048ms`, which has improved performance of the app.

Tried using [sqlite3](https://pub.dev/packages/sqlite3), which reduced
query speed by 10x and removed the GC log, but introduced some jank
since it blocks the UI.

Converting the fetched rows to `EnteFile` now runs on an isolate to
avoid blocking the UI.

## Tests

Did manual testing to see difference in jank.
2024-04-09 15:17:48 +05:30
Manav Rathi
4f76cfb912 [web] New translations (#1380)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-09 13:23:39 +05:30
Manav Rathi
9dc4a17593 [web] The great electron renaming (#1390)
- Expose on the globalThis
- Rename the deprecated loggers too
2024-04-09 13:23:06 +05:30
Manav Rathi
b0fbd68d27 Fix errors 2024-04-09 13:13:37 +05:30
Vishnu Mohandas
4d09412f0a v0.8.77 (#1389)
## Description

## Tests
2024-04-09 13:00:56 +05:30
vishnukvmd
99b248f7fa v0.8.77 2024-04-09 13:00:39 +05:30
Neeraj Gupta
b62fc60eb5 [mob] Fix active plan highlight (#1388)
## Description

## Tests
Verified that free plan is highlighted for new sign ups


![image](https://github.com/ente-io/ente/assets/254676/8cf4a30d-57bc-47cc-ac54-acffbddf180c)
2024-04-09 12:59:25 +05:30
Manav Rathi
9127c48787 Remove duplicate files 2024-04-09 12:45:37 +05:30
Manav Rathi
5edca461f7 Final touches 2024-04-09 12:39:37 +05:30
Manav Rathi
4aa3d68e36 Wrap the assertion 2024-04-09 12:36:25 +05:30
Neeraj Gupta
8cb3bf255c [mob] Fix active plan highlight 2024-04-09 12:31:55 +05:30
Manav Rathi
c729516faf Final stretch 2024-04-09 12:21:32 +05:30
Manav Rathi
56ce5c0b0e More transition 2024-04-09 12:17:33 +05:30
Manav Rathi
d441418b5b Remove deprecated loggers 2024-04-09 12:06:46 +05:30
Manav Rathi
0d0e20f7c4 More manual tweaks 2024-04-09 11:58:44 +05:30
Prateek Sunal
7e5f01da18 fix: include libffi too as it's not included by default 2024-04-09 11:52:02 +05:30
Manav Rathi
1dc8f4617e log.error regex replacement
- logError\(e, (".+")\);
- log.error($1, e);

+ a whole bunch of manual tweakings
2024-04-09 11:32:34 +05:30
Neeraj Gupta
b8968d2904 [Server] Fix unique ott constraint for multiple apps (#1386)
## Description

## Tests
  Wrong attempt tracking is working fine
 Same ott can be issued for different app types
 For same app type, unique ott is issued
2024-04-09 11:25:29 +05:30
Neeraj Gupta
46188313ad Minor refactor 2024-04-09 11:20:45 +05:30
Neeraj Gupta
73eacfb30d [server] Use correct app while updating ott table 2024-04-09 11:14:44 +05:30
Neeraj Gupta
6bf22fa864 [server] Fix unique constraint for ott for multiple apps 2024-04-09 11:07:59 +05:30
Manav Rathi
2b7aa372bd Switch 2024-04-09 10:33:54 +05:30
Manav Rathi
3c9f11ee60 Tweak log format 2024-04-09 10:03:30 +05:30
Manav Rathi
72dea7eca6 Start using it 2024-04-09 09:53:28 +05:30
Neeraj Gupta
7c82b57ca0 [mob] Allow manual upload of videos when global video upload is disabled (#1384)
## Description
See commit message.

PS: Did not write code to clean up the list as I don't expect the list
to grow significantly.

## Tests
* Disabled Global Video Upload

**Before the change**
- Clicking on upload icon on video was not resulting in the upload of
the underlying video.

**After the change**
- Upload upload went through successfully
2024-04-09 09:42:21 +05:30
Vishnu Mohandas
9e36032019 [auth] v2.0.54 (#1385) 2024-04-09 09:41:35 +05:30
vishnukvmd
9555c86b5f [auth] v2.0.54 2024-04-09 09:40:29 +05:30
Manav Rathi
54a973c457 Expose on the globalThis
Note that the filename of the .d.ts has to be different from any existing file!
https://stackoverflow.com/questions/59728371/typescript-d-ts-file-not-recognized
2024-04-09 09:37:43 +05:30
Prateek Sunal
d06fede2b5 [FIX] updatedb command (#1383)
## Description

UpdateDb command has localpaths instead of database-root, this fixes
that.
2024-04-09 09:33:21 +05:30
Neeraj Gupta
7cec46ef3d [mob] Allow manual upload of videos when global video upload is disabled 2024-04-09 09:32:37 +05:30
Prateek Sunal
11c80a6fa9 fix: updatedb command 2024-04-09 09:30:50 +05:30
Neeraj Gupta
c6a0af7cbc [mob]Hide file overflow item if no action is available 2024-04-09 09:16:11 +05:30
Vishnu Mohandas
542cd31655 [auth] v2.0.53 (#1381) 2024-04-09 08:32:36 +05:30
vishnukvmd
cdce7d5922 [auth] v2.0.53 2024-04-09 08:32:12 +05:30
Crowdin Bot
af27149a74 New Crowdin translations by GitHub Action 2024-04-09 01:55:54 +00:00
Crowdin Bot
7dee92f44e New Crowdin translations by GitHub Action 2024-04-09 01:37:23 +00:00
Prateek Sunal
a45bf52a4d [FIX] Appimage build (#1377)
## Description

Fix build and unable to locate libtiff.so.5
2024-04-09 06:30:17 +05:30
Prateek Sunal
cc5558db5e fix: reload database of locate 2024-04-08 23:05:11 +05:30
Prateek Sunal
a2dfffd778 fix: app image build 2024-04-08 23:05:11 +05:30
Manav Rathi
f37c46935c [web] [desktop] Consolidate logging (#1376) 2024-04-08 21:10:48 +05:30
Manav Rathi
59bda25be2 Fix log entry format 2024-04-08 21:00:05 +05:30
Manav Rathi
f92a4c2a6e Fix errors 2024-04-08 20:57:13 +05:30
Manav Rathi
92a3650696 Dedup comlink 2024-04-08 20:53:27 +05:30
Manav Rathi
a1c9ceae6b Add temporary gateways 2024-04-08 20:47:47 +05:30
Manav Rathi
3e3712efb3 Transition 2024-04-08 20:43:42 +05:30
Manav Rathi
5339b1aa89 Merge 2024-04-08 20:39:53 +05:30
Manav Rathi
0be549c91b Transition 2024-04-08 20:21:49 +05:30
Manav Rathi
826cacd6bf Reroute 2024-04-08 20:00:24 +05:30
Manav Rathi
90a770c619 WIP 2024-04-08 18:09:08 +05:30
Manav Rathi
f4f041552f Move electron API types to lower layer 2024-04-08 16:51:48 +05:30
Vishnu Mohandas
730da7648c v0.8.76 (#1373) 2024-04-08 15:53:39 +05:30
vishnukvmd
9cface7902 v0.8.76 2024-04-08 15:53:21 +05:30
Vishnu Mohandas
a436a6c766 [auth] v2.0.52 (#1372) 2024-04-08 15:26:55 +05:30
vishnukvmd
ed10e3ec30 [auth] v2.0.52 2024-04-08 15:26:37 +05:30
Prateek Sunal
7d39c0645a [FIX] Compile of AppImage (#1369)
## Description

Appimage github action
2024-04-08 15:12:34 +05:30
Manav Rathi
48f741b792 Tweak docs 2024-04-08 15:02:32 +05:30
Vishnu Mohandas
8a115edef8 Uppercase auth (#1371) 2024-04-08 15:00:10 +05:30
vishnukvmd
1870c2a468 auth -> Ente Auth 2024-04-08 14:59:37 +05:30
vishnukvmd
669f428fa3 ente -> Ente 2024-04-08 14:58:35 +05:30
Manav Rathi
7be4b47e51 Tighten type checking progressively 2024-04-08 14:57:49 +05:30
Vishnu Mohandas
79250b9efa ente -> Ente (#1370) 2024-04-08 14:56:28 +05:30
vishnukvmd
191d19a0fc ente -> Ente 2024-04-08 14:55:28 +05:30
Prateek Sunal
231bc2fc66 fix: complile of appimage 2024-04-08 14:50:49 +05:30
Manav Rathi
f65e738507 Move to types 2024-04-08 14:42:44 +05:30
Manav Rathi
c8089fbb60 Inline uncaptured errors 2024-04-08 14:40:44 +05:30
Prateek Sunal
d10908458e [FIX] RPM build (#1368)
## Description

fixes #1308
2024-04-08 14:36:52 +05:30
Manav Rathi
15e290a993 api => services 2024-04-08 14:31:19 +05:30
Manav Rathi
12fa3be6c5 Event handler cleanup 2024-04-08 14:24:50 +05:30
Manav Rathi
5ae6d7d47b Don't wait for ready before logging startup banner
> The only hint is to call the code in main.ts without waiting for the ready event.
>
> https://github.com/megahertz/electron-log/issues/408
2024-04-08 14:17:02 +05:30
Prateek Sunal
47ab361494 fix: rpm build 2024-04-08 14:16:52 +05:30
Vishnu Mohandas
15d9c7da3b v2.0.51 (#1367) 2024-04-08 14:11:12 +05:30
vishnukvmd
e8f21a7247 v2.0.51 2024-04-08 14:10:52 +05:30
Manav Rathi
18e47b3d4e Synchronize startup banners 2024-04-08 14:09:59 +05:30
Manav Rathi
35736c447d Cleanup 2024-04-08 13:59:40 +05:30
Manav Rathi
c458b429a0 Let the web side log errors for the bridged methods 2024-04-08 13:58:28 +05:30
Vishnu Mohandas
adb796e35f [mobile][photos] Perf test on app init (#1366)
## Description

Test and script for performance profiling the app for a specified
duration from app init using integration testing.
2024-04-08 13:49:07 +05:30
Manav Rathi
c5bb479c4f Consolidate logging / desktop 2024-04-08 13:44:39 +05:30
ashilkn
feb8deb648 add comments 2024-04-08 13:37:00 +05:30
ashilkn
4a4a53f994 Move performance profiling script files to mobile/scripts 2024-04-08 13:33:24 +05:30
ashilkn
504f23fe4e add comments to app_init_test script 2024-04-08 13:30:52 +05:30
ashilkn
f81fb5b626 write perf test for app init 2024-04-08 13:21:29 +05:30
Manav Rathi
78f4f9b42d [web] Capture logs from web workers (#1365)
This started of as a refactoring of our logging layer, but turned into a
bug fix (+ refactorings) when I noticed that the logs in the web/worker
case were not being saved to the on disk file.

Refs:

- https://github.com/GoogleChromeLabs/comlink/issues/506
- https://github.com/GoogleChromeLabs/comlink/issues/568
2024-04-08 13:19:25 +05:30
Manav Rathi
84d21984e0 Test complete
Tested logging from both worker (in web app) and when running in Electron.

Refs:
- https://github.com/GoogleChromeLabs/comlink/issues/506
- https://github.com/GoogleChromeLabs/comlink/issues/568
2024-04-08 13:16:50 +05:30
Manav Rathi
da9a704094 fixing logging in workers WIP 2 2024-04-08 12:52:10 +05:30
Manav Rathi
a96ad6dfa2 WIP 2024-04-08 12:40:03 +05:30
Manav Rathi
44666d6772 [web] New translations (#1364)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-08 09:40:42 +05:30
Crowdin Bot
b3842dab04 New Crowdin translations by GitHub Action 2024-04-08 04:09:44 +00:00
Manav Rathi
873b158718 [web] Miscellaneous tweaks (#1363)
- Clean up environment detection code
- Remove l11n unsafe direct string manipulation
- Inline
- Remove isCanvasBlocked checker
- Remove unused stuff
2024-04-08 09:38:59 +05:30
Manav Rathi
7913d5ec2e lint 2024-04-08 09:37:08 +05:30
Neeraj Gupta
4ceaf7cf13 [auth] Prioritise issuer match in search result order (#1362)
## Description

## Tests
2024-04-08 09:18:42 +05:30
Neeraj Gupta
c728b3b8be [auth] Prioritize issuer match in search result 2024-04-08 09:15:33 +05:30
Neeraj Gupta
510a4a5978 [auth] iOS build changes 2024-04-08 09:15:16 +05:30
Manav Rathi
0b3165b812 Remove unused 2024-04-07 10:58:19 +05:30
Manav Rathi
99579fbf51 Inline 2024-04-07 10:56:15 +05:30
Manav Rathi
75d041dd9c Inline 2024-04-07 10:53:34 +05:30
Manav Rathi
d992085dbd Inline 2024-04-07 10:49:31 +05:30
Manav Rathi
cb6cfee9a3 Inline 2024-04-07 10:49:04 +05:30
Manav Rathi
60321111c2 Remove isCanvasBlocked checker
We don't really support running without canvas access, we need it for image
manipulation. The firefox feature seems poorly implemented -
https://bugzilla.mozilla.org/show_bug.cgi?id=1429865 - and if someone _really_
wishes to not add an exclusion for our open source web app, then they can
download our desktop app.
2024-04-07 10:45:30 +05:30
Manav Rathi
49b5bff042 Inline 2024-04-07 10:29:00 +05:30
Manav Rathi
7c0ab6dd8a Remove l11n unsafe direct string manipulation 2024-04-07 10:23:20 +05:30
Manav Rathi
01e6e79819 Cannot be a compile time constant 2024-04-07 10:18:30 +05:30
Manav Rathi
e5b2d737b4 Clean up environment detection code 2024-04-07 10:03:28 +05:30
Manav Rathi
5e6f057c4c [web] Add required transitive dependency of MUI datepicker (#1357)
Previously this was coming from react-datepicker that was otherwise
unused and thus removed.

Use the same major version as we had previously.

Ref:

https://stackoverflow.com/questions/71037974/module-not-found-error-cant-resolve-date-fns-adddays-in-c-users
2024-04-07 09:30:16 +05:30
Manav Rathi
3cb51184b3 [web] Add required transitive dependency of MUI datepicker
Previously this was coming from react-datepicker that was otherwise unused and thus removed.

Use the same major version as we had previously.

Ref:
https://stackoverflow.com/questions/71037974/module-not-found-error-cant-resolve-date-fns-adddays-in-c-users
2024-04-07 09:26:52 +05:30
Manav Rathi
9025ad3c57 [web] Remove unused ffmpeg from cast (#1355)
- Also attempt to reenable tsc, since this was previously failing at
this ffmpeg step. But that's still not possible, the photos package tsc
trips up at the same step
- Remove some other unused dependencies too
2024-04-07 08:45:06 +05:30
Manav Rathi
d317da6536 Remove unused package react-datepicker
+ another unused type
+ an transitive from code
2024-04-07 08:42:27 +05:30
Manav Rathi
0071182721 Revert "Attempt to reenable tsc"
This reverts commit 5700b101b2. We still need to
fix it in photos before re-enabling this.
2024-04-07 08:28:13 +05:30
Manav Rathi
5700b101b2 Attempt to reenable tsc
Partially reverts 6333792d64
2024-04-07 08:25:16 +05:30
Manav Rathi
02207ca96c Remove unused ffmpeg from cast 2024-04-07 08:18:36 +05:30
Manav Rathi
ddb2952b6a [docs] yarn pretty (#1349) 2024-04-06 22:19:43 +05:30
Manav Rathi
c983af0dea [docs] yarn pretty 2024-04-06 22:17:34 +05:30
Manav Rathi
363e2b116b [docs] Add more details in the server admin docs (#1348) 2024-04-06 22:15:56 +05:30
Manav Rathi
d8b7dd06f6 [docs] Add more details in the server admin docs 2024-04-06 22:14:19 +05:30
Manav Rathi
9b73cd2176 [docs] Add a troubleshooting guide for failing uploads (#1346) 2024-04-06 20:53:40 +05:30
Manav Rathi
1205b864d2 [docs] Add a troubleshooting guide for failing uploads 2024-04-06 20:49:04 +05:30
Manav Rathi
54a1b3ca3e [web] Fix cast CSS (#1345)
- Cleanups, remove unnecessary sass dependency
- Fix the height in the CSS
2024-04-06 19:28:36 +05:30
Manav Rathi
4b074f4475 Fix the CSS for cast 2024-04-06 19:15:42 +05:30
Manav Rathi
b650372d35 Cleanupxs 2024-04-06 19:09:02 +05:30
Manav Rathi
04c0fd0617 [web] New translations (#1344)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-06 12:42:49 +05:30
Crowdin Bot
e779ae5189 New Crowdin translations by GitHub Action 2024-04-06 07:12:09 +00:00
Manav Rathi
14fe0a46b0 [web] Bundle translations but lazily (#1343)
## Description

Muchos faster, muchos caching, and no duplication.

**Tested by**

Running locally in both dev and preview. Only the current language +
English is fetched. It can be made even faster by prebundling the
English translations as described in
https://github.com/i18next/i18next-resources-to-backend, but we can
profile first and see if that's even needed.
2024-04-06 12:41:25 +05:30
Manav Rathi
568f4540e3 Remove scripts
It has done its job, let it rest in peace
2024-04-06 12:12:15 +05:30
Manav Rathi
6bff42ad9b Remove unused keys 2024-04-06 12:11:29 +05:30
Manav Rathi
d00211964b Improve heuristic 2024-04-06 11:45:05 +05:30
Manav Rathi
8695f46b43 Improve script for finding unused keys 2024-04-06 11:43:56 +05:30
Manav Rathi
8020d83ced Fix crowdin paths 2024-04-06 11:30:31 +05:30
Manav Rathi
121df66ada Cleanup 2024-04-06 11:19:14 +05:30
Manav Rathi
a98a29800b [web] Bundle translations but load them lazily
Refs:
- https://github.com/i18next/i18next-resources-to-backend
- https://stackoverflow.com/questions/77251750/how-to-implement-lazy-loading-translations-in-i18next-with-react
- https://github.com/i18next/react-i18next/issues/525
- https://gist.github.com/SimeonC/6a738467c691eef7f21ebf96918cd95f
- https://www.i18next.com/overview/plugins-and-utils
2024-04-06 11:06:29 +05:30
Vishnu Mohandas
afe94b72ba [meta] Call out custom icons as a good starter task (#1342) 2024-04-06 08:46:23 +05:30
Manav Rathi
167e5a95ca [meta] Call out custom icons as a good starter task 2024-04-06 08:44:50 +05:30
Vishnu Mohandas
2bd02eac4b [FIX] Smart auth revert, issue #1279 (#1340)
## Description

Revert Pinput version to fix smart_auth and hence the fdroid build.

Fixes #1279
2024-04-05 23:17:26 +05:30
Prateek Sunal
bfc147b4d1 fix: revert pinput version 2024-04-05 23:13:40 +05:30
Manav Rathi
16cb63edfe [web] Run tsc when linting (#1339) 2024-04-05 22:10:07 +05:30
Manav Rathi
6333792d64 Temporarily disable tsc on CI 2024-04-05 22:03:39 +05:30
Manav Rathi
69bd822499 Attempt to fix tsc warning on CI
Error: src/services/wasm/ffmpeg.ts(6,38): error TS2307: Cannot find module 'ffmpeg-wasm' or its corresponding type declarations.
2024-04-05 21:59:18 +05:30
Manav Rathi
6a31331ac4 Fix lint issue when running on CI
> cast
    $ /home/runner/work/ente/ente/web/node_modules/.bin/tsc
    Error: src/components/FilledCircleCheck/index.tsx(2,20): error TS2307: Cannot find module './FilledCircleCheck.module.scss' or its corresponding type declarations.
2024-04-05 21:56:46 +05:30
Manav Rathi
e16834e52e Remove unused styled jsx tag
This caused the lint to fail on CI

    > auth
    $ /home/runner/work/ente/ente/web/node_modules/.bin/tsc
    Error: src/pages/auth/index.tsx(125,20): error TS2322: Type '{ children: string; jsx: true; }' is not assignable to type 'ClassAttributes<HTMLStyleElement> & StyleHTMLAttributes<HTMLStyleElement> & { css?: Interpolation<Theme>; }'.
      Property 'jsx' does not exist on type 'ClassAttributes<HTMLStyleElement> & StyleHTMLAttributes<HTMLStyleElement> & { css?: Interpolation<Theme>; }'.
    error Command failed with exit code 2.

From reading the code, this CSS doesn't seem to be coming into effect. Then I
also did a test to verify that the auth app is correctly switching to a 2 column
layout even without this.
2024-04-05 21:39:52 +05:30
Manav Rathi
10b0d9f533 Fix the yarn lint 2024-04-05 21:22:44 +05:30
Manav Rathi
791cc61ca7 Fix more leftover issues 2024-04-05 21:18:26 +05:30
Manav Rathi
7a674dcf95 lint-fix 2024-04-05 21:10:59 +05:30
Manav Rathi
5c313fb87d tsc when linting 2024-04-05 21:10:20 +05:30
Manav Rathi
411984ebdc Fix lint errors 2024-04-05 21:09:47 +05:30
Manav Rathi
8764e5cf4d [web] Miscellaneous code improvements (#1336) 2024-04-05 20:50:56 +05:30
Manav Rathi
cf27f3236c lint-fix 2024-04-05 20:48:23 +05:30
Manav Rathi
42a59f2fb5 Consolidate and deduplicate 2024-04-05 20:35:22 +05:30
Manav Rathi
7807d3a413 Inline 2024-04-05 20:03:23 +05:30
Manav Rathi
461430a972 Move up from shared 2024-04-05 20:01:28 +05:30
Manav Rathi
0b39759ad9 Inline 2024-04-05 19:58:45 +05:30
Manav Rathi
fe6215d0fd Replace context entry with useRouter 2024-04-05 19:58:45 +05:30
Manav Rathi
e680970cdf Inline 2024-04-05 19:58:45 +05:30
Manav Rathi
63387d8819 Use regular image
This is the only place we were using next/image
2024-04-05 19:58:45 +05:30
Manav Rathi
356ad6f004 Use regular link
Removing unnecessary dependencies on next specific components
2024-04-05 19:58:45 +05:30
Manav Rathi
7be2c66fb6 [server] Delete the subscriber on listmonk when needed (#1331) 2024-04-05 17:14:09 +05:30
vishnukvmd
c32badc82c [server] Delete the subscriber on listmonk when needed 2024-04-05 17:12:06 +05:30
Manav Rathi
dbdad18c96 [web] Uncomment accidentally activated env vars for localhost defaults (#1330) 2024-04-05 17:09:24 +05:30
Manav Rathi
ae51531bd0 [web] Uncomment accidentally activated env vars for localhost defaults 2024-04-05 17:08:47 +05:30
Manav Rathi
4ad060c4e4 [infra] Fix the listmonk upgrade invocation (#1329)
Tested on the actual instance
2024-04-05 17:03:03 +05:30
Manav Rathi
5266e5d1dc [infra] Fix the listmonk upgrade invocation 2024-04-05 16:51:08 +05:30
Vishnu Mohandas
5904e3dd2c [server] Allow a configurable sslmode (#1327)
Tested that

- [x] Existing defaults remain unchanged
- [x] Setting db.sslmode = require in museum.yaml is honoured (in the
docker compose environment, that causes the db connection to fail as
expected)
2024-04-05 13:58:17 +05:30
Manav Rathi
74decc32de [server] Allow a configurable sslmode
Tested

- Existing defaults remain unchanged
- Setting db.sslmode = require in museum.yaml is honoured (in the docker compose environment, that causes the db connection to fail as expected)
2024-04-05 11:52:22 +05:30
Vishnu Mohandas
5e8f41cbfe [mob] Change share page copy (#1323)
## Description

I thought the "Collect photos" line and the download icon in the share
page looked very confusing:

![old_share_page_copy](https://github.com/ente-io/ente/assets/81471280/cb6a8415-e3a0-403e-abd3-e94b6256a572)

So I changed the icon and copy slightly:

![new_share_page_copy](https://github.com/ente-io/ente/assets/81471280/2480bb43-21fb-487a-af00-c473dbe7439c)


## Tests

Just a copy change, no tests.
2024-04-05 11:48:29 +05:30
Manav Rathi
360aa2903f [web] Remove leftover console log (#1325) 2024-04-05 11:35:30 +05:30
Manav Rathi
0d48284b4f [web] Remove leftover console log 2024-04-05 11:33:57 +05:30
Manav Rathi
687efe506a [web] Fix an regression introduced in the previous PR (#1324)
Use the implementation instead of the accidental infinite loop
2024-04-05 11:32:32 +05:30
Manav Rathi
e0cfa36f08 Use the implementation instead of the accidental infinite loop 2024-04-05 10:51:04 +05:30
laurenspriem
858ba88c65 [mob] Change share page copy 2024-04-05 10:48:37 +05:30
Manav Rathi
e7e8ded1ed [web] Miscellaneous improvements (#1322)
- Remove unused knobs
- Inline
- Initial-scale=1 is still recommended
- Remove custom _document (with a longer term vision of next => vite)
2024-04-05 10:17:04 +05:30
Manav Rathi
fa7cbaea18 Remove custom _document
Looking towards a longer term transition out of next
2024-04-05 10:09:37 +05:30
Manav Rathi
9785bbcb26 We don't have full web app support yet
Plus, Apple doesn't do much for PWAs anyway. One reason for removing this until
we test it out in actuality is because there were reports of the semi-PWA
caching causing issues.
2024-04-05 09:38:48 +05:30
Manav Rathi
039387a84e Initial-scale=1 is still recommended
Ref:
https://teamtreehouse.com/community/is-initialscale-not-needed
2024-04-05 09:36:18 +05:30
Manav Rathi
866b52b002 Inline constant 2024-04-05 09:26:30 +05:30
Manav Rathi
2c098904fb Inline 2024-04-05 09:13:38 +05:30
Manav Rathi
a68dce35f6 Remove unused knob 2024-04-05 09:08:56 +05:30
Manav Rathi
1d0f30ad91 These values were never customized 2024-04-05 09:08:02 +05:30
Manav Rathi
7374fe2ecc [web] Fix nightly build (#1321)
Got broken by yesterday's changes to payments.
2024-04-05 08:58:17 +05:30
Manav Rathi
55454f9454 [web] Fix nightly build
Got broken by yesterday's changes to payments.
2024-04-05 08:57:24 +05:30
Manav Rathi
1aa39e83d7 [server] Build ARM images when publishing to ghcr.io (#1320)
Untested yet, will test alongside the next publish

Requested in https://github.com/ente-io/ente/discussions/1305
2024-04-04 21:59:47 +05:30
Manav Rathi
d84ee7223a [server] Build ARM images when publishing 2024-04-04 21:57:44 +05:30
Manav Rathi
4e5fcebb95 [infra] Setup listmonk (#1319) 2024-04-04 21:36:02 +05:30
Manav Rathi
e170b6811d Tweaks
Refs:
https://github.com/knadh/listmonk/blob/master/listmonk-simple.service#L16
2024-04-04 21:27:47 +05:30
Manav Rathi
3ed2186dcf Initial cut of listmonk setup 2024-04-04 20:23:25 +05:30
Manav Rathi
b6177a5bc3 Listmonk mailing list control (#1289)
## Description
Add listmonk mailing list subscribe and unsubscribe

## Tests
Tested getSubscriberID, unsubscribe, and subscribe using a locally
running listmonk server with different parameters.
- [x] A new subscriber is created and added to the listmonk campaign
mailing list on listmonkSubscribe() for the given list IDs
- [x] Subscriber is removed from listmonk campaign mailing list on
listmonkUnsubscribe() for the given list IDs
- [x] The old email address is unsubscribed, and the new email is
subscribed when a user updates the email
2024-04-04 17:21:55 +05:30
Manav Rathi
27410b2da9 [web] Add an example fetch to staff (#1315)
- Add schema validation of the response
- Add an example fetch
2024-04-04 16:22:49 +05:30
Manav Rathi
ae061d2a44 fetch 2024-04-04 16:19:46 +05:30
Manav Rathi
d9d03d8451 Add schema validation of the response 2024-04-04 16:12:39 +05:30
Manav Rathi
2f5abb6318 [web] Scaffold staff app (#1314) 2024-04-04 15:50:10 +05:30
Manav Rathi
e53c923675 Lint fix + update URL 2024-04-04 15:44:03 +05:30
Manav Rathi
39228270c1 Deploy 2024-04-04 15:40:17 +05:30
Manav Rathi
384ec365e8 Add starter staff app 2024-04-04 15:25:38 +05:30
Vishnu Mohandas
b2da2c7e88 Setup Triple-T configuration for F-Droid (#1313)
Potential fix for https://github.com/ente-io/ente/issues/1172.
2024-04-04 15:16:45 +05:30
vishnukvmd
c25cc6f8a4 Setup Triple-T configuration for F-Droid 2024-04-04 15:15:59 +05:30
Vishnu Mohandas
b2cf6be5f5 [photos] v0.8.75 (#1312) 2024-04-04 14:50:54 +05:30
vishnukvmd
fce68ba1be [photos] v0.8.75 2024-04-04 14:50:22 +05:30
Manav Rathi
29550317f7 Enable the jsx-runtime plugin for vite's ESLint
This prevents it complaining about a missing React import.

Enabling this is recommended by the vite starter itself:

> Install
  [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and
  add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends`
  list
2024-04-04 14:46:41 +05:30
Manav Rathi
876c5800f9 [web] Convert payments app to Vite (#1311)
This is the culmination of the previous few PRs. The payments app now
uses vite, which is what we want to give out a real shot for the smaller
of our apps.

**Tested by**

Local setup, and subscribing to a plan.
2024-04-04 14:36:36 +05:30
Manav Rathi
608cb6c85e Prevent double rendering in strict mode
The double invocation during dev mode, while harmless, is confusing, so add an
additional small check to insure this only runs once.
2024-04-04 14:25:04 +05:30
Manav Rathi
712b99b8f3 Fix lint issue 2024-04-04 14:15:42 +05:30
Manav Rathi
935e47fbca Fix the payments eslint 2024-04-04 14:10:16 +05:30
Manav Rathi
fcb26d39f1 Don't need default export 2024-04-04 14:02:31 +05:30
Manav Rathi
ff6d0d32cf Remove unused 404 handler
The default appType == 'spa' in vite redirects all (unclaimed) paths to /index.html.

If needed, this can be disabled:
https://stackoverflow.com/questions/69701743/how-can-i-configure-vites-dev-server-to-give-404-errors/69711988#69711988
2024-04-04 13:58:30 +05:30
Vishnu Mohandas
52c47234fd [Photos] Allow for configuring a custom server (#1302)
## Description
Users can now tap on the onboarding screen 7 times to bring up a page
where they can configure the endpoint the app should be connecting to.

![photos-selfhost](https://github.com/ente-io/ente/assets/1161789/42fda09a-07e4-4c4e-a658-ec4a2d3f1848)

## Tests
- [x] Verified that production flows are working as expected
- [x] Verified that configuring the endpoint to a local instance lets
you
  - [x] Connect to that instance
  - [x] Create an account
  - [x] Upload a photo
  - [x] Logout and log back in
2024-04-04 13:41:26 +05:30
Manav Rathi
756050ae8c Fix compilation 2024-04-04 13:02:08 +05:30
Manav Rathi
a2d39a46be [server] nginx configuration improvements (#1310)
- Use keepalives
- Update deprecated http2 syntax
- Document how to check config

Refs:
-
https://www.nginx.com/blog/avoiding-top-10-nginx-configuration-mistakes/#no-keepalives
- https://github.com/nginxinc/kubernetes-ingress/issues/4237
-
https://stackoverflow.com/questions/65944578/how-to-get-nginx-running-in-docker-to-reload-nginx-conf-configuration
2024-04-04 12:42:10 +05:30
Manav Rathi
407eca5414 [server] nginx configuration improvements
- Use keepalives
- Update deprecated http2 syntax
- Document how to check config

Refs:
- https://www.nginx.com/blog/avoiding-top-10-nginx-configuration-mistakes/#no-keepalives
- https://github.com/nginxinc/kubernetes-ingress/issues/4237
- https://stackoverflow.com/questions/65944578/how-to-get-nginx-running-in-docker-to-reload-nginx-conf-configuration
2024-04-04 12:36:39 +05:30
Manav Rathi
87dc7d76ca Remove middleman package, to get it to compile 2024-04-04 11:36:20 +05:30
Ashil
8b643549fe [mobile][photos] Remove unused global keys (#1309) 2024-04-04 11:29:23 +05:30
Vishal
d8190926fd Change if-else 2024-04-04 11:24:13 +05:30
Manav Rathi
4255e48abb Convert payments app to use Vite - Part 1
(Doesn't compile)
2024-04-04 11:10:34 +05:30
Manav Rathi
a8a5cc8b59 Inline spinner 2024-04-04 09:55:52 +05:30
Manav Rathi
949a42004f Remove the need for a separate page 2024-04-04 09:53:11 +05:30
Manav Rathi
cb94dd8b42 [web] Refactor payments (#1304)
This is a reduction in code generally before we give a shot to using
vite for Payments. Once that is done, will do an end-to-end test of the
payments pages on localhost.
2024-04-03 21:44:08 +05:30
Manav Rathi
56d500f4e8 Keep React in scope 2024-04-03 21:41:03 +05:30
Manav Rathi
7a41ba43a5 Another cleanup of billing-service 2024-04-03 21:32:38 +05:30
Manav Rathi
7a729183e2 Cleanup the pages 2024-04-03 20:03:02 +05:30
Manav Rathi
aa5422db6c Clean up CSS 2024-04-03 19:54:16 +05:30
Manav Rathi
c0fee7bc91 Clean up strings 2024-04-03 19:51:01 +05:30
Manav Rathi
1411ca6fad Continue refactoring 2024-04-03 19:46:15 +05:30
Vishal
92715b658c Change API parameter 2024-04-03 19:24:12 +05:30
Vishal
2ddf4c897c Rectify if else 2024-04-03 18:25:41 +05:30
Vishal
ffefae89a6 Redefine struct 2024-04-03 17:50:53 +05:30
vishnukvmd
9d7a342aa9 Ensure widget is updated when endpoint changes 2024-04-03 17:34:45 +05:30
vishnukvmd
ee33a3229f Update landing page to provide an option to update the app's endpoint 2024-04-03 17:24:44 +05:30
vishnukvmd
54c4862e71 Add widget that renders the current endpoint app is connecting to 2024-04-03 17:24:26 +05:30
vishnukvmd
b97839adae Update strings 2024-04-03 17:24:01 +05:30
vishnukvmd
37c4295df9 Update NetworkClient when configuration changes 2024-04-03 17:23:54 +05:30
vishnukvmd
089be79688 Add API within Configuration to update the endpoint 2024-04-03 17:23:23 +05:30
vishnukvmd
0034d880f9 Initialize Configuration before Network 2024-04-03 17:23:00 +05:30
vishnukvmd
81bdc0fe73 Add strings 2024-04-03 17:22:34 +05:30
vishnukvmd
76dca4d819 Update iOS config 2024-04-03 17:22:22 +05:30
Manav Rathi
d0f1bbfca7 Refactor billing service 2024-04-03 17:22:00 +05:30
Manav Rathi
8a00f1b85f Remove custom errors indirection 2024-04-03 15:45:20 +05:30
Manav Rathi
f10f751a2f Inline local storage calls
The methods are trivial, and we cannot centralize the keys since they will be
different for different apps. So an abstraction for this is not beneficial.

Also move the next specific dev build check to @/next
2024-04-03 14:21:11 +05:30
Manav Rathi
d28daece8a ignorePatters seems to be inherited (as we wished) when extending 2024-04-03 13:48:41 +05:30
Manav Rathi
24bce96d71 Shorten 2024-04-03 13:44:30 +05:30
Manav Rathi
ad6dea2ecb prettier markdown 2024-04-03 13:39:44 +05:30
Manav Rathi
212dcfb88a Tinker 2024-04-03 13:32:05 +05:30
Manav Rathi
a689aca4a6 Remove the eslint stuff from docs
(trying to remove the eslint-disables throughout)
2024-04-03 13:26:46 +05:30
Manav Rathi
e2fd88bff0 Remove (possibly) unnecessary tsconfigRootDir
Let's see what breaks
2024-04-03 13:15:12 +05:30
Manav Rathi
764b6bf2f3 Move react setup to react specific file 2024-04-03 13:02:09 +05:30
Vishal
39ec761949 fix warnings 2024-04-03 12:57:37 +05:30
Vishal
01f842c445 Rearrange methods 2024-04-03 12:41:18 +05:30
Neeraj Gupta
2fe703df92 [server] Increase embedding fetch limit (#1300)
## Description

Also use different semaphore than existing diff API

## Tests
2024-04-03 12:38:34 +05:30
Vishal
18c48c7e0a Fix typo in comment 2024-04-03 11:14:55 +05:30
Manav Rathi
ca688d0d46 [server] Add a notice that minio is only for getting started (#1299)
From our Discord, someone commented

> if minio's cautions about Single-Node, Single-Drive are to be taken
seriously:
>
> "SNSD deployments use a zero-parity erasure coded backend that
provides no
added reliability or availability beyond what the underlying storage
volume
  implements. These deployments are best suited for local testing and
evaluation, or for small-scale data workloads that do not have
availability or
  performance requirements."

MinIO was never meant as a production replacement, it was only to make
it easy
for people to get started. So add a notice in the docs re this.
2024-04-03 10:04:20 +05:30
Manav Rathi
885308471f [server] Add a notice that minio is only for getting started
From our Discord, someone commented

> if minio's cautions about Single-Node, Single-Drive are to be taken seriously:
>
> "SNSD deployments use a zero-parity erasure coded backend that provides no
  added reliability or availability beyond what the underlying storage volume
  implements. These deployments are best suited for local testing and
  evaluation, or for small-scale data workloads that do not have availability or
  performance requirements."

MinIO was never meant as a production replacement, it was only to make it easy
for people to get started. So add a notice in the docs re this.
2024-04-03 10:01:48 +05:30
Vishnu Mohandas
125f7bfece Update export docs 2024-04-03 08:52:34 +05:30
Neeraj Gupta
011aee20d5 [server] Fix handling of redundant auth update (#1298)
## Description
When client tries to send update request with same data, the actual db
update doesn't happen. This was resulting in 5xx error.

## Tests
2024-04-03 07:13:44 +05:30
Neeraj Gupta
85778bcdaa [server] Fix handling of redundant auth update 2024-04-03 07:05:03 +05:30
Manav Rathi
43e97d225e [web] Restructure shared package layouts (#1294)
- Merge @/ui into @/next
- Restructure eslint config
2024-04-02 20:55:05 +05:30
Manav Rathi
b3a86874db yarn.lock 2024-04-02 20:47:35 +05:30
Manav Rathi
5c1ed5be8f Restructure eslint config 2024-04-02 20:44:57 +05:30
Manav Rathi
14fde54d87 Not really 2024-04-02 20:04:23 +05:30
Manav Rathi
26b35cec9e Merge @/ui into @/next 2024-04-02 19:58:42 +05:30
Vishal
b8100b1273 rename functions 2024-04-02 17:45:30 +05:30
Vishal
a5fcbbf901 add listmonk mailing list control (subscribe/usubscribe) 2024-04-02 17:36:53 +05:30
ashilkn
07808d6139 Merge branch 'main' into f-droid 2024-04-02 17:22:34 +05:30
Manav Rathi
6213628aee [web] Prefer .local files for local only configuration (#1280)
Refs: https://vitejs.dev/guide/env-and-mode.html
2024-04-02 17:22:32 +05:30
Manav Rathi
a7625cd83d [web] Enable Russian (#1288)
The translation percentage of Russian in crowdin is now 100%, it's time
to enable it as an option in the UI.

A big thank you to the translators ❤️
2024-04-02 17:22:15 +05:30
Manav Rathi
cc90dd7ba5 [web] Enable Russian
The translation percentage of Russian in crowdin is now 100%, it's time to
enable it as an option in the UI.

A big thank you to the translators.
2024-04-02 17:16:33 +05:30
Manav Rathi
b3630f9543 [desktop] Prevent the desktop app from getting stuck on viewing openstreetmap info (#1287)
Open the link in a new tab. This prevents the desktop app from getting
into a state where the user cannot navigate back.

Tested on the web app and desktop app.
2024-04-02 17:10:16 +05:30
Manav Rathi
9cb289e002 [desktop] Prevent the desktop app from getting stuck on viewing openstreetmap info
Open the link in a new tab. This prevents the desktop app from getting into a
state where the user cannot navigate back.
2024-04-02 17:05:23 +05:30
Ashil
1800ad0a1f [Mobile][Photos] Bump up version to v0.8.74 (#1284) 2024-04-02 17:02:01 +05:30
Manav Rathi
3230b9275e [web] New translations (#1281)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-04-02 17:00:20 +05:30
Crowdin Bot
ce5627f04c New Crowdin translations by GitHub Action 2024-04-02 11:28:47 +00:00
Manav Rathi
8dd7c100af [web] Make the cast link clickable (#1286)
Tested locally.
2024-04-02 16:53:03 +05:30
Manav Rathi
2e7dcc6bc2 Make the cast link clickable 2024-04-02 16:51:27 +05:30
Manav Rathi
0e1bdfe07e Support arbitrary ReactNodes as title 2024-04-02 14:38:37 +05:30
Vishnu Mohandas
1e106d707f [mobile][photos] Fix colours in loading screen on light theme when viewing photos (#1283)
## Description

Before


https://github.com/ente-io/ente/assets/77285023/75304321-1fa4-4d61-9ad1-cc87ade62f92

After



https://github.com/ente-io/ente/assets/77285023/55b204b2-773c-42db-a03c-c9879f33548b
2024-04-02 14:01:41 +05:30
ashilkn
0053e814c8 nit: remove unnecessary clipping 2024-04-02 13:49:41 +05:30
ashilkn
53184da7fb fix: loading icon's color in light theme when viewing images 2024-04-02 13:49:05 +05:30
ashilkn
165bcb5c6e fix: white bg for loading state when viewing images, turned it to black.
when swiping on light theme, this comes up a 'white flash' on the right which looked odd. We use black bg when viewing images.
2024-04-02 13:47:57 +05:30
Vishnu Mohandas
d6316a1724 [mobile][photos] Prepare for release v0.8.73 (#1278) 2024-04-02 09:06:45 +05:30
Manav Rathi
b95fc54adb [web] Prefer .local files for local only configuration
Refs:
https://vitejs.dev/guide/env-and-mode.html
2024-04-01 19:59:02 +05:30
ashilkn
bc0a453cbc Merge branch 'main' into prepare_for_release_v0.8.73 2024-04-01 18:41:24 +05:30
ashilkn
166e9ad1bf Update change log 2024-04-01 18:41:21 +05:30
ashilkn
841921a732 bump up version to v0.8.73 2024-04-01 18:38:17 +05:30
Vishnu Mohandas
769da989c4 [mobile][photos] Do not upload files if ACCESS_MEDIA_LOCATION is not granted (#1275)
## Tests

Tested with and without granting `ACCESS_MEDIA_LOCATION`.
2024-04-01 18:28:37 +05:30
Vishnu Mohandas
3e917bd855 [photos][mobile] Add support for viewing HEIC images with proXDR (#1171)
## Description

New Oneplus devices have a "ProXDR" feature when viewing images. These
images (when in HEIC format) decode fine on devices that supports
ProXDR, but fails to decode on other devices.

So if decoding fails, we convert it to a JPEG and use that image for
viewing it.

## Tests

- [x] Tries converting to jpeg only if decoding fails
- [x] If converting also fails, the behaviour remains the same as before
when decoding fails.
2024-04-01 18:28:28 +05:30
Manav Rathi
7f1730b56c [web] Fix and standardize MUI / emotion imports (#1277)
- Always import from `@mui/material`
- Component selector API doesn't work, live with it and document it
2024-04-01 17:18:05 +05:30
Manav Rathi
25e762ba57 Remove mui from list of transpiled packages
- I can't see this mentioned anywhere in the docs
- Removing it didn't break anything dev / preview
2024-04-01 17:13:06 +05:30
Manav Rathi
d5f294980e Remove use of emotion from payments 2024-04-01 17:08:54 +05:30
Manav Rathi
1e410a82f2 Remove stray use of @mui/system 2024-04-01 17:05:05 +05:30
ashilkn
d013519655 refactor 2024-04-01 16:59:42 +05:30
Manav Rathi
3b3d314f9c Remove stale import from styled-engine 2024-04-01 16:52:57 +05:30
ashilkn
855d362cca Merge branch 'main' into handle_proxdr_image_viewing 2024-04-01 16:43:19 +05:30
Manav Rathi
eced463f6f Investigate and explain why component selectors don't work with Next vanilla
Refs:
- https://github.com/mui/material-ui/issues/27380#issuecomment-928973157
- https://codesandbox.io/s/hopeful-browser-4q17t5?file=/README.md
- https://mui.com/system/styled/#how-to-use-components-selector-api
- https://github.com/vercel/next.js/issues/46973
2024-04-01 16:43:10 +05:30
Ashil
f8febe12df [mobile][photos] Reupload files with missing GPS data (#1263)
## Description

- Fixes corrupt files (missing GPS data) that were uploaded due to [this
issue](https://github.com/ente-io/ente/pull/1261)
- Refactor

## Tests

Tested and working
- Uploaded two file from a build that has missing permission for
`ACCESS_MEDIA_LOCATION` and GPS data is missing.
- Created a new build with changes in this PR.
- Deleted the file from device. 
- Remote file has GPS data when checked from file info.

---------

Co-authored-by: Neeraj Gupta <254676+ua741@users.noreply.github.com>
2024-04-01 16:41:33 +05:30
ashilkn
0c44d1b789 remove unneccesary check 2024-04-01 16:18:40 +05:30
ashilkn
f74af4199d only verify media location access if platform is android 2024-04-01 16:14:29 +05:30
Manav Rathi
9b27cac465 Remove @emotion/server
It is not mentioned as a dependency in the SSR page

> For v10 and above, SSR just works in Next.js.
>
> https://emotion.sh/docs/ssr

Tested by - yarn dev, yarn preview:photos
2024-04-01 16:05:17 +05:30
ashilkn
7b94c32bbf Do not upload files if ACCESS_MEDIA_LOCATION is not granted 2024-04-01 15:51:13 +05:30
Manav Rathi
881c94be05 [web] Remove bootstrap (#1274)
Fixes the issues we started seeing with broken CSS after removing the
emotion cache.
2024-04-01 15:47:02 +05:30
Manav Rathi
7248a226bc Remove bootstrap 2024-04-01 15:35:45 +05:30
Manav Rathi
8ae7ae2de9 Replace the Spinner in payments 2024-04-01 15:32:56 +05:30
Manav Rathi
28cf7d76d5 Even numbers don't seem to be kosher, only strings work 2024-04-01 15:13:43 +05:30
Manav Rathi
c2957238da Fix the date handling 2024-04-01 15:07:29 +05:30
Manav Rathi
f9a2ec774a Make it work with MUI components 2024-04-01 14:54:29 +05:30
Neeraj Gupta
548721e415 [mob]Ignore souceFileMissing error for iOS (#1273)
## Description

## Tests
2024-04-01 14:32:18 +05:30
Manav Rathi
0568cd03c9 Refactor somewhat
More to come
2024-04-01 13:07:36 +05:30
Manav Rathi
226f891e99 [docs] Update-export-faq (#1271) 2024-04-01 12:32:18 +05:30
Manav Rathi
9643dd645f Fix typo "intac" 2024-04-01 12:31:38 +05:30
Manav Rathi
7e897815a1 Remove stale VSCode settings
.vscode is already in the gitignore, not sure how this got added (perhaps some
bug in the github.dev web editor that Jishnu is using).
2024-04-01 12:18:24 +05:30
Manav Rathi
a9b92b9bfa [web] Remove emotion cache (#1272)
- Still doesn't work in dev mode
- Prepares ground for removing bootstrap
2024-04-01 12:14:50 +05:30
Jishnuraj9
489de9f8c2 export-general-subscription-update 2024-04-01 11:54:59 +05:30
Manav Rathi
39bc68390f Match the variable name 2024-04-01 10:49:28 +05:30
Manav Rathi
83dabfbdee Refactor 2024-04-01 10:23:54 +05:30
Manav Rathi
35f2a6944e Inline 2024-04-01 09:58:55 +05:30
Manav Rathi
fbe2996dcc [meta] Update READMEs to mention the new Auth Desktop app (#1269)
Fixes https://github.com/ente-io/ente/issues/1268
2024-04-01 09:28:39 +05:30
Manav Rathi
7f23b31bbc [meta] Update READMEs to mention the new Auth Desktop app
Fixes https://github.com/ente-io/ente/issues/1268
2024-04-01 09:26:07 +05:30
Jishnuraj9
f43e260434 update images of export 2024-04-01 08:04:24 +05:30
Manav Rathi
18698d35bb Replace in export progress 2024-03-31 21:43:24 +05:30
Manav Rathi
9e41b906a7 Swap progress bar 2024-03-31 21:38:26 +05:30
Manav Rathi
0f2181c09b Remove more legacy ml code 2024-03-31 18:41:15 +05:30
Manav Rathi
707e14702e Remove unused ML debug code 2024-03-31 18:34:00 +05:30
Manav Rathi
f3a0240f1d Remove more dead code
...that uses bootstrap instead of spending migration effort on it.
2024-03-31 18:23:05 +05:30
Manav Rathi
e84b989484 Remove unused code
Came across this when trying to migrate off bootstrap in the few remaining
places, this code is unused and just removing it instead of doing a migration of
it to mui.
2024-03-31 18:19:48 +05:30
Manav Rathi
86e4cffb8e Replace bootstrap buttons in fix time dialog 2024-03-31 18:16:57 +05:30
Manav Rathi
1d02fe4f32 Remove unused fix-large-thumbnail feature
This was disabled years ago. Specifically removing this now to reduce the amount
of work in removing bootstrap.
2024-03-31 18:07:17 +05:30
Manav Rathi
e5edeae370 Remove the bootstrap carousel 2024-03-31 18:01:38 +05:30
Manav Rathi
40a1da1ba7 Fine tune 2024-03-31 18:00:09 +05:30
Manav Rathi
5dfafa28c7 Almost there in terms of styling 2024-03-31 17:54:38 +05:30
Manav Rathi
d3df6b31ae Use actual contents 2024-03-31 17:31:33 +05:30
Manav Rathi
145850a66e Try using intrinsic size 2024-03-31 17:28:26 +05:30
Manav Rathi
6b56c28870 Mark vscode-styled-components optional 2024-03-31 17:07:48 +05:30
Manav Rathi
9ec68ecd3d Mention vscode-styled-components 2024-03-31 17:04:38 +05:30
Manav Rathi
8c127a6cec Animate 2024-03-31 16:47:10 +05:30
Manav Rathi
3890373d4a Try pure-react-carousel as a replacement of bootstrap's Carousel 2024-03-31 16:45:46 +05:30
Manav Rathi
ee1eb75bdf Extract component 2024-03-31 16:41:50 +05:30
Manav Rathi
14e99ea26a Fix ports 2024-03-30 20:59:05 +05:30
Manav Rathi
7183a8b493 [web] Remove emotion caches
This is no longer needed for emotion > 10

> For v10 and above, SSR just works in Next.js.
>
> https://emotion.sh/docs/ssr#nextjs

Tested with

- yarn dev:*
- yarn preview:*

This change screws up the CSS in places in dev mode though.
2024-03-30 20:56:38 +05:30
Prateek Sunal
e1ac5e7394 [FIX] Auth Desk (#1262)
## Description

- Don't hide but close app on exit
- Hide window option
- Fix translation of labels of context menu
2024-03-30 19:27:56 +05:30
Prateek Sunal
1391cff1f1 fix: translate labels of context menu 2024-03-30 19:13:30 +05:30
Prateek Sunal
204d4d048e chore: update podfile 2024-03-30 19:10:01 +05:30
Prateek Sunal
8dfd60df19 fix: close app on exit and add option to hide window 2024-03-30 19:02:05 +05:30
Manav Rathi
5810d2b762 Add yarn preview:* 2024-03-30 18:06:58 +05:30
Manav Rathi
f6abcafc83 Copy over fix into auth and accounts 2024-03-30 17:20:26 +05:30
Ashil
7950f1ec26 [mobile][photos] Explicitly ask for media location (#1261)
## Description

On bumping up photo_manager version, it introduced a breaking change
where we need to explicitly ask for ACCESS_MEDIA_LOCATION permission.

## Tests

Tested on android 13 and 14 devices.
2024-03-30 16:48:15 +05:30
github-actions[bot]
6974672f8c [mobile] New translations (#1239)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-03-30 16:15:32 +05:30
Neeraj Gupta
25cedd5e2f [server] Gracefully handle stale collection entry (#1260)
## Description

## Tests
2024-03-30 15:24:52 +05:30
Neeraj Gupta
a51a965fc8 [cli] Fix handling of delete file with stale colleciton entry (#1259)
## Description

## Tests
Tested locally
2024-03-30 14:14:03 +05:30
Vishnu Mohandas
fc5d8aeca6 [auth] Add new custom icons in auth (#1258)
Add new icons

- ConfigCat
- Mercado Livre
- SendGrid
- Habbo
2024-03-30 07:02:04 +05:30
ialexanderbrito
03fc59a8fb feat: add new custom icons in auth 2024-03-29 17:15:31 -03:00
Prateek Sunal
80a27f7e6f [FIX] libffi7 missing error in auth appimage (#1257)
Package libffi7 with appimage
2024-03-30 01:03:34 +05:30
Prateek Sunal
cc2c8e3e26 fix: libffi7 missing error in appimage 2024-03-30 00:54:16 +05:30
Manav Rathi
d52f873c92 [web] Remove dead code from cast (#1256) 2024-03-29 22:45:05 +05:30
Manav Rathi
911cdd9448 Remove more dead code from cast 2024-03-29 22:37:42 +05:30
Manav Rathi
b4699ecfcb Remove ElectronFile from cast 2024-03-29 22:26:50 +05:30
Manav Rathi
ded151241f Remove more dead code from cast 2024-03-29 22:22:03 +05:30
Manav Rathi
3dfc3a6dba Remove dead code from cast 2024-03-29 21:56:33 +05:30
Vishnu Mohandas
08b7fe6a49 [FIX] home widget count function and package source (#1252)
## Description

- Switched to pub.dev version of home_widget
- Replaced count home widget with getInstalledWidgets().

## Tests
2024-03-29 21:32:05 +05:30
Manav Rathi
7ef59bb4cc Short circuit unused code
isFileEligibleForCast filters out isRawFileFromFileName. Specifically, it
filters out HEIC files. So getRenderableImage is a no-op.
2024-03-29 21:01:17 +05:30
Manav Rathi
049a240916 Remove dead code from cast 2024-03-29 20:54:10 +05:30
Manav Rathi
3fdf5f1e46 Remove dead cast code 2024-03-29 20:12:57 +05:30
Prateek Sunal
d92fd25a78 fix: home widget count function 2024-03-29 19:46:13 +05:30
Manav Rathi
640b546d78 [docs] Update-export2 (#1249) 2024-03-29 17:24:07 +05:30
Manav Rathi
9e3fbce6c7 Center align the dialog images 2024-03-29 17:23:08 +05:30
Manav Rathi
e89eb48214 [web] Various minor fixes and improvements to cast (#1250)
- Use 3001 for sidecars
- Use the placeholder as the placeholder, not as the label
- Change slideshow time from 5s => 10s
- Remove the 123456 below the actual code
- Make the code copyable without inserting spaces in between
2024-03-29 17:14:45 +05:30
Manav Rathi
9440b967c8 Remove the extra spaces being inserted when we copy paste
Ref:

- https://github.com/facebook/react/issues/1643
- https://stackoverflow.com/questions/10837063/display-text-with-spaces-that-are-not-copied
2024-03-29 17:10:51 +05:30
Jishnuraj9
d6769fb1d5 Update image and text-export 2024-03-29 17:06:48 +05:30
Jishnuraj9
df377ebcf3 update image 2024-03-29 16:34:16 +05:30
Prateek Sunal
0114775e22 Bump auth to 2.0.50 build number (#1248)
## Description

## Tests
2024-03-29 16:30:55 +05:30
Prateek Sunal
31ffb124b6 chore: bump it again to 250 2024-03-29 16:27:09 +05:30
Prateek Sunal
f01583d168 chore: bump auth to 249 build number 2024-03-29 16:25:58 +05:30
Neeraj Gupta
f6dca2dfc9 [server] Drop locationTag table and related code (#1245)
## Description

## Tests
2024-03-29 16:25:39 +05:30
Prateek Sunal
45f9b47f24 [FEAT] Add Context menu to desktop right click (#1247)
## Description


![image](https://github.com/ente-io/ente/assets/41370460/099a90d9-3fb7-48cc-8177-79ea81c3edfc)
2024-03-29 16:24:19 +05:30
Prateek Sunal
cb7a2445e1 fix: qr image 2024-03-29 16:23:55 +05:30
Prateek Sunal
4830a69aad chore: remove lint 2024-03-29 16:23:04 +05:30
Prateek Sunal
f8fbedfe10 fix: use context menu on desktop 2024-03-29 16:21:30 +05:30
Manav Rathi
d22cf34a0e Remove nesting 2024-03-29 16:18:49 +05:30
Neeraj Gupta
ef250acad9 [server] Add person EntityType (#1246)
## Description

## Tests
2024-03-29 16:12:59 +05:30
Neeraj Gupta
459c4515a0 [server] Drop locationTag table and related code 2024-03-29 16:08:28 +05:30
Prateek Sunal
056e29a5f5 feat: context menu vert 2024-03-29 16:07:09 +05:30
Prateek Sunal
71e87ef7e9 feat: context menu horz 2024-03-29 16:07:01 +05:30
Manav Rathi
0d3662d9fe Remove the 123456 below the actual code
It prevents copy pasting (and doesn't look too good either)
2024-03-29 16:03:34 +05:30
Manav Rathi
70e5e9b13c [cast] Change slideshow time from 5s => 10s 2024-03-29 12:34:54 +05:30
Manav Rathi
949780d1e8 [cast] Use the placeholder as the placeholder, not as the label 2024-03-29 12:15:06 +05:30
Manav Rathi
a06a93e73d Use 3001 for sidecars 2024-03-29 11:58:42 +05:30
Neeraj Gupta
bc45db51a9 [cli] Improve logging for decryption error (#1242)
## Description
Related to #1237
## Tests
2024-03-29 11:08:45 +05:30
Manav Rathi
54d93647ef Add SMTP for sending emails (#1228)
## Tests
Tested for templated mails in user.go, userauth.go, stripe.go,
public_collection.go, playstore.go, admin.go, email_notification.go

Screenshots for all the templates -
[https://drive.google.com/drive/folders/1f7BjM5MHicRUbr5jlCe2-4MGz7s1moLw?usp=sharing](url)
2024-03-29 09:22:40 +05:30
Manav Rathi
230ea380ad [docs] Change capitalization (#1238)
## Description
Changed "ente" to "Ente" as the first letter is meant to be a capital
one now:
<img width="303" alt="image"
src="https://github.com/ente-io/ente/assets/41323182/82ec2a2e-b7d3-4995-a3a9-950924bc05f6">

## Tests
2024-03-29 09:21:47 +05:30
Manav Rathi
81bff42992 [web] Fix nightly build (#1241)
This was accidentally an ancient version of axios when importing from
the older repo - update it to what the rest of the code uses (via the
shared package).
2024-03-29 09:16:06 +05:30
Manav Rathi
1f6b9030ff [web] Fix nightly build
This was accidentally an ancient version of axios when importing from the older
repo - update it to what the rest of the code uses (via the shared package).
2024-03-29 09:11:28 +05:30
green
ce6bdb1298 Update index.md 2024-03-29 00:00:55 +01:00
Vishnu Mohandas
2c7144590f fix: macos sha256 sum generation (#1236)
## Description

## Tests
2024-03-29 02:46:02 +05:30
Prateek Sunal
d21f0146ec fix: macos sha256 sum generation 2024-03-29 01:48:21 +05:30
Vishnu Mohandas
95ec3098c0 [FIX] Auth Desktop (#1235)
## Description

- Add Checksums for mac and windows
- Capitalize ente Auth mostly everywhere
- Ask for installation mode (for all users [admin] or for current user
[non-privileged])
2024-03-29 01:30:17 +05:30
Prateek Sunal
de2d04bb78 chore: bump auth version 2024-03-29 01:26:35 +05:30
Prateek Sunal
17500fd536 fix: capital case ente Auth 2024-03-29 01:22:17 +05:30
Prateek Sunal
86d5e636df fix: generated sha256 sums for windows and macos 2024-03-29 01:21:52 +05:30
Prateek Sunal
8325b270e0 fix: ask for installation mode at start 2024-03-29 01:21:39 +05:30
Prateek Sunal
9e93dc5e6d [FIX] Auth desktop (#1234)
Fixes for auth desktop
- Install Dir path and name fix
- Install/Uninstall Icon fix
- Don't check "add Desktop icon" by default
- Fix Exit app in system tray
2024-03-28 22:24:00 +05:30
Prateek Sunal
fbd673cb5a chore: bump to 247 2024-03-28 22:22:47 +05:30
Prateek Sunal
0760845536 chore: replace local_auth_ios with local_auth_darwin 2024-03-28 21:57:49 +05:30
Prateek Sunal
28156132a6 fix: use tray manager instead of system tray 2024-03-28 21:53:44 +05:30
Prateek Sunal
6966124249 chore: rename directory to icons 2024-03-28 21:25:06 +05:30
Prateek Sunal
d4ca574f1f fix: icons for setup and uninstall 2024-03-28 21:24:10 +05:30
ashilkn
b976d30ab2 fix colours in new material 3 toggle switch 2024-03-28 20:37:27 +05:30
Prateek Sunal
c7de109494 fix: don't create desktop icon by default 2024-03-28 18:36:09 +05:30
Prateek Sunal
5e5a6de709 fix: install directory and folder name 2024-03-28 18:31:34 +05:30
ashilkn
4c73fb7374 Specify color for dividers to keep it same after flutter upgrade
New material theme has a different default colour for dividers
2024-03-28 18:22:38 +05:30
ashilkn
9f22882d8d override ffi dependency version to fix build failing after running flutter pub upgrade command 2024-03-28 18:21:37 +05:30
Vishal
8c9bd284e2 Remove isEnable from config 2024-03-28 18:16:38 +05:30
Manav Rathi
e4ce144bd4 [web] Complete integration of payments code (#1233)
Next step - deploy from here.
2024-03-28 17:48:05 +05:30
Manav Rathi
055ebd0447 Fix leftover gunk 2024-03-28 17:44:27 +05:30
Vishal
d5f0334a34 Remove isEnabled from config 2024-03-28 17:44:08 +05:30
Manav Rathi
212b2663d0 Add payments deployment scripts 2024-03-28 17:42:54 +05:30
Vishnu Mohandas
cc6cc6ede5 [mobile] New translations (#1220)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-03-28 17:32:31 +05:30
Manav Rathi
5867af3a2f Clean up EnteSpinner 2024-03-28 17:15:45 +05:30
Manav Rathi
ac01f7a12a Clean up utils 2024-03-28 17:10:48 +05:30
Manav Rathi
713a0038f0 Clean up CSS 2024-03-28 17:09:11 +05:30
Manav Rathi
3c0c591bed Remove custom font 2024-03-28 17:08:39 +05:30
Manav Rathi
990f9a8d70 Remove old payment instructions 2024-03-28 17:05:59 +05:30
ashilkn
fa304aa8cc upgrade flutter version 2024-03-28 16:56:54 +05:30
Manav Rathi
e61b9646b3 Update comment 2024-03-28 16:34:22 +05:30
ashilkn
dabda8e744 upgrade photo_manager and flutter 2024-03-28 16:32:59 +05:30
Manav Rathi
2114644ed1 Mirror the decision tree 2024-03-28 16:28:45 +05:30
Manav Rathi
a64cbf79dc Flip the order of smtp/transmail 2024-03-28 16:20:49 +05:30
Vishal
1f75633c5c Private method to bottom of the file 2024-03-28 15:03:27 +05:30
ashilkn
6e4db6c0df add cast to dependencies and update flutter 2024-03-28 14:57:33 +05:30
Manav Rathi
f524403580 Wait for i18 to be ready before trying to load the page 2024-03-28 14:25:20 +05:30
Vishnu Mohandas
3791f35601 Add CERN Icon (#1226)
This PR adds the CERN logo to Ente Auth custom icons. Great job with
Ente Auth so far! Keep up the fantastic work!
2024-03-28 14:05:56 +05:30
Manav Rathi
4c05e0925d Fix example whitelisted-redirect-url 2024-03-28 13:19:00 +05:30
Manav Rathi
2b379640ca Allow billing plans to be mounted into the Docker container if needed 2024-03-28 13:07:43 +05:30
Manav Rathi
8cd725978a Update the README 2024-03-28 12:55:47 +05:30
Ashil
5768a69062 [mobile][photos] fix: Image switcharoo bug when sharing from signal (#1232)
## Description

Fixes #1158
2024-03-28 12:43:52 +05:30
Manav Rathi
9599982f30 [web] Make payments feel at home (#1231)
Make the imported payments code feel at home in the new monorepo.
2024-03-28 12:16:25 +05:30
Manav Rathi
c5a2b61454 Fix tsconfig formatting 2024-03-28 12:11:09 +05:30
Manav Rathi
88e4f61221 Config 2024-03-28 12:07:10 +05:30
Manav Rathi
06f1fa086e Fix dev 2024-03-28 11:56:05 +05:30
Manav Rathi
e4c18b9e74 Inline 2024-03-28 11:49:05 +05:30
Manav Rathi
478435f806 Use :3001 for all the aux services 2024-03-28 11:42:59 +05:30
Manav Rathi
8f0ef055c5 [web] Make the imported payments code feel at home in the new monorepo
- Use the shared yarn monorepo configuration
- styled-components => emotion (since that's what the rest of the code uses)
- Remove Sentry (since it's gone elsewhere)
2024-03-28 11:40:22 +05:30
Manav Rathi
ad3503053d [web] Import code for payments.ente.io (#1230)
Manav: To avoid accidentally spilling out any secrets, squash and
import. However, the overwhelming majority of the work in the original
code was done by @abhinavkgrd so set them as the author for the commit.
2024-03-28 10:32:15 +05:30
Abhinav
8a3c0743fe Import code for payments.ente.io
Manav: To avoid accidentally spilling out any secrets, squash and
import. However, the overwhelming majority of the work in the original code was
done by Abhinav <abhinavk.grd@gmail.com> so set them as the author for the
commit.
2024-03-28 10:19:44 +05:30
Manav Rathi
33314bc2da [meta] Add a special case for comments in the notifier workaround (#1229)
Discord still hasn't fixed the issue on their end, and having a top
level link whenever a new comment is added is getting cumbersome, so add
a handler for the common comments case too.

Tested and deployed.
2024-03-28 10:12:22 +05:30
Manav Rathi
12aa071adc [meta] Add a special case for comments in the notifier workaround
Discord still hasn't fixed the issue on their end, and having a top level link
whenever a new comment is added is getting cumbersome, so add a handler for the
common comments case too.

Tested and deployed.
2024-03-28 10:11:04 +05:30
Vishal
cc3376154f Change name 2024-03-27 22:39:12 +05:30
Vishal
a7692b7d2e Update if else 2024-03-27 21:40:40 +05:30
Manav Rathi
3213fe0d26 [photos-desktop] Various changes, bringing the code up to speed (#1227)
See commit titles for a gist.
2024-03-27 21:22:54 +05:30
Manav Rathi
3706b99d36 Remove debug print 2024-03-27 21:21:31 +05:30
Manav Rathi
1bb79854a5 Mollify TypeScript 2024-03-27 21:17:30 +05:30
Manav Rathi
c9f8ad3e88 Tidy and prune the app's menu
- Switch to title case (discussed with others that the app's main menu is an
  appropriate choice and exception to our sentence casing otherwise).

- Prune
2024-03-27 21:12:45 +05:30
Manav Rathi
0dda25800e Update the node version number in tsconfig doc comments 2024-03-27 20:34:10 +05:30
Manav Rathi
95eec1f3d6 Remove brew special casing
Brew Formulae support an `auto_updates true` flag which tells brew's auto update
mechanism to stay out of the way.

Ref: https://docs.brew.sh/FAQ#why-arent-some-apps-included-during-brew-upgrade

Will need to open a PR to update our Formula though.

9241d331b6/Casks/e/ente.rb (L9)
2024-03-27 20:29:11 +05:30
Manav Rathi
5ac4799ce1 Support arbitrary parameters like console.log 2024-03-27 20:26:16 +05:30
Manav Rathi
3699118f0c Don't shellescape fully formed commands 2024-03-27 20:10:45 +05:30
Vishal
9893e3f305 Add Amazon SES for sending mails 2024-03-27 19:58:27 +05:30
Subhashis Suara
07552e7c47 Add CERN Icon 2024-03-27 14:33:27 +01:00
Manav Rathi
cf71d1477b update to new functions in more places 2024-03-27 17:44:49 +05:30
Ashil
79f7fb9ad9 [mobile][photos] Update change log for v0.8.72 release (#1225)
## Description

![72 change
log](https://github.com/ente-io/ente/assets/77285023/1a903668-76be-40d3-b00a-a0a7c7dfb66a)
2024-03-27 17:40:25 +05:30
Manav Rathi
937e09f6a3 Fix import errors 2024-03-27 17:21:42 +05:30
Manav Rathi
8ffe1ece2d Relay isFolder error back to renderer 2024-03-27 17:13:25 +05:30
Manav Rathi
175ea274c4 Alternative formatting 2024-03-27 17:07:56 +05:30
Vishnu Mohandas
78b858ae7c [mobile] FAQ -> Help (#1224) 2024-03-27 17:06:39 +05:30
vishnukvmd
94f4c1e757 [mobile] FAQ -> Help 2024-03-27 17:06:01 +05:30
Manav Rathi
08489c8237 Tweak "render-process-gone" handler 2024-03-27 17:04:46 +05:30
Vishnu Mohandas
be62ea1459 [mobile][photos] Reduce GC events when loading models (#1223)
## Description

When using `readAsBytes()`, noticed a lot of `concurrentMark` GC event
in timeline when using the performance profiler dev tool, which were
potentially causing longer build and raster time for frames.
2024-03-27 16:44:05 +05:30
ashilkn
01b3d99e3a bump up version for release 2024-03-27 16:43:03 +05:30
Manav Rathi
3e61ebf1df Add types for shellescape
Refs:

- https://github.com/boazy/any-shell-escape
- https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/shell-escape/index.d.ts
- https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html
2024-03-27 16:36:31 +05:30
ashilkn
7966c6bbc8 Merge branch 'main' into load_model_perf_improvement 2024-03-27 16:34:39 +05:30
ashilkn
35a8a96898 pref: reduce GC events 2024-03-27 16:34:06 +05:30
Vishnu Mohandas
eef33e9c0c [mobile][web] Redirect to payment portal if subscription is past due (#1222)
## Description

When a customer whose Stripe subscription is past due (within the 30 day
window after expiry time and has not been cancelled) clicks on the
subscription modal, take them to the payment portal to complete the
subscription.

## Tests

- [x] Tested web
- [x] Tested mobile
2024-03-27 16:29:58 +05:30
vishnukvmd
ba307b0dcd [web] Fix check 2024-03-27 16:23:38 +05:30
vishnukvmd
44403c94c2 Cancel SEPA subscriptions when payments fail 2024-03-27 16:20:58 +05:30
vishnukvmd
ba314eb647 [web] Handle past-due state on clicking "renew" 2024-03-27 16:17:23 +05:30
vishnukvmd
1020366c3a [mobile][web] Ignore cancelled subscriptions while computing past-due status 2024-03-27 16:11:03 +05:30
vishnukvmd
a15e9b0c9a [web] Redirect to payment portal if subscription is past due 2024-03-27 15:57:00 +05:30
vishnukvmd
a581e31ef9 [mobile] Redirect to payment portal if subscription is past due 2024-03-27 15:56:54 +05:30
Manav Rathi
e1c2c9fc98 Rearrange 2024-03-27 15:55:02 +05:30
Manav Rathi
c38542dbfb Init logging 2024-03-27 15:34:29 +05:30
Manav Rathi
27047da08b Use a truthy check 2024-03-27 15:12:40 +05:30
Manav Rathi
846c2af02b Outline a potential approach 2024-03-27 15:10:35 +05:30
Manav Rathi
42679bc9da Remove duplicated icon
Per https://www.electron.build/icons, a single 512x512 icon.png placed in the
buildResources directory (default `build`) is enough to generate icons for all
three - macOS, Windows and Linux.
2024-03-27 15:00:25 +05:30
Crowdin Bot
856db38fae New Crowdin translations by GitHub Action 2024-03-27 09:14:31 +00:00
Vishnu Mohandas
81a8cba4da [mobile] New translations (#1140)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-03-27 14:44:29 +05:30
Vishnu Mohandas
0c400db649 [server] Fix Stripe related issues (#1152)
## Description

### Stripe
- Settings have been modified to "Cancel" the subscription if all
attempts to charge an invoice fails. The previous configuration was to
set the subscription to "Past Due".

### Museum
- Updated our Stripe workflow to use `PaymentBehaviorAllowIncomplete` in
case of SEPA payments
- Fixed the issue caused by us spawning unnecessary subscriptions when a
customer tried to renew their expired subscription
- Removed the email that was being sent out when a Stripe subscription
expired. We will have to run our own cron to send a notification and
perform necessary clean up. When payments fail, we will still send a
notification to intimate the customer that their account is on hold.

### Mobile
- Fixed the dialogs and error messages on the payment page

## Tests
The following cases were tested for SEPA, Credit Cards, and Credit Cards
with 3DS.
- [x] Purchase
  - [x] Success
  - [x] Failure
- [x] Renewal
  - [x] Success
  - [x] Failure
- [x] Upgrades
  - [x] Success
  - [x] Failure
- [x] Cancellation
- [x] Resumption post recovery

## Note

These changes are likely to break in the event of some corner cases we
haven't thought of. But this will land us in a state that is better than
where we are right now in terms of collecting payments for expired
subscriptions and those via SEPA.
2024-03-27 14:43:36 +05:30
vishnukvmd
25a054287a Prevent duplicate emails for SEPA 2024-03-27 14:22:30 +05:30
Manav Rathi
379a5f8e79 [server] Publish docker image - Part 2/2 (#1219)
Part 2 (and final part) of https://github.com/ente-io/ente/pull/1218.

Completes https://github.com/ente-io/ente/discussions/673. The images
are accessible at `ghcr.io/ente-io/server`, e.g.

```sh
docker pull ghcr.io/ente-io/server
```
2024-03-27 13:59:14 +05:30
Manav Rathi
62d95ad862 Mention pre-built binary in docs 2024-03-27 13:53:43 +05:30
Manav Rathi
e803b7f053 Document in main README 2024-03-27 13:44:24 +05:30
Manav Rathi
741c968c8a Fix typo 2024-03-27 13:10:05 +05:30
Manav Rathi
4a4a6ba44a Give an example of the pull command 2024-03-27 13:04:28 +05:30
Manav Rathi
6588880b31 Use the correct commit, not the current one 2024-03-27 13:02:46 +05:30
Manav Rathi
cb45a070be Tweaks 2024-03-27 12:58:17 +05:30
Manav Rathi
fc8e79fbe9 Remove double namespacing 2024-03-27 12:54:29 +05:30
Manav Rathi
a8a2e7aee3 [server] Publish docker image - Part 1 (#1218)
- Outline the plan
- Add a first cut of the publish script

Merging this now so that I can test the workflow. Post a successful
publish, I'll open another PR with any fixes entailed, and will also
document this in the main server README.
2024-03-27 12:46:26 +05:30
Manav Rathi
4ba76e4aa2 Tweaks 2024-03-27 12:46:08 +05:30
Manav Rathi
7c0f41166c Add a first cut of the publish script 2024-03-27 12:42:29 +05:30
Manav Rathi
b31332ff30 Outline the plan 2024-03-27 12:42:26 +05:30
Manav Rathi
16c2706e48 [docs] Add images for continuous sync (#1217) 2024-03-27 11:55:10 +05:30
Manav Rathi
50431c6410 Update image 2024-03-27 11:53:15 +05:30
Manav Rathi
b6b66684f3 Reindent 2024-03-27 11:46:37 +05:30
Jishnuraj9
0e04a0df04 add images for continuous sync 2024-03-27 11:43:58 +05:30
Vishnu Mohandas
0fc3773812 feat: rounded icons for auth desktop (#1215)
## Description

## Tests
2024-03-26 23:19:43 +05:30
Prateek Sunal
2cda8da3c5 fix: remove unused submodules 2024-03-26 23:13:54 +05:30
Prateek Sunal
652f6a92f5 feat: rounded icons for desktop 2024-03-26 23:12:38 +05:30
Manav Rathi
a78e2892cd [photos-desktop] Update to latest Electron (#1213)
- And update to latest everything else too
- Fix the duplication in preload
- ... and many more cleanup changes (see commit titles for details)

Should not have major functional impact, and whatever IPC actions got
broken by the switch to context-isolation will still not be working.
This is just an intermediate step, and more PRs will continue fixing the
IPC APIs.
2024-03-26 21:54:18 +05:30
Manav Rathi
48a726885f Fix typo in comment 2024-03-26 21:45:21 +05:30
Manav Rathi
88e8e1a18d Remove hacky splash window with a background color
...hacky because it was using a timer instead of the "ready-to-show" event
(which wasn't getting fired for some reason). It is recommended that we set a
background color anyway.
2024-03-26 21:45:21 +05:30
Manav Rathi
ac97d65c12 Remove one copy of duplication from IPC types 2024-03-26 21:45:21 +05:30
Manav Rathi
b0ca3a1a9f Preload won't have logging 2024-03-26 21:45:21 +05:30
Manav Rathi
c055cd9b4a Remove the tscw 2024-03-26 21:45:21 +05:30
Manav Rathi
9e987f62f6 Fix paths of splash etc 2024-03-26 21:45:21 +05:30
Manav Rathi
cb33b6df10 Refactor the init process 2024-03-26 21:45:20 +05:30
Manav Rathi
c3dfa46514 Major version update of Electron
And other surrounding packages.
2024-03-26 21:42:48 +05:30
Manav Rathi
24176d8c40 Document a few more dependencies 2024-03-26 21:42:48 +05:30
Manav Rathi
6e737cdf9a Mention package.json in the shx description 2024-03-26 21:42:48 +05:30
Manav Rathi
8f978a3d3d Manually update the version info in package.json 2024-03-26 21:42:48 +05:30
Manav Rathi
fe94a4cd77 yarn-upgrade interactive 2024-03-26 21:42:48 +05:30
Manav Rathi
140b65b69d Use default import instead of star import
Refs:
https://stackoverflow.com/questions/31386631/difference-between-import-x-and-import-as-x-in-node-js-es6-babel
2024-03-26 21:42:48 +05:30
Manav Rathi
db930feaf3 Stop source map generation
This isn't doing anything for us currently, and I suspect is also the source of
this error when trying to run a binary built using `yarn build:quick`

> DevTools failed to load source map: Could not load content for next://app/preload.js.map:
  Unexpected token '<', "<!DOCTYPE "... is not valid JSON

Note that the renderer process already has source maps.
2024-03-26 21:42:48 +05:30
Manav Rathi
2038b036c5 Remove baseUrl that didn't work
From what I've understood, there isn't a way for us to use the baseUrl for
absolute imports without also using a bundler. The baseUrl works for the
tsconfig, but not for the generated JS.

Since this setting was anyways not working, remove it. Tested by doing `yarn
dev`, `yarn build` and also doing a quick perusal in VSCode to see that it is
not reporting any errors.

Refs:

- https://stackoverflow.com/questions/50679031/why-are-these-tsconfig-paths-not-working
- https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/2737
- https://stackoverflow.com/questions/40407342/resolving-paths-in-typescript-outdir
- https://stackoverflow.com/questions/51683827/using-paths-in-typescript-in-a-nodejs-project
2024-03-26 21:42:48 +05:30
vishnukvmd
c9618d8038 Update copy 2024-03-26 21:31:29 +05:30
vishnukvmd
888aca7e6c Extract common code 2024-03-26 21:11:57 +05:30
vishnukvmd
31d3319d20 Revert "Depend on subscription-past-due events to trigger the account-on-hold email"
This reverts commit a131c16f4e.
2024-03-26 20:59:02 +05:30
Vishnu Mohandas
2cadc0f0fc Update otp.md 2024-03-26 20:45:46 +05:30
vishnukvmd
a131c16f4e Depend on subscription-past-due events to trigger the account-on-hold email 2024-03-26 20:29:55 +05:30
vishnukvmd
b78a66a274 [mobile] Update behavior of the payment page 2024-03-26 19:59:22 +05:30
Vishnu Mohandas
1c891f80f9 [docs] Improve export docs (#1212) 2024-03-26 16:40:11 +05:30
Manav Rathi
613e32b00e [docs] Improve export docs 2024-03-26 16:38:49 +05:30
Vishnu Mohandas
c72878b00e [auth] New translations (#1174)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-03-26 11:47:40 +05:30
Manav Rathi
e7db1ceb01 [web] New translations (#1207)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-03-26 09:58:33 +05:30
Manav Rathi
512226b727 [docs] Add FAQ items around self hosting (#1209) 2024-03-26 09:58:00 +05:30
Manav Rathi
7fbb37a851 Add FAQ items around self hosting 2024-03-26 09:57:08 +05:30
Crowdin Bot
af568bcb21 New Crowdin translations by GitHub Action 2024-03-26 02:02:59 +00:00
Crowdin Bot
33cfec915a New Crowdin translations by GitHub Action 2024-03-26 01:55:04 +00:00
Crowdin Bot
e3d3943539 New Crowdin translations by GitHub Action 2024-03-26 01:36:29 +00:00
Vishnu Mohandas
a56d906160 [auth] v2.0.46 (#1204) 2024-03-26 00:03:36 +05:30
vishnukvmd
1fb6f4ded2 v2.0.46 2024-03-26 00:03:10 +05:30
Prateek Sunal
31fdd9dc65 [FIX] Libffi error for appimage (#1203)
Auth desktop linux build fix + Playstore aab shouldn't be created if
nightly or beta
2024-03-25 23:47:34 +05:30
Prateek Sunal
ee34291a54 fix: disable aab build if nightly or beta 2024-03-25 23:42:31 +05:30
Prateek Sunal
eeca6aac74 fix: libffi error for now 2024-03-25 23:41:12 +05:30
vishnukvmd
f2aac262b1 Remove unused flag 2024-03-25 23:27:39 +05:30
vishnukvmd
4afc056a9f Stop listening to subscription deleted events 2024-03-25 23:26:48 +05:30
Vishnu Mohandas
f75fc7a265 [auth] v2.0.45 (#1202) 2024-03-25 23:20:15 +05:30
vishnukvmd
bba00c51e8 v2.0.45 2024-03-25 23:19:41 +05:30
Vishnu Mohandas
371ec01e6e [auth] fix error on windows and linux (#1200)
[auth] fix error on windows and linux
2024-03-25 23:18:59 +05:30
Prateek Sunal
bc7309665d fix: linux error 2024-03-25 23:17:21 +05:30
vishnukvmd
2dcf5daf54 Handle cases where default payment method might not be specified 2024-03-25 23:16:20 +05:30
vishnukvmd
29245b73b9 Cancel subscriptions on SEPA failures immediately 2024-03-25 23:15:43 +05:30
Prateek Sunal
61f1610c8d fix: error on windows 2024-03-25 23:14:51 +05:30
vishnukvmd
d003542e42 Simplify how last payment method is fetched 2024-03-25 23:13:56 +05:30
Vishnu Mohandas
62276d49d2 [auth] Desktop Release Candidate (#1133)
## Description

This suffices all the changes that were gone through the auth app to
enable Desktop release.
2024-03-25 22:15:18 +05:30
Prateek Sunal
e7f26ba250 fix: setup for app_links and window_manager 2024-03-25 22:02:58 +05:30
Prateek Sunal
86a334a769 fix: windows versioning 2024-03-25 21:58:47 +05:30
Vishnu Mohandas
a6cb9023bf Update ente.io/faq => help.ente.io where possible (#1199)
On desktop, now there Help menu will have an "Ente Help" option instead
of "FAQ".

<img width="222" alt="Screenshot 2024-03-25 at 19 35 33"
src="https://github.com/ente-io/ente/assets/24503581/f061419d-7587-4438-b055-927a9cc8f42f">

The only place remaining after this is the sidebar on mobile
(`support_section_widget.dart`), but I wasn't sure of what string to use
(and how to add it to the localized strings for mobile) so I've left it
unchanged.
2024-03-25 19:55:54 +05:30
Manav Rathi
a4ecc2c344 Update ente.io/faq => help.ente.io where possible
On desktop, now there Help menu will have an "Ente Help" option instead of "FAQ"
(Unrelated: I noticed that user facing strings in the desktop app are not
localized).

The only place remaining after this is the sidebar on mobile
(`support_section_widget.dart`), but I wasn't sure of what string to use (and
how to add it to the localized strings for mobile) so I've left it unchanged.
2024-03-25 19:26:10 +05:30
Manav Rathi
147d79c64f [web][photos] Fix infinite loop on half-logins (#1197)
Fix an infinite loop of navigation under the following conditions: key
is valid
but token is not present.

Fix is to match the condition used in both gallery

    if (!key || !token) {

and the root page.

They seemed to have diverged in commit
c3304571a9.

Was able to reproduce this when launching the desktop app such that the
key was
picked up (possibly from a prior installation) from the secure keychain,
but the
token was not found. I feel this is also a fix for a similar navigation
loop
recently reported by QA but unreproducible so far.
2024-03-25 19:11:07 +05:30
Prateek Sunal
704abf1265 Merge remote-tracking branch 'origin/main' into beta 2024-03-25 18:41:14 +05:30
Prateek Sunal
9f32a8aa83 fix: remove unused submodules 2024-03-25 18:35:08 +05:30
Manav Rathi
4b7155dd13 Match the condition in one more place 2024-03-25 17:44:27 +05:30
Manav Rathi
3b29f8ec2c [web/desktop] Support windows environment on command (#1198)
## Description

This is my first time in ente! I modified two commands to allow the
build scripts for web and desktop to work in a Windows environment.

- Before running the command to get the git SHA in `next.config.js`, I
checked the platform of the current OS and changed it so that we could
run a command that would work on Windows.
- `NUL` is same as `/dev/null` in Windows, and `cd .` is always return
nothing with 0 status code.
- Added a new package called
[`shx`](https://[github.com/shelljs/shx](https://github.com/shelljs/shx))
to the development dependencies to support `rm` and `ln`, which are
commands not supported by Windows when running the Desktop build
command.

#1191 

## Tests

I've tested the web build and desktop build in a Windows environment. I
don't have a Mac, so I'd love for someone to test it on a Mac and let me
know the results.
2024-03-25 17:12:23 +05:30
Manav Rathi
eecb8b70f4 [web][photos] Fix infinite loop on half-logins
Fix an infinite loop of navigation under the following conditions: key is valid
but token is not present.

Fix is to match the condition used in both gallery

    if (!key || !token) {

and the root page.

They seemed to have diverged in commit c3304571a9.

Was able to reproduce this when launching the desktop app such that the key was
picked up (possibly from a prior installation) from the secure keychain, but the
token was not found. I feel this is also a fix for a similar navigation loop
recently reported by QA but unreproducible so far.
2024-03-25 16:48:08 +05:30
LI-NA
8e4ca0bc79 [desktop] Add shx and change the build command
To make the build script work on Windows, added the `shx` package in dev dependency and changed the `rm` and `ln` commands to `shx rm` and `shx ln`.
2024-03-25 20:11:44 +09:00
LI-NA
b98da635b6 [web] Change the command to fetch the git SHA
To make the git command work on Windows, changed it to use different commands depending on the platform of the OS.
2024-03-25 20:10:38 +09:00
Manav Rathi
37dce2bdb5 [photos-desktop] Fix preload script (#1196)
The preload script is now self contained, and the app when launched
tries to open the renderer correctly. It goes on to fail because of an
infinite navigation loop, but that's a different issue.

Beyond the navigation loop, there is more pending work to do - not all
the ipcMain/ipcRenderer communication would currently be working since
the objects being passed around (like "File") are not copyable. Still,
this PR is a checkpoint for the preload structure.
2024-03-25 15:49:55 +05:30
Manav Rathi
f8a36852a6 Prepare for test 2024-03-25 15:39:29 +05:30
Manav Rathi
892bf852a5 Convert remaining upload functions 2024-03-25 15:29:39 +05:30
Manav Rathi
f53b1361e8 Move file related functions 2024-03-25 15:09:51 +05:30
Manav Rathi
4261624da5 Handle rest of watch related functions 2024-03-25 14:03:20 +05:30
Manav Rathi
186e76c62b Move add/remove watch functions to preload 2024-03-25 13:49:48 +05:30
Manav Rathi
96ea53face preload / watch - part 1
The change event was not being used (since
dca542e781), so also remove that dead code.
2024-03-25 13:31:28 +05:30
Manav Rathi
67468c6ff9 Move the selection dialogs 2024-03-25 13:02:06 +05:30
Prateek Sunal
1859bfd9da fix: remove next electron server 2024-03-25 12:47:57 +05:30
Prateek Sunal
893421de6e fix: divider theme in material 3 2024-03-25 12:45:44 +05:30
Prateek Sunal
549e1a2753 fix: delete unused files 2024-03-25 12:45:30 +05:30
Manav Rathi
e8acbd8c9f Convert the other conversion functions 2024-03-25 12:45:21 +05:30
Prateek Sunal
b185a37435 fix: onboarding page spacing 2024-03-25 12:38:51 +05:30
Manav Rathi
2522da2b5e Handle runFFMPEGCmd in preload 2024-03-25 12:32:57 +05:30
Prateek Sunal
bd5c56349a Merge remote-tracking branch 'origin/main' into beta 2024-03-25 12:26:31 +05:30
Manav Rathi
dd7e87274a Handle set/getEncryptionKey in preload 2024-03-25 12:19:19 +05:30
Manav Rathi
106ba270fe Handle ML related functions in updated preload 2024-03-25 12:09:11 +05:30
Ashil
ed4886a6a5 [mobile][photos] Fix performance benchmarking config (#1195)
## Description

- Fix broken integration test used for benchmarking gallery scroll
performance.
- Automate email and password entry.
- Write script to run perf test.
2024-03-25 10:30:13 +05:30
Vishnu Mohandas
bdd6663461 [auth] custom icons (#1194)
Edited the custom-icons.json for the added SVG files.
2024-03-25 10:17:11 +05:30
ludespeedny
a403cd88e2 custom icons for DCS, WYZE 2024-03-24 12:20:28 -04:00
ludespeedny
d11ee7acb4 Update custom-icons.json
update custom-icons.json for DCS and WYZE icons.
2024-03-24 12:18:33 -04:00
Prateek Sunal
47370bdeaf fix: focus of password entry box 2024-03-23 22:37:25 +05:30
Vishnu Mohandas
f3bdfa84ef [docs] Collapse the Migration guide for Auth 2024-03-23 21:06:35 +05:30
Manav Rathi
4bf99c8bea [photos-desktop] Fix preload.ts - Part x/x (#1190)
Continuation of https://github.com/ente-io/ente/pull/1189
2024-03-23 20:44:41 +05:30
Manav Rathi
d3093809d6 Inline more into preload 2024-03-23 20:25:56 +05:30
Manav Rathi
81ba5379c9 Move checkExistsAndCreateDir out of preload 2024-03-23 20:06:27 +05:30
Prateek Sunal
af22c48a99 fix: remove unwanted debug print 2024-03-23 20:01:56 +05:30
Manav Rathi
f21dc84840 Switch to async fs.exists
We cannot expose the sync version over the context bridge - the node:fs module
is not available to the preload script under context isolation.
2024-03-23 19:59:47 +05:30
Prateek Sunal
19c2e50ef2 feat: add system tray for desktop 2024-03-23 19:18:30 +05:30
Manav Rathi
b1d0909675 EXtract common queueProcessor 2024-03-23 18:49:22 +05:30
Prateek Sunal
5aec3bc7fd chore: new files 2024-03-23 18:48:57 +05:30
Manav Rathi
7704b902c4 Extract shared function 2024-03-23 18:46:20 +05:30
Manav Rathi
bdb2a22863 Extract shared function 2024-03-23 18:44:30 +05:30
Prateek Sunal
1f091e33df feat: add listener to windows resize 2024-03-23 18:44:21 +05:30
Manav Rathi
47a7042d55 Remove dead code from cast 2024-03-23 18:38:31 +05:30
Manav Rathi
a5c3aff54b Expose an fs.exists over the context bridge 2024-03-23 18:28:22 +05:30
Prateek Sunal
9e6e91fe7e Merge remote-tracking branch 'origin/main' into beta 2024-03-23 18:26:11 +05:30
Prateek Sunal
35ebf37849 fix: open action pane on right click 2024-03-23 18:25:52 +05:30
Manav Rathi
120edbbc65 [photos-desktop] Fix preload.ts - Part x/x (#1189)
- Refactor towards making preload.ts self contained (see comments at the
top of the file why)
- More PRs in this series will come
- Build is still broken
2024-03-23 16:17:23 +05:30
Manav Rathi
7a3209ebf6 Fix preload.ts - Part x/x 2024-03-23 16:13:16 +05:30
Manav Rathi
efa49bd2b0 [web] New translations (#1187)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-03-23 16:11:29 +05:30
Crowdin Bot
e953c1c16b New Crowdin translations by GitHub Action 2024-03-23 10:40:49 +00:00
Manav Rathi
f7d2b735f9 [crowdin] Invalidate existing translations when source strings change (#1188)
Don't upload existing translation when syncing with Crowdin. This way,
we let the existing translations be invalidated when we change the
source string (this was not happening previously since we also upload
the (older) translations when
we upload the changed source strings).

**Tested by**

Doing this on a different test branch, changing a source string,
manually running the workflow against that branch, and verifying that
the strings are getting reset in the PR that Crowdin' action opens.
2024-03-23 15:28:29 +05:30
Manav Rathi
bbeac2bdf0 [crowdin] Invalidate existing translations when source strings change
Don't upload existing translation when syncing with Crowdin. This way, we let
the existing translations be invalidated when we change the source string (this
was not happening previously since we also upload the (older) translations when
we upload the changed source strings).
2024-03-23 15:26:34 +05:30
Manav Rathi
517ee0914c [web] Update the "source" translation (#1186)
https://github.com/ente-io/ente/pull/1185 updated the file but in the
accounts app. That's not the file that's used as the source - this PR
updates the one we use as the source for Crowdin.
2024-03-23 15:03:15 +05:30
Manav Rathi
53c53cebbc [web] Update the "source" translation
https://github.com/ente-io/ente/pull/1185 updated the file but in the accounts
app. That's not the file that's used as the source - this PR updates the one we
use as the source for Crowdin.
2024-03-23 15:01:44 +05:30
Vishnu Mohandas
d673537110 Fix cases (#1185)
## Description
The intent was to lower the case for "Files" and "Each" (that were in
caps), since the file was open, also ended up flipping the case for
"ente".

## Tests
Have verified the places "files" and "each" were being printed. As for
"Ente", the change should not cause any side effects.
2024-03-23 14:54:20 +05:30
vishnukvmd
a275ab7740 Set subscription to expire 7 days after payment failure 2024-03-23 14:37:29 +05:30
vishnukvmd
0fd4b2936d ente -> Ente 2024-03-23 12:22:16 +05:30
vishnukvmd
a96cb58f87 Fix case for strings 2024-03-23 12:20:15 +05:30
Manav Rathi
2de4e51c7b [photos-desktop] Disable node integration - Part x/x (#1181)
Continuing in the series of refactorings, working towards disabling node
integration in the photos desktop app.
2024-03-22 21:06:01 +05:30
Manav Rathi
d297465ea6 Dedup 2024-03-22 20:48:57 +05:30
Manav Rathi
0fdb2fb357 Fix type errors in fs.ts 2024-03-22 20:01:02 +05:30
Manav Rathi
6c8f4185f7 Fix error in clipService 2024-03-22 19:56:36 +05:30
Manav Rathi
31ad9a3eb3 Document that the main process is not restarted 2024-03-22 19:55:57 +05:30
Manav Rathi
0a7991bc0e Remove unused code 2024-03-22 19:52:08 +05:30
Manav Rathi
302b9a46b5 [photo-desktop] Rely heavier on local Electron cache (#1178)
Remove the special disk only cache we had when running under Electron,
and instead rely on the "disk-cache-size" flag to get the embedded
Chromium in our app to cache more generously.

This change is being done to reduce the surface area of the APIs we need
to migrate to in a post no-node-integration world.
2024-03-22 17:54:30 +05:30
Manav Rathi
68fe6f45c4 Validate that getPath is not throwing 2024-03-22 17:54:02 +05:30
Manav Rathi
03bad54bce Remove from the web side 2024-03-22 17:41:32 +05:30
Manav Rathi
3dbf82552d Use the web native cache only - desktop side changes 2024-03-22 17:28:05 +05:30
Manav Rathi
22e57669fb [photos-desktop] Disable node integration - Part x/x (#1176)
This continues the refactoring to disable node integration in our
rendered process. The code is still in a WIP state, and more PRs in this
series will come.
2024-03-22 16:06:16 +05:30
Manav Rathi
193c8d8899 Fix an error in the order of the arguments for imagemagick (#1175)
## Description

When importing a folder, I am getting this error on each image:
```
  cmd: "'/tmp/.mount_ente-xHvuBzN/resources/image-magick' -auto-orient -define 'jpeg:size=1440x1440' 'IMG_9694.heic' -thumbnail '720x720>' -unsharp '0x.5' -quality 70 '/tmp/ente/E6YH91g3T3-thumb.jpeg'",
  stdout: '',
  stderr: "magick: no images found for operation `-auto-orient' at CLI arg 1 @ error/operation.c/CLIOption/5432.\n"
```

## Tests

This is UNTESTED because I don't have a build env ready, however it
seems like this error is coming out because we pass the input file after
specifying some modifier flag that applies to it, and we should put the
input before.
2024-03-22 16:03:10 +05:30
Manav Rathi
f083f0633d Remove electron-reload
It reloads the BrowserWindow, but that already has HMR since we're connecting to
a Next dev server on localhost.

What we want is the main process to reload if the files for the main process are
changed. All options I've found so far just restart the main app on changes to
the main process code. I'm not sure that'll be useful, so not adding them right
now (and in any case, this is not a regression, it just wasn't working with
electron-reload either). For future reference if I need to revisit this, these
are the things I scouted:

- https://www.electronforge.io/config/plugins/webpack
- https://github.com/sindresorhus/electron-reloader
- https://electron-vite.org/guide/hot-reloading.html
2024-03-22 15:55:25 +05:30
Manav Rathi
f2c288bdab Remove promise-fs
Unnecessary, and unmaintained (since now node offers it natively)
2024-03-22 15:54:18 +05:30
Mathieu Velten
87de9e2afa Fix an error in the order of the arguments for imagemagick 2024-03-22 11:21:36 +01:00
Manav Rathi
1830a1b931 Let fs.readFile throw on non-existent files 2024-03-22 15:39:05 +05:30
Manav Rathi
b6b4ee7e3a recursive: true is mkdir -p 2024-03-22 15:31:45 +05:30
Manav Rathi
c41bb571f6 Convert more promise-fs 2024-03-22 15:23:41 +05:30
Manav Rathi
94ac21950d Convert to Electron's native fetch 2024-03-22 15:21:27 +05:30
Manav Rathi
8c40b950c7 Remove old and no longer necessary desktop cutoff version flag
It's been more than an 1.5 years since this was needed, everyone should've
updated by now.
2024-03-22 15:17:59 +05:30
Manav Rathi
8391e7edfc Start migrating from promise-fs 2024-03-22 15:13:37 +05:30
Manav Rathi
d98c3686c5 Inline 2024-03-22 11:33:24 +05:30
Manav Rathi
025ef4e1d9 Shorten 2024-03-22 11:26:04 +05:30
Manav Rathi
18deac3a41 Document 2024-03-22 11:21:05 +05:30
Manav Rathi
b1f45c8602 Move export functions to preload 2024-03-22 09:49:11 +05:30
Manav Rathi
388904a46a [web] New translations (#1173)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-03-22 09:30:36 +05:30
Crowdin Bot
c9e008895c New Crowdin translations by GitHub Action 2024-03-22 01:36:33 +00:00
ashilkn
953824ca25 Refactor: reduce parameters and change name of function 2024-03-21 19:54:31 +05:30
Prateek Sunal
784b003ceb fix: also bundle libffi in appimage 2024-03-21 18:59:26 +05:30
ashilkn
7c05069dbd fix(viewing proXDR images): When codec fails to produce an image, try converting image to jpeg and use the jpeg file for viewing the image 2024-03-21 16:26:09 +05:30
vishnukvmd
e634310cb1 Remove unused method 2024-03-21 14:49:37 +05:30
vishnukvmd
b95d7c241d Create new subs only if the existing subscription is in a cancelled state 2024-03-21 14:48:29 +05:30
vishnukvmd
3cf680eec1 [WiP] Prevent subscription cancellation 2024-03-21 14:42:38 +05:30
vishnukvmd
1f17f2442a Handle SEPA failures 2024-03-21 14:33:10 +05:30
vishnukvmd
859af52c64 Remove commented code 2024-03-21 13:55:42 +05:30
vishnukvmd
78e5e3bdb1 Minor refactor 2024-03-21 13:31:46 +05:30
vishnukvmd
5635e63cb7 Update handling for subscription updated events 2024-03-21 13:29:42 +05:30
Manav Rathi
4c33030f28 [photos-desktop] Document a bit as I find my way around disabling nodeIntegration (#1170)
* Also includes an unrelated change to update the support email.
* See corresponding commit messages for more details about why specific
bits of code were removed.
2024-03-21 12:19:24 +05:30
Manav Rathi
1157919496 Update the support email 2024-03-21 12:14:23 +05:30
Manav Rathi
3c4619e5e4 Add a notice 2024-03-21 12:13:39 +05:30
Manav Rathi
e58ef51d12 [docs] Update sharing-logs.md (#1169)
Removing unnecessary formatting
2024-03-21 12:03:50 +05:30
Jishnuraj9
e4b0cca777 [docs] Update sharing-logs.md
Removing unecessary formatting
2024-03-21 12:01:39 +05:30
Vishnu Mohandas
11e30cf79a Update quick-link.md 2024-03-21 11:53:27 +05:30
Vishnu Mohandas
21526722df Update and rename public-links.md to public-link.md 2024-03-21 11:43:43 +05:30
Manav Rathi
4ea43e619b More docs 2024-03-21 10:54:32 +05:30
Manav Rathi
cd1d22cdfb Shorten 2024-03-21 10:45:48 +05:30
Manav Rathi
cc623e5010 Remove unnecessary steps
I'm not sure how it is happening, but both ffmpeg-static and onnx get to their
correct path without this configuration. the paths it gets to is also slightly
different, so it seems that this snippet does not have any effect (at best):

    ente.app/Contents/Resources/app.asar.unpacked/node_modules
2024-03-21 10:43:33 +05:30
Manav Rathi
bb865a7b15 Add documentation about ffmpeg
https://alexandercleasby.dev/blog/use-ffmpeg-electron
2024-03-21 10:16:21 +05:30
Abhinav
520f7ab64c only use PaymentBehaviorAllowIncomplete for SEPA payment method 2024-03-21 07:18:28 +05:30
Abhinav
4e074770d2 invoice client specific invoice api 2024-03-21 06:48:49 +05:30
Manav Rathi
1361ca0c8e [docs] import FAQs and other docs from website (#1167)
- Documentation only change.
- Verified visually, and that `yarn build` runs.
2024-03-20 22:16:47 +05:30
Manav Rathi
a4b8571642 Fixes and tweaks 2024-03-20 21:54:55 +05:30
Manav Rathi
2a5d9cd47f yarn pretty 2024-03-20 21:26:50 +05:30
Manav Rathi
93e187d9e7 Import the remaining FAQs 2024-03-20 21:24:49 +05:30
Manav Rathi
1acbe806ae Import feature pages from website 2024-03-20 20:30:59 +05:30
Manav Rathi
b1ab27e42c Rearrange 2024-03-20 19:55:17 +05:30
Manav Rathi
5710dec46b Fix index 2024-03-20 19:51:24 +05:30
Manav Rathi
3a2c7ce5f9 Import migration guides from website
Needed tweaking to handle Gatsby => Vitepress
2024-03-20 17:31:04 +05:30
Manav Rathi
46d7803da0 [meta] Fix the docs deployment workflow (#1161)
Fix what I accidentally broke in
https://github.com/ente-io/ente/pull/1149
2024-03-20 16:49:33 +05:30
Manav Rathi
19c2f07a19 [meta] Fix the docs deployment workflow
Fix what I accidentally broke in https://github.com/ente-io/ente/pull/1149
2024-03-20 16:46:18 +05:30
github-actions[bot]
43ebd7147d [auth] New translations (#1141) 2024-03-20 16:19:39 +05:30
Manav Rathi
812e02d4d7 Update sharing-logs.md (#1160)
Documentation change
2024-03-20 15:54:03 +05:30
vishnukvmd
49893d9732 Update on-hold email subject 2024-03-20 14:31:33 +05:30
vishnukvmd
db81f52cf1 Update mail when subscription is on-hold 2024-03-20 14:31:01 +05:30
Prateek Sunal
dd0678d3d0 fix: handle all types of line breaks 2024-03-20 14:18:42 +05:30
vishnukvmd
628565cfaf Merge branch 'main' into sepa-fix 2024-03-20 14:08:36 +05:30
Vishnu Mohandas
8101fe1495 Patch few Stripe related issues (#1156) 2024-03-20 14:07:26 +05:30
vishnukvmd
ec258e8b2a Extract the payments redirect URL into an environment variable 2024-03-20 14:06:53 +05:30
vishnukvmd
b769c428eb Hide the dialog on page load 2024-03-20 14:05:23 +05:30
vishnukvmd
61d5f3189b Update cancellation status on receiving webhook from Stripe 2024-03-20 14:05:09 +05:30
Manav Rathi
7b1b6bf88f Document a better, more explicit, reference 2024-03-20 13:47:38 +05:30
Manav Rathi
4c651da244 Document my current understanding 2024-03-20 13:17:41 +05:30
Manav Rathi
467acf2b8e Remove old migration path
This migration path was in the last release v1.6.63, and it has now been out
there for a couple of months so apart from some outliers the migration should've
already happened. Even for the outliers, this will increase their cache size but
won't have a functional impact.

Cleaning this code now to reduce the amount that needs to be changed to support
a contextBridge aware cache.
2024-03-20 12:29:58 +05:30
Manav Rathi
7cc795ead3 [infra] Mention that logging to stdout is a good default for services (#1155)
Documentation only change.
2024-03-20 11:29:23 +05:30
Manav Rathi
e25089a55c [infra] Mention that logging to stdout is a good default for services 2024-03-20 11:28:40 +05:30
Jishnuraj9
964fc8c992 Update sharing-logs.md 2024-03-20 11:15:19 +05:30
Manav Rathi
0eedd5e57f Add deprecation notice to ElectronFile 2024-03-20 10:52:31 +05:30
Manav Rathi
0634727ef3 Remove unused file
From my understanding, this was accidentally leftover from 3c8af97f69
2024-03-20 10:34:17 +05:30
Manav Rathi
8b0ce5d521 Add documentation links 2024-03-20 10:32:29 +05:30
Manav Rathi
b77ac2a2d8 [workers] Fallback to plain text Discord message as a 429 workaround (#1154)
**Tested by**

Deployed, and redelivered a few recent messages to see that they're
falling back to the fallback.
2024-03-20 09:58:06 +05:30
Manav Rathi
35ba5b6685 [workers] Fallback to plain text Discord message as a 429 workaround 2024-03-20 09:56:14 +05:30
Prateek Sunal
01ec6e04d4 fix: update ente-io/auth to ente-io/ente 2024-03-19 21:37:53 +05:30
Prateek Sunal
4b3a8117b7 fix: constrain language picker screen 2024-03-19 21:37:36 +05:30
Manav Rathi
2bf03cbcaf [photos-desktop] Enable contextIsolation - Part 1 (#1153)
The desktop app in its current state does not function. More PRs will
come, but I wanted to keep this branch in sync with main instead of
continually rebasing it. Now that the photos app has been deployed, it
is a good idea to merge these changes.

Have paid extra attention to ensure that the diff for the web changes is
correct and does not introduce bugs.
2024-03-19 19:25:17 +05:30
Manav Rathi
8f2bb9c861 Add note about custom errors 2024-03-19 19:18:05 +05:30
Manav Rathi
83477cfe37 Forward clearElectronStore 2024-03-19 19:18:05 +05:30
Manav Rathi
3ce8513e48 Move more standalone methods to preload 2024-03-19 19:18:05 +05:30
Manav Rathi
b3289f2b8d Remove (kindof) unused reloadWindow IPC
We now bundle the renderer code within the app. So a load-fail indicates
something really wrong, not something we can deal with upfront (the code wasn't
probably even working - e.g. it was assigning to a function parameter
mainWindow, not the actual global var behind it).
2024-03-19 19:18:05 +05:30
Manav Rathi
3a6c7b2dcd Remove unused sendNotification IPC 2024-03-19 19:18:05 +05:30
Manav Rathi
502469e97f Move some non-duplicated FS related functions to preload 2024-03-19 19:18:05 +05:30
Manav Rathi
c98762b448 Inline ML related functions 2024-03-19 19:18:05 +05:30
Manav Rathi
e00b8fd2f1 Remove unused IPC for getPlatform 2024-03-19 19:18:05 +05:30
Manav Rathi
eeaa5165ab Remove custom cache directory
From discussions, it seems that it was pre-emptively added but not specifically
requested by a customer. We can bring this back later if needed, or at least
offer better options to clean it, but for now I'm pruning the IPC surface to
reduce the amount of work needed for handling contextIsolation and sandboxing.
2024-03-19 19:18:04 +05:30
Manav Rathi
e4684b22df Move out the electron-builder config to separate file 2024-03-19 19:17:01 +05:30
Manav Rathi
d80fad6cf1 Remove unused vscode extension support
This doesn't belong in the repo even if were used
https://github.com/standard/vscode-standard
2024-03-19 19:17:01 +05:30
Manav Rathi
a8de049519 Update concurrently's major version
No breaking changes that impact us - https://github.com/open-cli-tools/concurrently/releases
2024-03-19 19:17:01 +05:30
Manav Rathi
e9fa525fe9 Remove unused electron-download
It was used for downloading symbols
2024-03-19 19:17:01 +05:30
Manav Rathi
bff58f7b78 Update eslint settings to match main project 2024-03-19 19:17:01 +05:30
Manav Rathi
a0f95b6080 Settle on a tsconfig for now
Electron also comes with its own type definitions, and from a (possibly dated)
blog post announcing this I got that we should not be overriding it with
@types/node: https://www.electronjs.org/pt/blog/typescript
2024-03-19 19:17:01 +05:30
Manav Rathi
c19370ec51 Outline an ideal tsconfig.json 2024-03-19 19:17:01 +05:30
Manav Rathi
341f0fa559 Upgrade TypeScript 2024-03-19 19:17:01 +05:30
Manav Rathi
e64d44639d Document the conceputal way forward
Alternatives considered:

- https://github.com/alex8088/electron-toolkit
- https://electron-vite.org/
- https://github.com/cawa-93/vite-electron-builder/
2024-03-19 19:17:01 +05:30
Manav Rathi
04b9966425 Quicker quick
Ref: https://webpack.electron.build/building
2024-03-19 19:17:01 +05:30
Manav Rathi
0e861d5c48 Add some notes
The helpful snippet about the purpose of install-app-deps taken from
https://webpack.electron.build/dependency-management
2024-03-19 19:17:01 +05:30
Manav Rathi
b7b33eba4a Switch to contextBridge - Part 1 2024-03-19 19:17:01 +05:30
Manav Rathi
1266648562 Merge docs 2024-03-19 19:17:01 +05:30
Manav Rathi
eb4f9402db Enable prose-wrap 2024-03-19 19:17:01 +05:30
Manav Rathi
983beb89dc Enable prose-wrap 2024-03-19 19:17:01 +05:30
Manav Rathi
f29d9e1583 Re-enable contextIsolation and sandboxing
Things will break, but let's try to fix them. In the current state, this is
preventing us from running `yarn dev` without reverting back to Electron 21.
2024-03-19 19:17:01 +05:30
Manav Rathi
d83f9d0210 Still need submodules
Until web needs them
2024-03-19 19:17:01 +05:30
Abhinav
6b749294ce fix sepa issue 2024-03-19 18:40:32 +05:30
Manav Rathi
65d25690e5 [workers] Add the cast-albums worker (#1151) 2024-03-19 15:35:11 +05:30
Manav Rathi
7c383023e4 [workers] Add the cast-albums worker 2024-03-19 15:33:09 +05:30
Manav Rathi
5092b74503 [workers] Add github-discord-notifier (#1150)
Start migrating workers to the monorepo. This PR brings in
github-discord-notifier.
2024-03-19 14:26:34 +05:30
Manav Rathi
ed547d5f2c Add empty vars section 2024-03-19 13:55:31 +05:30
Manav Rathi
1e50570936 wrangler publish is deprecated 2024-03-19 13:51:13 +05:30
Manav Rathi
2419b079af Add the github-discord-notifier code 2024-03-19 13:50:39 +05:30
Manav Rathi
cfd298a052 [workers] Start migrating workers to the monorepo 2024-03-19 13:14:25 +05:30
Manav Rathi
f0547d0a10 [meta] Omit unnecessary reruns of workflows when deploying (#1149)
When we merge main into a deploy/* branch (e.g.
https://github.com/ente-io/ente/pull/1147), all changes get pulled in
not just the one related to that deployment, and this causes almost all
of the path based workflows to run again unnecessarily. Exclude the
various "deploy/**" branches to stop these unnecessary workflows from
being triggered.
2024-03-19 13:10:21 +05:30
Manav Rathi
fa3f249a7a [meta] Omit unnecessary reruns of workflows when deploying
When we merge main into a deploy/* branch
(e.g. https://github.com/ente-io/ente/pull/1147), all changes get pulled in not
just the one related to that deployment, and this causes almost all of the path
based workflows to run again unnecessarily. Exclude the various "deploy/**"
branches to stop these unnecessary workflows from being triggered.
2024-03-19 12:59:04 +05:30
Neeraj Gupta
449284a6a1 [server] API to fetch ML embeddings for given fileIDs (#1144)
## Description
- Also started storing the embedding size and version in the table. This
will come handy while comparing overall size when different compression
and serialization formats are used..
- Also, it can be used to smartly auto-download the embeddings or inform
the user about approximate size when they decide to enable indexing or
search on a particular client.

## Tests

 Verified that embedding fetch and store is working fine.
 Verified that embeddings/diff API is working fine.
2024-03-19 12:23:24 +05:30
Neeraj Gupta
685e1b82c9 [server] Fix query for diff API 2024-03-19 12:09:39 +05:30
Manav Rathi
e7de4da64e [web] Update yarn.lock (#1145)
This seems to have been overwritten in a recent PR, perhaps because of a
different yarn version being used.
2024-03-19 11:43:02 +05:30
Neeraj Gupta
2b3494e61c [server] Return embedding version in API response 2024-03-19 11:25:00 +05:30
Manav Rathi
fc3aea7694 [web] Update yarn.lock 2024-03-19 11:24:42 +05:30
Neeraj Gupta
e8756a8cf7 [server] Remove unused code 2024-03-19 11:06:36 +05:30
Neeraj Gupta
3df49beb07 [server] Remove unused model name 2024-03-19 11:04:25 +05:30
Neeraj Gupta
05b0f1649f [server] store embedding objSize & version 2024-03-19 11:02:22 +05:30
Neeraj Gupta
7634b2c153 [server] DB migration scripts for emedding table changes 2024-03-19 10:56:25 +05:30
Manav Rathi
14ad67e86c [server] Fix the dependency on nginx (#1143)
Noticed during the recent deployment.
2024-03-19 10:35:42 +05:30
Manav Rathi
2f9a49e1ca [web] New translations (#1139)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-03-19 10:33:18 +05:30
Manav Rathi
303b12c709 Fix the dependency on nginx 2024-03-19 09:31:51 +05:30
Crowdin Bot
9e44f5cc20 New Crowdin translations by GitHub Action 2024-03-19 01:37:04 +00:00
Neeraj Gupta
f0236acf8f [server] Minor bug fixes in embedding/files API 2024-03-19 06:15:55 +05:30
Manav Rathi
100fa04de7 [infra] Status service (#1138)
- Add the service the serves status.ente.io
- Support nginx configuration reloads
2024-03-19 05:54:36 +05:30
Manav Rathi
f6e575885d Note the dashboard URL 2024-03-19 05:41:16 +05:30
Manav Rathi
9fe8d1fd53 Add recommended headers 2024-03-18 21:57:25 +05:30
Manav Rathi
19724367df Support nginx configuration reloads 2024-03-18 21:47:53 +05:30
Manav Rathi
ba896f2f3a Match file name convention 2024-03-18 21:36:01 +05:30
Manav Rathi
64c95d2397 Tweak formatting 2024-03-18 21:34:24 +05:30
Manav Rathi
2486a94d21 Add the service the serves status.ente.io 2024-03-18 21:22:15 +05:30
Manav Rathi
19799957c0 [web] Update translations for the non-photos apps (#1134) 2024-03-18 20:06:28 +05:30
Manav Rathi
4ff378cd06 [web] Update translations for the non-photos apps 2024-03-18 20:01:37 +05:30
Manav Rathi
4e8222afa1 [server] Deploy behind nginx (#1132)
Tweaks and fixes as we go towards a real deployment
2024-03-18 19:35:54 +05:30
Prateek Sunal
bc0716808f fix: remove the custom next-electron-server 2024-03-18 18:44:57 +05:30
Prateek Sunal
37a1f01b3f Merge remote-tracking branch 'origin/main' into beta 2024-03-18 18:42:09 +05:30
Prateek Sunal
99fbfea65f chore: bump flutter to v3.19.3 2024-03-18 18:41:34 +05:30
Prateek Sunal
42142514a1 fix: clear search text on exit 2024-03-18 18:15:30 +05:30
Prateek Sunal
adf38b9262 chore: lint fixes and ignores 2024-03-18 18:07:01 +05:30
Prateek Sunal
44f0bfd8b5 fix: remove deprecated code 2024-03-18 18:06:51 +05:30
Prateek Sunal
d9b56a95aa fix: export logs action 2024-03-18 18:03:48 +05:30
Prateek Sunal
a292114d68 feat: search ui change 2024-03-18 17:52:48 +05:30
Prateek Sunal
99c43cc3ef fix: don't show rate on desktop 2024-03-18 17:40:54 +05:30
Manav Rathi
fb0e2d2604 Don't restart museum on restarting nginx 2024-03-18 15:54:25 +05:30
Manav Rathi
c177efe79c Add documentation comments 2024-03-18 15:44:00 +05:30
Manav Rathi
27b13765d7 Fix the environment var 2024-03-18 15:23:23 +05:30
Manav Rathi
f494832bd7 Limit max connections at the nginx level 2024-03-18 15:21:47 +05:30
Neeraj Gupta
c564e50d59 [server] change method type to post 2024-03-18 14:38:11 +05:30
Manav Rathi
53cf5ffc45 Fix some paths in README 2024-03-18 14:35:42 +05:30
Manav Rathi
a341f81932 [museum] Support running behind Nginx (#1130)
- Move deployment related stuff into a separate folder
- Document the overall approach better
- Add an Nginx specific environment and service definition
- Remove the restart limiter
2024-03-18 13:56:01 +05:30
Manav Rathi
c43a0a7182 Shorten 2024-03-18 13:31:10 +05:30
Manav Rathi
2f38f23b77 Update install instructions 2024-03-18 13:30:07 +05:30
Neeraj Gupta
b9ec72bbb4 Merge branch 'main' into file_embedding 2024-03-18 13:12:14 +05:30
Manav Rathi
7ded8ad4fe Fix key name 2024-03-18 13:07:36 +05:30
Manav Rathi
30cf709eb2 Wrap 2024-03-18 12:39:16 +05:30
Manav Rathi
d8347c3976 Remove extra environment 2024-03-18 12:36:29 +05:30
Manav Rathi
5ee878c30e Require nginx before starting museum.nginx 2024-03-18 12:33:27 +05:30
Manav Rathi
f695c5e0d3 Remove extra newline 2024-03-18 11:06:54 +05:30
Manav Rathi
303b26b95f Tweak the nginx setup 2024-03-18 11:04:31 +05:30
Manav Rathi
9ba9b8a984 Add initial nginx conf 2024-03-18 10:39:39 +05:30
Manav Rathi
d893efe5d1 Remove the restart limiter
During recent DDoS attacks, these restart limits had to be manually
disabled. For now, disabling them in our reference copy too, will bring them
back if they are needed later.
2024-03-18 10:27:42 +05:30
Manav Rathi
a0599f7b33 Outline the nginx approach 2024-03-18 10:25:11 +05:30
Manav Rathi
9beedcf4e0 Move into separate folder 2024-03-18 10:16:55 +05:30
Neeraj Gupta
c7fd976ab7 [server] Update alert copy & frequency (#1129)
## Description

## Tests
2024-03-18 10:15:16 +05:30
Neeraj Gupta
47747f1d56 Update config 2024-03-18 10:12:02 +05:30
Neeraj Gupta
7de60f1ced [server] Reduce discord message frequency 2024-03-18 10:02:13 +05:30
Neeraj Gupta
4acc8395ba [server] Prefix discord msg with hostname 2024-03-18 09:59:35 +05:30
Manav Rathi
309c72d934 [web] New translations (#1128)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-03-18 09:17:53 +05:30
Manav Rathi
efe6a5a713 [infra] Import the base nginx service definition we use (#1127) 2024-03-18 09:17:29 +05:30
Shubh
e098511960 [auth] add rockstar games icon (#1125)
add Rockstar Games icon

Signed-off-by: Shubh <shubhisroking@proton.me>
2024-03-18 09:08:31 +05:30
Crowdin Bot
6bbd296c25 New Crowdin translations by GitHub Action 2024-03-18 03:38:20 +00:00
Manav Rathi
3dfd993430 [web] Add passkeys related translations (#1124)
Obtained these strings from
33faadf83e/apps/accounts/public/locales/en/translation.json (L632)

I didn't have a way of exhaustively ensuring that all strings are
covered, but I've tried to manually verify.

Once this is merged and translation files synced with Crowdin, I'll do
another PR to update the `local/**/translation.json` files within
apps/accounts.
2024-03-18 09:07:27 +05:30
Manav Rathi
022c11d7fa Import the base nginx service definition we use 2024-03-18 03:50:21 +05:30
Manav Rathi
9012a96a58 [web] Add passkeys related translations
Obtained these strings from 33faadf83e/apps/accounts/public/locales/en/translation.json (L632)

I didn't have a way of exhaustively ensuring that all strings are covered, but
I've tried to manually verify.

Once this is merged and translation files synced with Crowdin, I'll do another
PR to update the `local/**/translation.json` files within apps/accounts.
2024-03-17 11:55:57 +05:30
Manav Rathi
f85f220c1d Web Passkey Recovery (#1047)
## Description

* Adds passkey recovery feature parity from #1013

## Tests
2024-03-17 11:44:13 +05:30
Neeraj Gupta
ba6a8b6aa4 [docs] Update family-plans.md (#1123)
## Description

## Tests
2024-03-17 11:30:35 +05:30
Neeraj Gupta
12b9ac4db6 [server] Rate limit (#1121)
## Description

## Tests
2024-03-17 09:59:59 +05:30
Neeraj Gupta
e927064476 [server] Add endpoint to get embedding for givenFilesIds 2024-03-17 09:37:02 +05:30
Neeraj Gupta
b78b2fe715 Delete yarn.lock 2024-03-16 23:57:05 +05:30
Neeraj Gupta
36982c5332 [server] Add util to findMissingElements while comparing two arrays 2024-03-16 02:30:25 +05:30
Vishnu Mohandas
a5340764a8 [mobile][photos] Share to multiple people at once (#1116)
[mobile][photos] Share to multiple people at once
2024-03-16 00:07:12 +05:30
Vishnu Mohandas
bf3b257344 [mobile] Enhance ML (#1114)
## Description
- Increase the interaction timeout to 15s
- Make sure that models aren't downloaded over mobile data, and that it
resumes initialization when network conditions are favorable

## Tests
- [x] Tested manually
2024-03-16 00:05:29 +05:30
Prateek Sunal
426e1c772f chore: update deps 2024-03-15 21:45:20 +05:30
ashilkn
64814ef82f minor fixes 2024-03-15 21:07:38 +05:30
ashilkn
bb622bfcd0 fix typo in file name 2024-03-15 20:49:51 +05:30
ashilkn
07c41c4c92 extract strings 2024-03-15 20:22:15 +05:30
Prateek Sunal
e1b1d57714 fix: endpoint in network.dart 2024-03-15 20:00:48 +05:30
Prateek Sunal
2a84f7810d Merge remote-tracking branch 'origin/main' into beta 2024-03-15 19:58:35 +05:30
Vishnu Mohandas
11ccb37382 [server] Enhancements for self hosters (#1115)
- Disable the example.org domains in the default self-hosted
configuration (saner default)
- Add a new flag to support S3 path style URLs without disabling SSL
(needed for folks who want to run minio as their production S3, without
disabling SSL)

**Tested by**

Running a local cluster with the following `museum.yaml` and verifying
that the path style URLs are kicking in.

```
s3:
    use_path_style_urls: true
```
2024-03-15 17:35:10 +05:30
Manav Rathi
92ae1be40a Add a new flag to support S3 path style URLs without disabling SSL
The use case for this came up in Discord - someone is running a custom self
hosted instance where they're using MinIO as their "production S3", but it is
not local (so they don't want the clients to connect without SSL). So we need a
way to get MinIO to work, which needs path style URLs, without also disabling
the SSL.
2024-03-15 17:18:48 +05:30
Manav Rathi
87d39ae2dd Disable the example.org domains in the default self-hosted configuration
People won't be able to get emails, but they can still create accounts on that
domain in the default setup. So just comment it out as a saner default.
2024-03-15 17:09:40 +05:30
vishnukvmd
14c75333f3 Simplify states 2024-03-15 16:49:02 +05:30
vishnukvmd
7941d4bcb6 Skip model downloads over mobile data 2024-03-15 16:36:45 +05:30
ashilkn
ed2e3bae0d clean up 2024-03-15 16:21:04 +05:30
ashilkn
1e8f772280 feat(share-to-multi-contacts-at-once): multiple changes in one commit due mistakes when commiting
- Change 'Add viewer' buttons logic to work with the new UI.
- Long press on an email to verify.
- Filter suggestions list with the text entered in 'Enter email' text field.
2024-03-15 15:47:14 +05:30
Vishnu Mohandas
ebbdf8335b [auth] New translations (#1111)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-03-15 13:37:42 +05:30
Manav Rathi
d488924f78 [infra] Remind about needing to also enable node-exporter (#1113) 2024-03-15 13:06:56 +05:30
Manav Rathi
5841aefb75 [infra] Remind about needing to also enable node-exporter 2024-03-15 13:06:07 +05:30
Manav Rathi
1874053004 [docs] Mention submodules in the community external S3 guide (#1112)
Someone got confused about this missing instruction in Discord. Have
added the submodule step, and also called out that it might be a good
idea to also refer to the project READMEs in case this guide in the
future drifts out of sync.
2024-03-15 13:03:04 +05:30
Manav Rathi
bd75eba941 [docs] Mention submodules in the community external S3 guide 2024-03-15 13:00:15 +05:30
ashilkn
a4985116b8 feat(share-to-multi-contacts-at-once): change data structure of selected emails from List to Set to avoid duplicates 2024-03-15 12:53:32 +05:30
ashilkn
487be4a451 feat(share-to-multi-contacts-at-once): change state to selected state of an existing email if an already existing email in the list is added from 'add new email' 2024-03-15 12:44:54 +05:30
ashilkn
987250d4f3 feat(share-to-multi-contacts-at-once): add new email to list below with selected state 2024-03-15 12:34:30 +05:30
ashilkn
0b6d44eb99 feat(share-to-multi-contacts-at-once): make list of suggested users a state variable 2024-03-15 11:21:21 +05:30
Manav Rathi
53e4b490cc [web] New translations (#1110)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-03-15 09:01:33 +05:30
Crowdin Bot
2f86fbdd95 New Crowdin translations by GitHub Action 2024-03-15 02:03:25 +00:00
Crowdin Bot
123fc8a883 New Crowdin translations by GitHub Action 2024-03-15 01:37:14 +00:00
Manav Rathi
cd9c6f713a [infra] Add more details about services (#1109)
- Import the existing DesktopDistribute notes
- Define services
- Add prometheus and promtail definitions
2024-03-14 22:33:26 +05:30
Manav Rathi
12bdbcfbdc npx prettier --config ../docs/.prettierrc.json --write '**/*.md' 2024-03-14 22:33:00 +05:30
Manav Rathi
dc29ab496f Add prometheus and promtail definitions 2024-03-14 21:56:36 +05:30
Ashil
dc2474801c [photos][mobile]Update home_widget git dependency URL (#1098) 2024-03-14 21:23:53 +05:30
Manav Rathi
477e3fee80 Define services 2024-03-14 21:18:38 +05:30
Manav Rathi
b79f8347b6 Import the existing DesktopDistribute notes 2024-03-14 20:31:47 +05:30
Manav Rathi
74a2cd7fe4 [mobile] Update the README link to GitHub APK for photos (#1108) 2024-03-14 18:23:44 +05:30
Manav Rathi
7aed641189 Also update the links in the fastlane descriptions 2024-03-14 18:22:51 +05:30
Manav Rathi
ddeafe0749 [mobile] Update the link to GitHub APK for photos 2024-03-14 18:16:01 +05:30
Manav Rathi
0472cde0cb [infra] Import copycat db (#1107)
- Create infra directory
- Import the code for copycat-db
- Update its paths for the monorepo
- Fix up its GitHub workflow for the monorepo (untested yet)
2024-03-14 17:35:38 +05:30
Manav Rathi
7ddfeb93dd Fix up the workflow 2024-03-14 17:32:54 +05:30
Manav Rathi
aaffc740bc Update paths 2024-03-14 17:29:11 +05:30
Manav Rathi
3e38d56579 Import the code for copycat-db 2024-03-14 17:20:00 +05:30
Manav Rathi
6e9893e5c5 Create infra directory 2024-03-14 17:14:47 +05:30
Manav Rathi
678879e5fd [server] Move the server related gitattributes within that folder (#1106)
I mistakenly assumed that the gitattributes file can only be at the top
level. However, this doesn't seem to be the case - I noticed this in a
recent PR - https://github.com/ente-io/ente/pull/1104/

And it is indeed documented:

> When deciding what attributes are assigned to a path, Git ....
.gitattributes file in the same directory as the path in question. ..
>
> - https://git-scm.com/docs/gitattributes

Ref:
https://stackoverflow.com/questions/71784062/can-we-have-multiple-gitattributes-files-in-different-repo-subfolders
2024-03-14 16:48:08 +05:30
vishnukvmd
22685ae911 Increase interaction timeout to 15s 2024-03-14 16:35:38 +05:30
Manav Rathi
966cc697e7 [server] Move the server related gitattributes within that folder
I mistakenly assumed that the gitattributes file can only be at the top
level. However, this doesn't seem to be the case - I noticed this in a recent PR
- https://github.com/ente-io/ente/pull/1104/files.

And it is indeed documented:

> When deciding what attributes are assigned to a path, Git .... .gitattributes
> file in the same directory as the path in question. ..
>
> - https://git-scm.com/docs/gitattributes

Ref: https://stackoverflow.com/questions/71784062/can-we-have-multiple-gitattributes-files-in-different-repo-subfolders
2024-03-14 16:35:36 +05:30
Manav Rathi
3d23a3b21a [server] Improve the architecture diagram (#1105)
Add a dotted arrow between museum and the hot object storage to indicate
that clients talk directly to the primary S3 storage.

This has confused some users who were trying to setup self-hosting, them
not realizing that the minio buckets need to be accessible outside the
container.

The actual flow is - for both GET and PUT, museum conjures up pre-signed
URLs by talking to the S3 bucket, and vends these pre-signed URLs back
to the client. Thereafter though (unless routed via a Cloudflare worker,
which is not the case when self-hosting), the clients directly connect
to this presigned URL.

Maybe too much information to convey with a single dotted arrow, but at
least it'll give a hint that there is a direct connection there
somewhere.
2024-03-14 16:31:10 +05:30
Neeraj Gupta
ffae4ae99b [cli] Admin APIs for list-users, disable-2fa, & delete-user (#1104)
## Description
Also made it optional to pass the admin-user when there's only one
account is configured.

## Tests

Tested locally
2024-03-14 16:26:31 +05:30
github-actions[bot]
a010a90ed6 [mobile] New translations (#1092)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-03-14 16:24:13 +05:30
Manav Rathi
2905315e00 [server] Improve the architecture diagram
Add a dotted arrow between museum and the hot object storage to indicate that
clients talk directly to the primary S3 storage.

This has confused some users who were trying to setup self-hosting, them not
realizing that the minio buckets need to be accessible outside the container.

The actual flow is - for both GET and PUT, museum conjures up pre-signed URLs by
talking to the S3 bucket, and vends these pre-signed URLs back to the
client. Thereafter though (unless routed via a Cloudflare worker, which is not
the case when self-hosting), the clients directly connect to this presigned URL.

Maybe too much information to convey with a single dotted arrow, but at least
it'll give a hint that there is a direct connection there somewhere.
2024-03-14 16:23:53 +05:30
github-actions[bot]
b9a7d09265 [auth] New translations (#1093)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-03-14 16:23:51 +05:30
Neeraj Gupta
80498340b6 [cli] Mark docs/generated as generated for Github 2024-03-14 16:20:47 +05:30
ashilkn
96072a607c nit: fix typo 2024-03-14 16:20:08 +05:30
Neeraj Gupta
9c04c8fbe6 [cli] Generate docs 2024-03-14 16:18:37 +05:30
Neeraj Gupta
bc47368a01 [cli] Add API to delete-user 2024-03-14 16:18:08 +05:30
ashilkn
8bf17af6de feat(share-to-multi-contacts-at-once): make multi-select possible from list of existing contacts 2024-03-14 16:14:06 +05:30
Neeraj Gupta
6af62d8727 [cli] Add admin disable-2fa cmd 2024-03-14 16:13:11 +05:30
Neeraj Gupta
da3c6a78d4 [cli] Make it optional to pass adminUser when only one account is configured 2024-03-14 16:01:40 +05:30
Neeraj Gupta
324eeed1c5 [cli] Add admin list-user cmd 2024-03-14 15:53:26 +05:30
Manav Rathi
3ecc699962 [docs] Note boxes fix (#1103)
## Description
This fixes note boxes having incorrect titles, like this one:
<img width="719" alt="image"
src="https://github.com/ente-io/ente/assets/41323182/4072f774-f507-4161-98ff-86724c84c680">

## Tests
- [x] Tested fixes on a selfhosted instance
<img width="701" alt="image"
src="https://github.com/ente-io/ente/assets/41323182/e0338c2b-c0c6-42b0-82a5-cba068f192e1">
<img width="699" alt="image"
src="https://github.com/ente-io/ente/assets/41323182/0c839ec9-13fd-46cd-bbb7-7f0347b19a8e">
2024-03-14 15:50:46 +05:30
Prateek Sunal
46e2cb6012 chore: lint fix 2024-03-14 15:47:13 +05:30
green
91c5e54cdc Update index.md 2024-03-14 11:11:44 +01:00
Manav Rathi
cc7dc0f142 [web] Exit fullscreen if needed when pressing the info button (#1102)
Fixes: Info button is not working when videos are playing in full screen
mode.

**Tested by**

Wasn't working before, but it works now. Still doesn't work with the
keybinding,
have left a note about that in the code.
2024-03-14 15:41:34 +05:30
Manav Rathi
56b750c1ac [web] Exit fullscreen if needed when pressing the info button
Fixes: Info button is not working when videos are playing in full screen mode.

**Tested by**

Wasn't working before, but it works now. Still doesn't work with the keybinding,
have left a note about that in the code.
2024-03-14 15:39:03 +05:30
green
39e5415e0a Update index.md 2024-03-14 11:08:52 +01:00
Prateek Sunal
5634b50528 Merge remote-tracking branch 'origin/main' into beta 2024-03-14 15:35:28 +05:30
Manav Rathi
318e8643fb [web] Show select-all-for-day checkmark only when there is a selection (#1101)
For now, this at least makes it less obtrusive. Once I have cleaned up
the state handling around selection (to better integrate this with the
rest of the selection state so that there are no discrepancies), can
revisit the UI - e.g. show it only on hover, or reduce the size of the
checkbox / give it a rounded look etc to make it look even less
obstrusive.
2024-03-14 14:53:16 +05:30
Manav Rathi
f1e68e9eef Show select-all-for-day checkmark only when there is a selection 2024-03-14 14:42:27 +05:30
ashilkn
6b70d8556b Use MediaQuery.viewInsetsOf() instead of MediaQuery.of() to reduce rebuids 2024-03-14 11:52:13 +05:30
Manav Rathi
6f94cfb2ce [docs] Call out the gotcha of not connecting to the correct instance (#1100) 2024-03-14 11:37:48 +05:30
Manav Rathi
0e4ca2ad21 [docs] Call out the gotcha of not connecting to the correct instance 2024-03-14 11:37:27 +05:30
ashilkn
d4cf8c5f9a move super.initState to top 2024-03-14 11:25:38 +05:30
ashilkn
48a8bab862 dispose text field focus node 2024-03-14 11:24:50 +05:30
Manav Rathi
23aacd5810 [docs] Move migration guides, and otherwise enhance and rearrange (#1099)
For the migration guides in particular, I've retained the original files
also for now to avoid breaking links.
2024-03-14 11:14:46 +05:30
Manav Rathi
c71d06d405 Mention the self-hosting docs in the server README 2024-03-14 11:12:27 +05:30
Manav Rathi
b1da0c1b70 yarn pretty 2024-03-14 11:10:47 +05:30
Manav Rathi
cfe7b1baa0 Remove duplicate section 2024-03-14 11:09:26 +05:30
Manav Rathi
abc93872e9 Add header 2024-03-14 11:08:11 +05:30
Manav Rathi
7b850cec43 Remove incomplete notice 2024-03-14 11:06:16 +05:30
Manav Rathi
3ffe43e9bf Also add a FAQ entry 2024-03-14 11:05:40 +05:30
Manav Rathi
6287d40a18 Split 2024-03-14 11:01:36 +05:30
Manav Rathi
03c875a8b8 Rearrange 2024-03-14 10:54:42 +05:30
Manav Rathi
c18115ef52 Fix link 2024-03-14 10:48:25 +05:30
Manav Rathi
55e3a93cf6 Mention the word "export" in the sidebar item 2024-03-14 10:46:26 +05:30
Manav Rathi
306ee1ad1c Fix the next page link on the index page
...by reintroducing it in the sidebar listing.
2024-03-14 10:44:35 +05:30
Manav Rathi
60d216c6fa yarn pretty 2024-03-14 10:43:19 +05:30
Manav Rathi
b2d64d9b72 Add page headers 2024-03-14 10:41:52 +05:30
Manav Rathi
bb0f584e91 [docs][auth] Move the migration guides to the help docs
Keep the old files, adding redirection notices to them.
2024-03-14 10:38:39 +05:30
Manav Rathi
26ad4a0a70 [web] New translations (#1091)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-03-14 09:59:58 +05:30
Manav Rathi
fd04b59985 [meta] Document the tag format, and call out the need to keep tag == title (#1096)
Related:
https://github.com/ente-io/ente/discussions/1087#discussioncomment-8775807
2024-03-14 09:58:54 +05:30
Crowdin Bot
419f562aed New Crowdin translations by GitHub Action 2024-03-14 04:22:53 +00:00
Vishnu Mohandas
3cd7d68192 [meta] Reduce the frequency of the sync translations cron (#1095)
[meta] Reduce the frequency of the sync translations cron
2024-03-14 09:52:00 +05:30
Manav Rathi
7fabb3a03c [meta] Document the tag format, and call out the need to keep tag == title
Related: https://github.com/ente-io/ente/discussions/1087#discussioncomment-8775807
2024-03-14 09:50:08 +05:30
Manav Rathi
1abf7edb99 [meta] Reduce the frequency of the sync translations cron
Every day is too much noise - we really only need this

- When a string gets changed in the source translation, in which case this
  workflow gets triggered automatically anyway.

- Before we do a new release (this doesn't automatically happen, but the
  workflow can be triggered manually if needed).

For now, reduce the frequency of the daily job to pull new translations from
Crowdin: now it'll only happen on Tuesdays and Fridays (just an arbitrary
choice).
2024-03-14 09:32:30 +05:30
Manav Rathi
925133a297 [meta] Reintroduce .vscode in the mobile gitignores (#1094)
The intent had always been to have the individual project gitignores be
self contained. In my previous PR
(https://github.com/ente-io/ente/pull/516) I'd for some reason not
followed this: correcting my mistake now. .vscode is gitignored both at
the top level and at the individual project levels (as it was
originally).
2024-03-14 09:22:47 +05:30
Manav Rathi
3b10c7e93f [meta] Reintroduce .vscode in the mobile gitignores
The intent had always been to have the individual project gitignores be self
contained. In my previous PR (https://github.com/ente-io/ente/pull/516) I'd for
some reason not followed this: correcting my mistake now. .vscode is gitignored
both at the top level and at the individual project levels (as it was
originally).
2024-03-14 09:20:17 +05:30
Manav Rathi
f884aa6d71 [auth] Authy guide rewrite (#1088)
## Description
Authy migration guide rewrite to make things much clearer and easier to
follow.
## Tests
N/A
2024-03-14 09:15:35 +05:30
Manav Rathi
0c670d785b [docs] Authy migration guide (#1089)
## Description
Adds the Authy migration guide from auth/migration-guides into the new
help website.
## Tests
- [X] Tested on a selfhosted instance to ensure that all new content is
properly visible, see screenshot below
<img width="1440" alt="image"
src="https://github.com/ente-io/ente/assets/41323182/aeb59c9f-0e36-4d94-a5f8-1042081db87b">
2024-03-14 09:13:36 +05:30
green
0b96b1afe6 Use same style as wiki 2024-03-13 19:05:52 +01:00
green
40cea19634 Merge branch 'ente-io:main' into help-guide 2024-03-13 19:02:19 +01:00
Prateek Sunal
343eb34a7a chore: bump version 2024-03-13 23:32:03 +05:30
vishnukvmd
1e1633bb45 Merge branch 'main' into f-droid 2024-03-13 21:57:19 +05:30
Vishnu Mohandas
ba5686a07a v0.8.71 (#1090) 2024-03-13 21:57:05 +05:30
vishnukvmd
1cacefa1fd v0.8.71 2024-03-13 21:56:48 +05:30
vishnukvmd
c0f33de0c8 Remove dead code 2024-03-13 21:56:09 +05:30
green
20a6b81b05 Update index.md
More formal language to make it more wiki-esque
2024-03-13 16:30:54 +01:00
green
4731f2c43b Update sidebar.ts 2024-03-13 16:22:25 +01:00
green
190357fe64 Rename docs/docs/auth/migration-guides/authy.md to docs/docs/auth/migration-guides/authy/index.md 2024-03-13 16:17:50 +01:00
green
d65daba103 Update sidebar.ts 2024-03-13 16:16:52 +01:00
green
38c36d203a Create authy.md 2024-03-13 16:11:33 +01:00
green
a4a1ee93f8 Update authy.md 2024-03-13 15:58:08 +01:00
green
f4acb98044 Update authy.md 2024-03-13 15:53:57 +01:00
green
4ccab22c3f Update authy.md 2024-03-13 15:46:53 +01:00
green
8d8591cf60 Update authy.md 2024-03-13 15:44:44 +01:00
Vishnu Mohandas
72719d2234 [server] Add admin API to change email address (#1086)
## Tests
- [x] Tested on a local instance to verify that the email is updated as
expected
2024-03-13 17:37:14 +05:30
vishnukvmd
77276d8d6c [server] Add admin API to change email address 2024-03-13 17:31:38 +05:30
Vishnu Mohandas
c6c7b0ab32 Ignore linter on the f-droid branch (#1083) 2024-03-13 14:58:01 +05:30
vishnukvmd
df316463ef Ignore linter on the f-droid branch 2024-03-13 14:57:19 +05:30
Manav Rathi
be9af355ce [web] Fix the upload tests (#1082)
The current approach wasn't working. Not sure what caused it to stop
working,
but anyway that was an hacky import, as evidenced by the ungainly
warning
webpack would print on `yarn dev`. So instead of taking the path, we
just take
the JSON contents directly, sidestepping all that.

**Tested by**

Rerunning the upload tests
2024-03-13 14:31:20 +05:30
Manav Rathi
2faef37f4b Fix the upload tests
The current approach wasn't working. Not sure what caused it to stop working,
but anyway that was an hacky import, as evidenced by the ungainly warning
webpack would print on `yarn dev`. So instead of taking the path, we just take
the JSON contents directly, sidestepping all that.

**Tested by**

Rerunning the upload tests
2024-03-13 14:25:07 +05:30
vishnukvmd
417621b17c Pull code for transistor-background-fetch 2024-03-13 14:14:19 +05:30
vishnukvmd
8322540732 Add submodule for Flutter 2024-03-13 14:13:40 +05:30
vishnukvmd
2d61be37bb Add submodule for Isar 2024-03-13 14:12:23 +05:30
github-actions[bot]
83aa3db795 [mobile] New translations (#740)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-03-13 13:55:47 +05:30
Crowdin Bot
5db0da9aaf New Crowdin translations by GitHub Action 2024-03-13 13:55:20 +05:30
Vishnu Mohandas
3abc7249bd Cleanup code maintained specifically for F-Droid (#1081) 2024-03-13 13:54:58 +05:30
vishnukvmd
2a10aa7d61 Merge branch 'fdroid_cleanup' into f-droid 2024-03-13 13:52:25 +05:30
Ashil
6ef1da68e0 [photos][mobile] Performance improvement (#1080)
## Description

Stack has `clipBehaviour = Clip.hardEdge` by default. This is necessary
if content inside the stack is overflowing it's boundary and it has to
be clipped. Clipping is expensive so it's worth removing it when it
makes sense.

In this case of `GalleryFileWidget`, content doesn't overflow the
Stack's boundary so the clip operation can be removed by setting
`clipBehaviour = Clip.none`.
2024-03-13 13:52:03 +05:30
vishnukvmd
1c1c9bb0d7 Update docs 2024-03-13 13:51:20 +05:30
vishnukvmd
b96e7341e3 Remove thirdparty dependency on transistor-background-fetch 2024-03-13 13:47:33 +05:30
vishnukvmd
163c5de1cc Remove Isar as a submodule 2024-03-13 13:46:59 +05:30
vishnukvmd
124ef86054 Remove flutter as a submodule 2024-03-13 13:45:44 +05:30
vishnukvmd
004eb310b3 Prepare for F-Droid 2024-03-13 13:43:46 +05:30
Vishnu Mohandas
ccb6a4a283 v0.8.70 (#1079) 2024-03-13 12:43:51 +05:30
vishnukvmd
a3c80556d2 v0.8.70 2024-03-13 12:43:31 +05:30
Vishnu Mohandas
851ce5de73 Fix path to APK (#1078) 2024-03-13 12:23:16 +05:30
vishnukvmd
f8d956d47f Fix path to APK 2024-03-13 12:22:11 +05:30
Neeraj Gupta
7543dc6b57 [docs] Update custom server section for cli 2024-03-13 12:03:56 +05:30
httpjamesm
d9b1081849 Merge branch 'main' into feature/web-passkey-recovery 2024-03-12 13:57:57 -04:00
httpjamesm
cfb7c61c63 fix: lock file 2024-03-12 13:57:20 -04:00
httpjamesm
609e4d1207 feat: open accounts portal in a new tab 2024-03-12 13:56:59 -04:00
httpjamesm
d4d2c68299 feat: use encryption key for more entropy in reset secret 2024-03-12 13:56:34 -04:00
httpjamesm
438387a4cb fix: remove organize imports dep 2024-03-11 13:55:44 -04:00
httpjamesm
60a8ca3e2e feat: link to recovery page 2024-03-11 13:54:22 -04:00
httpjamesm
d0a73d729d feat: passkey recover page 2024-03-11 13:53:49 -04:00
httpjamesm
267bd56285 feat: twoFactorType prop with default in recovery page 2024-03-11 13:52:46 -04:00
httpjamesm
44568dc142 feat: text recovery two factor button on passkey error 2024-03-11 13:48:05 -04:00
httpjamesm
83a17e4d11 feat: default to totp 2024-03-11 13:40:49 -04:00
httpjamesm
cbdb4907cf feat: two factor type 2024-03-11 13:30:11 -04:00
httpjamesm
27a1d420db feat: configure passkey recovery on passkeys click 2024-03-11 13:24:25 -04:00
httpjamesm
69048844d7 fix: add prettier-plugin-organize-imports 2024-03-11 13:10:27 -04:00
httpjamesm
048162ba1f fix: resp data 2024-03-11 13:09:27 -04:00
httpjamesm
2928cae79a feat: configurePasskeyRecovery in service 2024-03-11 13:04:53 -04:00
httpjamesm
1d4f92c39b feat: isPasskeyRecoveryEnabled in service 2024-03-11 13:03:15 -04:00
Prateek Sunal
d1ce545e5f chore: bump flutter in auth workflow 2024-03-10 12:24:50 +05:30
Prateek Sunal
174274ee41 chore: version bump 2024-03-10 12:24:34 +05:30
Prateek Sunal
9dad24313c fix: auth desktop workflow 2024-03-10 12:24:26 +05:30
Prateek Sunal
b007bec3c2 fix: download button in desktop 2024-03-10 00:13:33 +05:30
Prateek Sunal
9057ee92c6 chore: flutter version bump to latest stable 2024-03-10 00:07:20 +05:30
Prateek Sunal
09098c6d07 fix: update service logic 2024-03-10 00:07:04 +05:30
Prateek Sunal
d33bc6956c Merge branch 'beta' of https://github.com/ente-io/ente into beta 2024-03-07 21:11:08 +05:30
Prateek Sunal
666649d218 fix: recovery key text 2024-03-07 21:10:44 +05:30
Prateek Sunal
868190928d chore: lint fixes 2024-03-07 16:12:16 +05:30
Prateek Sunal
06104f2d3b fix: don't init window manager on mobile 2024-03-07 15:34:49 +05:30
Prateek Sunal
4e452d6b43 chore: lint fixes 2024-03-06 22:25:09 +05:30
Prateek Sunal
5fe5ac0935 Merge branch 'main' into beta 2024-03-06 22:23:32 +05:30
Prateek Sunal
47d7238f2b feat: revert removed features 2024-03-05 14:49:26 +05:30
Prateek Sunal
4b3ba41159 chore: lint fixes 2024-03-05 14:43:25 +05:30
Prateek Sunal
b86729050a feat: desktop (7124ed710acf33d895faa4730a04b87f9c5cac24) 2024-03-05 14:33:39 +05:30
1480 changed files with 41955 additions and 73142 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -2,15 +2,15 @@ name: "Sync Crowdin translations (auth)"
on:
push:
branches: [main]
paths:
# Run workflow when auth's intl_en.arb is changed
- "mobile/lib/l10n/arb/app_en.arb"
# Or the workflow itself is changed
- ".github/workflows/auth-crowdin.yml"
branches: [main]
schedule:
# See: [Note: Run every 24 hours]
- cron: "50 1 * * *"
# See: [Note: Run workflow on specific days of the week]
- cron: "50 1 * * 2,5"
# Also allow manually running the workflow
workflow_dispatch:
@@ -28,9 +28,9 @@ jobs:
base_path: "auth/"
config: "auth/crowdin.yml"
upload_sources: true
upload_translations: true
upload_translations: false
download_translations: true
localization_branch_name: crowdin-translations-auth
localization_branch_name: translations/auth
create_pull_request: true
skip_untranslated_strings: true
pull_request_title: "[auth] New translations"

View File

@@ -3,13 +3,13 @@ name: "Lint (auth)"
on:
# Run on every push to a branch other than main that changes auth/
push:
branches-ignore: [main]
branches-ignore: [main, "deploy/**"]
paths:
- "auth/**"
- ".github/workflows/auth-lint.yml"
env:
FLUTTER_VERSION: "3.16.9"
FLUTTER_VERSION: "3.19.3"
jobs:
lint:

View File

@@ -17,8 +17,8 @@ name: "Release (auth)"
# We use a suffix like `-test` to indicate that these are test tags, and that
# they belong to a pre-release.
#
# If you need to do multiple tests, add a +x at the end of the tag. e.g.
# `auth-v1.2.3-test+1`.
# If you need to do multiple tests, add a .x at the end of the tag. e.g.
# `auth-v1.2.3-test.1`.
#
# Once the testing is done, also delete the tag(s) please.
@@ -29,11 +29,11 @@ on:
- "auth-v*"
env:
FLUTTER_VERSION: "3.13.4"
FLUTTER_VERSION: "3.19.3"
jobs:
build-ubuntu:
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
defaults:
run:
@@ -72,6 +72,8 @@ jobs:
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }}
- name: Build PlayStore AAB
# disable this step if release tag contains nightly or beta
if: startsWith(github.ref, 'refs/tags/auth-v') && !contains(github.ref, 'nightly') && !contains(github.ref, 'beta')
run: |
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore
env:
@@ -83,7 +85,8 @@ jobs:
- name: Install dependencies for desktop build
run: |
sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libwebkit2gtk-4.0-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm libsqlite3-dev locate
sudo apt-get install -y libsecret-1-dev libsodium-dev libwebkit2gtk-4.0-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate appindicator3-0.1 libappindicator3-dev libffi-dev libtiff5
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
run: |
@@ -92,8 +95,6 @@ jobs:
mv appimagetool /usr/local/bin/
- name: Build desktop app
# Temporarily disable desktop builds
if: false
run: |
flutter config --enable-linux-desktop
dart pub global activate flutter_distributor
@@ -118,6 +119,8 @@ jobs:
updateOnlyUnreleased: true
- name: Upload AAB to PlayStore
# disable this step if release tag contains nightly or beta
if: startsWith(github.ref, 'refs/tags/auth-v') && !contains(github.ref, 'nightly') && !contains(github.ref, 'beta')
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
@@ -149,8 +152,6 @@ jobs:
run: mkdir artifacts
- name: Build Windows installer
# Temporarily disable desktop builds
if: false
run: |
flutter config --enable-windows-desktop
dart pub global activate flutter_distributor
@@ -159,13 +160,9 @@ jobs:
mv dist/**/ente_auth-*-windows-setup.exe artifacts/ente-${{ github.ref_name }}-installer.exe
- name: Retain Windows EXE and DLLs
# Temporarily disable desktop builds
if: false
run: cp -r build/windows/x64/runner/Release ente-${{ github.ref_name }}-windows
- name: Code sign Windows installer and EXE
# Temporarily disable desktop builds
if: false
uses: dlemstra/code-sign-action@v1
with:
certificate: "${{ secrets.WINDOWS_CERTIFICATE }}"
@@ -175,9 +172,10 @@ jobs:
auth/ente-${{ github.ref_name }}-windows/auth.exe
- name: Zip Windows EXE and DLLs
# Temporarily disable desktop builds
if: false
run: tar.exe -a -c -f auth/artifacts/ente-${{ github.ref_name }}-windows.zip auth/ente-${{ github.ref_name }}-windows
run: tar.exe -a -c -f artifacts/ente-${{ github.ref_name }}-windows.zip ente-${{ github.ref_name }}-windows
- name: Generate checksums
run: sha256sum artifacts/ente-* > artifacts/sha256sum-windows
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
@@ -248,8 +246,6 @@ jobs:
run: mkdir artifacts
- name: Build macOS DMG
# Temporarily disable desktop builds
if: false
run: |
flutter config --enable-macos-desktop
dart pub global activate flutter_distributor
@@ -257,16 +253,12 @@ jobs:
mv dist/**/ente_auth-*-macos.dmg artifacts/ente-${{ github.ref_name }}.dmg
- name: Code sign DMG
# Temporarily disable desktop builds
if: false
run: |
CERT_NAME=$(security find-identity -v -p codesigning | grep "Developer ID Application" | awk -F'"' '{print $2}' | grep -m1 "")
codesign --force --timestamp --sign "$CERT_NAME" --options runtime artifacts/ente-${{ github.ref_name }}.dmg
codesign --verify --verbose=4 artifacts/ente-${{ github.ref_name }}.dmg
- name: Notarize and staple DMG
# Temporarily disable desktop builds
if: false
run: |
xcrun notarytool submit artifacts/ente-${{ github.ref_name }}.dmg \
--wait \
@@ -279,6 +271,9 @@ jobs:
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
- name: Generate checksums
run: shasum -a 256 artifacts/ente-* > artifacts/sha256sum-macos
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:

View File

@@ -0,0 +1,24 @@
name: "Release (copycat-db)"
on:
workflow_dispatch: # Run manually
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Check out code
- uses: mr-smithers-excellent/docker-build-push@v6
name: Build & Push
with:
dockerfile: infra/copycat-db/Dockerfile
directory: infra/copycat-db
image: ente/copycat-db
registry: rg.fr-par.scw.cloud
enableBuildKit: true
buildArgs: GIT_COMMIT=${GITHUB_SHA}
tags: ${GITHUB_SHA}, latest
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

30
.github/workflows/desktop-lint.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: "Lint (desktop)"
on:
# Run on every push to a branch other than main that changes desktop/
push:
branches-ignore: [main, "deploy/**"]
paths:
- "desktop/**"
- ".github/workflows/desktop-lint.yml"
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: desktop
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "desktop/yarn.lock"
- run: yarn install
- run: yarn lint

View File

@@ -6,7 +6,7 @@ name: "Verify build (docs)"
on:
# Run on every push to a branch other than main that changes docs/
push:
branches-ignore: [main]
branches-ignore: [main, "deploy/**"]
paths:
- "docs/**"
- ".github/workflows/docs-verify-build.yml"

View File

@@ -2,15 +2,15 @@ name: "Sync Crowdin translations (mobile)"
on:
push:
branches: [main]
paths:
# Run workflow when mobiles's intl_en.arb is changed
- "mobile/lib/l10n/intl_en.arb"
# Or the workflow itself is changed
- ".github/workflows/mobile-crowdin.yml"
branches: [main]
schedule:
# See: [Note: Run every 24 hours]
- cron: "40 1 * * *"
# See: [Note: Run workflow on specific days of the week]
- cron: "40 1 * * 2,5"
# Also allow manually running the workflow
workflow_dispatch:
@@ -28,9 +28,9 @@ jobs:
base_path: "mobile/"
config: "mobile/crowdin.yml"
upload_sources: true
upload_translations: true
upload_translations: false
download_translations: true
localization_branch_name: crowdin-translations-mobile
localization_branch_name: translations/mobile
create_pull_request: true
skip_untranslated_strings: true
pull_request_title: "[mobile] New translations"

View File

@@ -0,0 +1,57 @@
name: "Internal Release - Photos"
on:
workflow_dispatch: # Allow manually running the action
env:
FLUTTER_VERSION: "3.19.3"
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Setup keys
uses: timheuer/base64-to-file@v1
with:
fileName: "keystore/ente_photos_key.jks"
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
- name: Build PlayStore AAB
run: |
flutter build appbundle --release --flavor playstore
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_photos_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
- name: Upload AAB to PlayStore
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos
releaseFiles: mobile/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
changesNotSentForReview: true

View File

@@ -3,13 +3,13 @@ name: "Lint (mobile)"
on:
# Run on every push to a branch other than main that changes mobile/
push:
branches-ignore: [main]
branches-ignore: [main, f-droid, "deploy/**"]
paths:
- "mobile/**"
- ".github/workflows/mobile-lint.yml"
env:
FLUTTER_VERSION: "3.13.4"
FLUTTER_VERSION: "3.19.5"
jobs:
lint:

View File

@@ -9,7 +9,7 @@ on:
- "photos-v*"
env:
FLUTTER_VERSION: "3.13.4"
FLUTTER_VERSION: "3.19.3"
jobs:
build:
@@ -25,6 +25,11 @@ jobs:
with:
submodules: recursive
- name: Setup JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
@@ -49,7 +54,7 @@ jobs:
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
- name: Checksum
run: sha256sum build/app/outputs/flutter-apk/ente.apk > build/app/outputs/flutter-apk/sha256sum
run: sha256sum build/app/outputs/flutter-apk/ente-${{ github.ref_name }}.apk > build/app/outputs/flutter-apk/sha256sum
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1

View File

@@ -3,7 +3,7 @@ name: "Lint (server)"
on:
# Run on every push to a branch other than main that changes server/
push:
branches-ignore: [main]
branches-ignore: [main, "deploy/**"]
paths:
- "server/**"
- ".github/workflows/server-lint.yml"

40
.github/workflows/server-publish.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: "Publish (server)"
on:
# Run manually, providing it the commit.
#
# To obtain the commit from the currently deployed museum, do:
# curl -s https://api.ente.io/ping | jq -r '.id'
#
# See server/docs/publish.md for more details.
workflow_dispatch:
inputs:
commit:
description: "Commit to publish the image from"
type: string
required: true
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.commit }}
- name: Build and push
uses: mr-smithers-excellent/docker-build-push@v6
with:
dockerfile: server/Dockerfile
directory: server
# Resultant package name will be ghcr.io/ente-io/server
image: server
registry: ghcr.io
enableBuildKit: true
multiPlatform: true
platform: linux/amd64,linux/arm64,linux/arm/v7
buildArgs: GIT_COMMIT=${{ inputs.commit }}
tags: ${{ inputs.commit }}, latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -7,11 +7,11 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Check out code
- name: Checkout code
uses: actions/checkout@v4
- uses: mr-smithers-excellent/docker-build-push@v6
name: Build & Push
- name: Build and push
uses: mr-smithers-excellent/docker-build-push@v6
with:
dockerfile: server/Dockerfile
directory: server

34
.github/workflows/web-crowdin-push.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: "Push Crowdin translations (web)"
# This is a variant of web-crowdin.yml that uploads the translated strings in
# addition to the source strings.
#
# This allows us to change the strings in our source code for an automated
# refactoring (e.g. renaming a key), and then run this workflow to update the
# data in Crowdin taking our source code as the source of truth.
on:
# Trigger manually, or using
# `gh workflow run web-crowdin-push.yml --ref <my-branch>`
workflow_dispatch:
jobs:
push-to-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Crowdin push
uses: crowdin/github-action@v1
with:
base_path: "web/"
config: "web/crowdin.yml"
upload_sources: true
upload_translations: true
download_translations: false
project_id: 569613
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@@ -2,15 +2,21 @@ name: "Sync Crowdin translations (web)"
on:
push:
branches: [main]
paths:
# Run workflow when web's en-US/translation.json is changed
- "web/apps/photos/public/locales/en-US/translation.json"
- "web/packages/next/locales/en-US/translation.json"
# Or the workflow itself is changed
- ".github/workflows/web-crowdin.yml"
branches: [main]
schedule:
# See: [Note: Run every 24 hours]
- cron: "20 1 * * *"
# [Note: Run workflow on specific days of the week]
#
# The last (5th) component of the cron syntax denotes the day of the
# week, with 0 == SUN and 6 == SAT. So, for example, to run on every TUE
# and FRI, this can be set to `2,5`.
#
# See also: [Note: Run workflow every 24 hours]
- cron: "20 1 * * 2,5"
# Also allow manually running the workflow
workflow_dispatch:
@@ -28,9 +34,9 @@ jobs:
base_path: "web/"
config: "web/crowdin.yml"
upload_sources: true
upload_translations: true
upload_translations: false
download_translations: true
localization_branch_name: crowdin-translations-web
localization_branch_name: translations/web
create_pull_request: true
skip_untranslated_strings: true
pull_request_title: "[web] New translations"

View File

@@ -3,7 +3,7 @@ name: "Deploy (accounts)"
on:
push:
# Run workflow on pushes to the deploy/accounts
branches: [deploy/accounts]
branches: [deploy/accounts, deploy-f/accounts]
jobs:
deploy:
@@ -24,7 +24,7 @@ jobs:
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install

View File

@@ -24,7 +24,7 @@ jobs:
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install

View File

@@ -3,7 +3,7 @@ name: "Deploy (cast)"
on:
push:
# Run workflow on pushes to the deploy/cast
branches: [deploy/cast]
branches: [deploy/cast, deploy-f/cast]
jobs:
deploy:
@@ -24,7 +24,7 @@ jobs:
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install

View File

@@ -0,0 +1,43 @@
name: "Deploy (payments)"
on:
push:
# Run workflow on pushes to the deploy/payments
branches: [deploy/payments]
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install
- name: Build payments
run: yarn build:payments
- name: Publish payments
uses: cloudflare/pages-action@1
with:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
projectName: ente
branch: deploy/payments
directory: web/apps/payments/dist
wranglerVersion: "3"

View File

@@ -24,7 +24,7 @@ jobs:
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install

48
.github/workflows/web-deploy-staff.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: "Deploy (staff)"
on:
# Run on every push to main that changes web/apps/staff/
push:
branches: [main]
paths:
- "web/apps/staff/**"
- ".github/workflows/web-deploy-staff.yml"
# Also allow manually running the workflow
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install
- name: Build staff
run: yarn build:staff
- name: Publish staff
uses: cloudflare/pages-action@1
with:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
projectName: ente
branch: deploy/staff
directory: web/apps/staff/dist
wranglerVersion: "3"

View File

@@ -3,7 +3,7 @@ name: "Lint (web)"
on:
# Run on every push to a branch other than main that changes web/
push:
branches-ignore: [main]
branches-ignore: [main, "deploy/**"]
paths:
- "web/**"
- ".github/workflows/web-lint.yml"

View File

@@ -2,7 +2,7 @@ name: "Nightly (web)"
on:
schedule:
# [Note: Run every 24 hours]
# [Note: Run workflow every 24 hours]
#
# Run every 24 hours - First field is minute, second is hour of the day
# This runs 23:15 UTC everyday - 1 and 15 are just arbitrary offset to
@@ -34,7 +34,7 @@ jobs:
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install
@@ -78,6 +78,19 @@ jobs:
directory: web/apps/cast/out
wranglerVersion: "3"
- name: Build payments
run: yarn build:payments
- name: Publish payments
uses: cloudflare/pages-action@1
with:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
projectName: ente
branch: n-payments
directory: web/apps/payments/dist
wranglerVersion: "3"
- name: Build photos
run: yarn build:photos
env:

View File

@@ -12,6 +12,7 @@ on:
- "accounts"
- "auth"
- "cast"
- "payments"
- "photos"
jobs:
@@ -33,7 +34,7 @@ jobs:
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"
cache-dependency-path: "web/yarn.lock"
- name: Install dependencies
run: yarn install

13
.gitmodules vendored
View File

@@ -9,16 +9,9 @@
[submodule "auth/assets/simple-icons"]
path = auth/assets/simple-icons
url = https://github.com/simple-icons/simple-icons.git
[submodule "mobile/thirdparty/flutter"]
path = mobile/thirdparty/flutter
url = https://github.com/flutter/flutter.git
branch = stable
[submodule "mobile/plugins/clip_ggml"]
path = mobile/plugins/clip_ggml
url = https://github.com/ente-io/clip-ggml.git
[submodule "mobile/thirdparty/isar"]
path = mobile/thirdparty/isar
url = https://github.com/isar/isar
[submodule "web/apps/photos/thirdparty/ffmpeg-wasm"]
path = web/apps/photos/thirdparty/ffmpeg-wasm
url = https://github.com/abhinavkgrd/ffmpeg.wasm.git
@@ -27,3 +20,9 @@
path = web/apps/photos/thirdparty/photoswipe
url = https://github.com/ente-io/PhotoSwipe.git
branch = single-thread
[submodule "mobile/thirdparty/isar"]
path = mobile/thirdparty/isar
url = https://github.com/isar/isar
[submodule "mobile/thirdparty/flutter"]
path = mobile/thirdparty/flutter
url = https://github.com/flutter/flutter

View File

@@ -59,7 +59,10 @@ See [docs/](docs/README.md) for how to edit these documents.
## Code contributions
If you'd like to contribute code, it is best to start small.
Code is a small aspect of community, and the ways mentioned above are more
important in helping us. But if you'd _really_ like to contribute code, it is
best to start small. Consider some well-scoped changes, say like adding more
[custom icons to auth](auth/docs/adding-icons.md).
Each of the individual product/platform specific directories in this repository
have instructions on setting up a dev environment and making changes. The issues

View File

@@ -70,7 +70,7 @@ existing users will be grandfathered in.
[<img height="42" src=".github/assets/app-store-badge.svg">](https://apps.apple.com/app/id6444121398)
[<img height="42" src=".github/assets/play-store-badge.png">](https://play.google.com/store/apps/details?id=io.ente.auth)
[<img height="42" src=".github/assets/f-droid-badge.png">](https://f-droid.org/packages/io.ente.auth/)
[<img height="42" src=".github/assets/github-badge.png">](https://github.com/ente-io/ente/releases?q=tag%3Aauth-v2)
[<img height="42" src=".github/assets/desktop-badge.png">](https://github.com/ente-io/ente/releases?q=tag%3Aauth-v2)
[<img height="42" src=".github/assets/web-badge.svg">](https://auth.ente.io)
</div>

9
auth/.gitignore vendored
View File

@@ -9,12 +9,20 @@
.history
.svn/
# Editors
.vscode/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
@@ -32,3 +40,4 @@ lib/generated_plugin_registrant.dart
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
android/key.properties
dist/

View File

@@ -1,11 +1,11 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled.
# This file should be version controlled and should not be manually edited.
version:
revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
channel: unknown
revision: "ba393198430278b6595976de84fe170f553cc728"
channel: "[user-branch]"
project_type: app
@@ -13,17 +13,26 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: android
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: ios
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: linux
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: macos
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: web
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
- platform: windows
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
create_revision: ba393198430278b6595976de84fe170f553cc728
base_revision: ba393198430278b6595976de84fe170f553cc728
# User provided section

View File

@@ -31,14 +31,16 @@ You can alternatively install the build from PlayStore or F-Droid.
<img height="59" src="../.github/assets/app-store-badge.svg">
</a>
### Desktop
You can [**download**](https://github.com/ente-io/ente/releases?q=tag%3Aauth-v2)
a native desktop app from this repository's GitHub releases. The desktop app
works on Windows, Linux and macOS.
### Web
You can view your 2FA codes at [auth.ente.io](https://auth.ente.io). For adding
or managing your secrets, please use our mobile app.
### Desktop
A native desktop app is coming soon!
or managing your secrets, please use our mobile or desktop app.
## 🧑‍💻 Build from source

View File

@@ -32,7 +32,7 @@ if (keystorePropertiesFile.exists()) {
}
android {
compileSdkVersion 33
compileSdkVersion 34
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@@ -46,7 +46,7 @@ android {
defaultConfig {
applicationId "io.ente.auth"
minSdkVersion 20
minSdkVersion 21
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
@@ -56,11 +56,11 @@ android {
signingConfigs {
release {
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : System.getenv("SIGNING_KEY_PATH") ? file(System.getenv("SIGNING_KEY_PATH")) : null
keyAlias keystoreProperties['keyAlias'] ? keystoreProperties['keyAlias'] : System.getenv("SIGNING_KEY_ALIAS")
keyPassword keystoreProperties['keyPassword'] ? keystoreProperties['keyPassword'] : System.getenv("SIGNING_KEY_PASSWORD")
storePassword keystoreProperties['storePassword'] ? keystoreProperties['storePassword'] : System.getenv("SIGNING_STORE_PASSWORD")
}
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : System.getenv("SIGNING_KEY_PATH") ? file(System.getenv("SIGNING_KEY_PATH")) : null
keyAlias keystoreProperties['keyAlias'] ? keystoreProperties['keyAlias'] : System.getenv("SIGNING_KEY_ALIAS")
keyPassword keystoreProperties['keyPassword'] ? keystoreProperties['keyPassword'] : System.getenv("SIGNING_KEY_PASSWORD")
storePassword keystoreProperties['storePassword'] ? keystoreProperties['storePassword'] : System.getenv("SIGNING_STORE_PASSWORD")
}
}
flavorDimensions "default"
@@ -109,6 +109,7 @@ dependencies {
implementation 'io.sentry:sentry-android:2.0.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.guava:guava:28.2-android'
implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'

View File

@@ -0,0 +1,40 @@
Ente Auth helps you generate and store 2 step verification (2FA)
tokens on your mobile devices.
FEATURES
- Secure Backups
Auth provides end-to-end encrypted cloud backups so that you don't have to worry
about losing your tokens. We use the same protocols ente Photos uses to encrypt
and preserve your data.
- Multi Device Synchronization
Auth will automatically sync the 2FA tokens you add to your account, across all
your devices. Every new device you sign into will have access to these tokens.
- Web access
You can access your 2FA code from any web browser by visiting https://auth.ente.io .
- Offline Mode
Auth generates 2FA tokens offline, so your network connectivity will not get in
the way of your workflow.
- Import and Export Tokens
You can add tokens to Auth by one of the following methods:
1. Scanning a QR code
2. Manually entering (copy-pasting) a 2FA secret
3. Bulk importing from a file that contains a list of codes in the following format:
otpauth://totp/provider.com:you@email.com?secret=YOUR_SECRET
The codes maybe separated by new lines or commas.
You can also export the codes you have added to Auth, to an **unencrypted** text
file, that adheres to the above format.
SUPPORT
If you need help, please reach out to support@ente.io, and a human will get in touch with you.
If you have feature requests, please create an issue @ https://github.com/ente-io/ente

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -0,0 +1 @@
Auth is a FOSS authenticator app that provides end-to-end encrypted backups for your 2FA secrets.

View File

@@ -0,0 +1 @@
Ente Auth

View File

@@ -36,7 +36,9 @@
},
{
"title": "BorgBase",
"altNames": ["borg"],
"altNames": [
"borg"
],
"slug": "BorgBase"
},
{
@@ -46,11 +48,17 @@
{
"title": "Bybit"
},
{
"title": "CERN"
},
{
"title": "Channel Island Hosting",
"slug": "cih",
"hex": "D14633"
},
{
"title": "ConfigCat"
},
{
"title": "Cloudflare"
},
@@ -62,6 +70,13 @@
{
"title": "Crowdpear"
},
{
"title": "DCS",
"altNames": [
"Digital Combat Simulator"
],
"slug": "dcs"
},
{
"title": "DEGIRO"
},
@@ -107,9 +122,14 @@
},
{
"title": "Gosuslugi",
"altNames": ["Госуслуги"],
"altNames": [
"Госуслуги"
],
"slug": "Gosuslugi"
},
{
"title": "Habbo"
},
{
"title": "Healthchecks.io",
"slug": "healthchecks"
@@ -172,13 +192,24 @@
},
{
"title": "Mastodon",
"altNames": ["mstdn", "fediscience", "mathstodon", "fosstodon"],
"altNames": [
"mstdn",
"fediscience",
"mathstodon",
"fosstodon"
],
"slug": "mastodon",
"hex": "6364FF"
},
{
"title": "Mercado Livre",
"slug": "mercado_livre"
},
{
"title": "Murena",
"altNames": ["eCloud"],
"altNames": [
"eCloud"
],
"slug": "ecloud"
},
{
@@ -267,11 +298,18 @@
"title": "Revolt",
"hex": "858585"
},
{
"title": "Rockstar Games",
"slug": "rockstar_games"
},
{
"title": "Rust Language Forum",
"slug": "rust_language_forum",
"hex": "000000"
},
{
"title": "Sendgrid"
},
{
"title": "service-bw"
},
@@ -356,15 +394,24 @@
{
"title": "Wise"
},
{
"title": "WYZE",
"slug": "wyze"
},
{
"title": "X",
"altNames": ["twitter"],
"altNames": [
"twitter"
],
"slug": "x"
},
{
"title": "Yandex",
"altNames": ["Ya", "Яндекс"],
"altNames": [
"Ya",
"Яндекс"
],
"slug": "Yandex"
}
]
}
}

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 283.465 283.465" enable-background="new 0 0 283.465 283.465" xml:space="preserve">
<rect x="0.752" y="-0.337" fill="#FFFFFF" width="283.465" height="283.465"/>
<path fill="#0033A0" d="M210.282,120.915c0.429,24.998-11.023,41.967-14.629,47.856c-3.143,5.13-10.654,15.024-25.11,30.374
c-18.235,19.365-75.231,79.947-79.029,83.983h154.558l-35.636-162.227L210.282,120.915z M224.498,203.72l1.277,5.803
c-15.302,16.528-38.73,28.912-66,28.912c-5.841,0-11.941-0.565-18.719-2.005c1.375-1.463,2.693-2.867,3.937-4.188
c4.352,0.773,9.361,1.284,14.506,1.286C186.023,233.541,209.198,221.605,224.498,203.72z M0.752-0.337v283.465h84.595l83.686-88.992
l-0.117-0.107c-13.455,9.491-30.532,14.646-48.943,14.646c-34.121,0-64.191-20.244-77.232-45.437l-0.132,0.088l17.755,59.9h-4.806
c0,0-8.809-30.352-16.33-56.812c-5.692-20.026-9.198-34.861-9.154-48.029c0.156-45.284,35.77-86.809,83.128-89.874
c1.3-0.086,5.328-0.506,11.328-0.511c36.48-0.022,148.884,0.84,159.687,0.923v-29.26H0.752z M100.261,210.453
c6.786,5.88,17.542,13.273,30.838,18.05c-1.113,1.185-2.321,2.469-3.603,3.833c-13.279-5.257-26.271-13.409-36.369-24.392
C93.969,208.901,97.099,209.768,100.261,210.453z M145.883,32.427c13.977,3.923,27.086,11.109,37.504,20.825
c-3.006-0.803-6.071-1.451-9.188-1.939c-14.647-11.578-33.714-18.482-53.64-18.482c-47.069,0-85.592,38.386-85.592,85.565
c0,47.18,38.382,85.564,85.565,85.564c47.179,0,85.565-38.384,85.565-85.564c0-18.252-6.876-36.487-16.318-49.367
c2.255,0.678,5.004,1.841,8.162,3.708c6.393,9.69,12.32,25.515,17.398,49.787c5.33,25.462,32.732,147.426,35.694,160.605h33.182
V33.152l-138.333-0.85C145.883,32.303,145.883,32.311,145.883,32.427z M50.595,116.383c0-11.441,8.652-19.051,20.412-19.051
c4.577,0,9.814,1.409,12.738,2.664c-0.611,1.353-1.113,3.142-1.326,4.258l-0.319,0.106c-2.261-2.503-5.898-4.672-11.279-4.672
c-6.83,0-14.689,5.528-14.689,16.557c0,10.737,8.009,16.442,15.169,16.442c6.434,0,9.513-3,12.278-5.337l0.212,0.213l-0.783,4.172
c-1.268,0.96-5.664,3.695-12.279,3.695C58.754,135.429,50.595,127.885,50.595,116.383z M78.765,187.656
c-6.344-12.899-9.219-25.995-9.6-38.519c1.612,0,3.481,0.067,5.093,0.067c0.556,11.987,3.274,26.892,12.648,43.087
C83.521,191.047,80.974,189.405,78.765,187.656z M112.787,134.755c0,0.001,0,0.001,0,0.001c-1.911-0.098-4.565-0.176-7.084-0.221
c-1.451-0.024-2.861-0.041-3.973-0.044c-0.158,0-0.319,0-0.47,0c-3.247,0-8.227,0.105-11.475,0.266
c0.214-4.631,0.429-9.26,0.429-13.836v-9.15c0-4.578-0.215-9.206-0.429-13.728c3.193,0.16,8.121,0.265,11.313,0.265
c3.193,0,9.149-0.141,10.991-0.265c-0.078,0.498-0.127,1.089-0.127,1.815c0,0.725,0.071,1.473,0.127,1.836
c-3.505-0.263-9.766-0.692-16.682-0.692c-0.056,2.287-0.162,11.991-0.162,13.324c6.278,0,10.301-0.269,13.441-0.532
c-0.105,0.532-0.16,1.486-0.16,2.017c0,0.532,0.054,1.32,0.16,1.853c-3.671-0.374-11.887-0.48-13.441-0.48
c-0.095,1.779-0.012,13.294,0.053,14.266c3.889-0.057,13.857-0.359,17.489-0.693c-0.057,0.403-0.125,1.233-0.125,2.042
C112.661,133.608,112.708,134.198,112.787,134.755z M144.039,134.58c-0.485,0-2.321,0.017-3.334,0.177
c-2.103-3.205-8.839-13.302-13.419-18.015c-0.137,0-2.708,0.003-2.708,0.003v4.23c0,4.575,0.212,9.205,0.426,13.781
c-0.906-0.161-2.542-0.177-2.877-0.177c-0.335,0-1.971,0.017-2.878,0.177c0.214-4.577,0.428-9.206,0.428-13.781v-9.152
c0-4.577-0.213-9.207-0.428-13.782c2.024,0.16,4.584,0.265,6.606,0.265c2.021,0,4.043-0.265,6.064-0.265
c6.013,0,11.523,1.776,11.523,8.472c0,7.084-7.06,9.632-11.104,10.163c2.606,3.246,11.946,14.619,15.032,18.08
C146.309,134.596,144.525,134.58,144.039,134.58z M184.319,135.253l-1.742-0.017c-2.13-2.888-24.461-26.18-26.395-28.237
c-0.053,1.967-0.055,6.062-0.055,10.043c0,5.287,0.4,13.354,0.634,17.714c-0.54-0.098-1.338-0.195-2.268-0.195
c-0.939,0-1.709,0.086-2.331,0.195c0.436-5.625,0.558-14.755,0.558-23.337c0-6.704-0.099-10.38-0.178-13.762l1.744,0.015
c2.256,2.45,24.457,25.428,26.392,27.487c0.053-1.967,0.057-5.441,0.057-9.424c0-5.285-0.402-13.354-0.636-17.711
c0.542,0.094,1.338,0.192,2.269,0.192c0.942,0,1.71-0.084,2.332-0.192c-0.438,5.624-0.56,14.753-0.56,23.336
C184.14,128.063,184.239,131.868,184.319,135.253z M230.093,88.11c9.889,12.128,17.896,31.314,19.065,47.379h0.156l8.24-85.104
l4.646-0.003c0,0-5.271,55.013-8.341,82.351c-3.844,34.241-8.729,48.448-18.071,63.403l-1.43-6.508
c7.28-12.787,9.357-23.946,10.306-29.823c2.956-18.304-1.273-43.291-14.025-62.789c-14.291-21.849-39.84-37.924-71.2-37.924
c-25.762,0-48.143,11.327-63.766,28.993l-3.789-3.003c16.539-18.764,40.576-30.737,67.558-30.737
C187.735,54.346,212.924,67.058,230.093,88.11z M138.305,107.241c0-5.29-4.629-6.973-8.248-6.973c-2.448,0-4.043,0.161-5.162,0.268
c-0.159,3.885-0.318,7.457-0.318,11.287v2.926c0.529,0.071,3.021,0.059,3.566,0.049
C132.537,114.707,138.305,113.312,138.305,107.241z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;">
<g transform="matrix(1.59257,0,0,1.59257,0,9.06171)">
<path d="M0.87,0.08L3.17,0.08C4.2,0.08 5.13,0.51 5.13,1.67C5.13,2.92 3.91,3.6 2.78,3.6L0.06,3.6C0.06,3.6 0.87,0.09 0.87,0.08ZM2.85,2.82C3.44,2.82 4.14,2.39 4.14,1.74C4.14,1.19 3.7,0.85 3.17,0.85L1.71,0.85L1.26,2.81L2.85,2.81L2.85,2.82Z" style="fill:rgb(245,158,15);fill-rule:nonzero;stroke:rgb(245,158,15);stroke-width:0.09px;"/>
<path d="M11.95,1.33C11.87,1.31 11.65,1.26 11.65,1.14C11.65,0.81 12.52,0.81 12.74,0.81C13.25,0.81 13.96,0.91 14.4,1.17L15,0.59C14.39,0.18 13.59,0.04 12.86,0.04C12.07,0.04 10.65,0.18 10.65,1.24C10.65,2.45 13.65,1.96 13.65,2.52C13.65,2.86 12.89,2.88 12.66,2.88C11.9,2.88 11.39,2.74 10.77,2.29C10.57,2.48 10.36,2.67 10.16,2.86C10.95,3.44 11.7,3.64 12.67,3.64C13.4,3.64 14.68,3.36 14.68,2.42C14.68,1.34 12.67,1.5 11.97,1.32L11.95,1.32L11.95,1.33Z" style="fill:rgb(245,158,15);fill-rule:nonzero;stroke:rgb(245,158,15);stroke-width:0.09px;"/>
<path d="M9.18,2.35L9.16,2.35C9.07,2.43 8.41,2.95 7.67,2.87C7.14,2.81 6.41,2.44 6.41,1.95C6.41,1.15 7.26,0.83 7.94,0.83C8.39,0.83 8.82,0.93 9.17,1.18C9.48,1.07 9.8,0.97 10.11,0.86C9.59,0.3 8.82,0.07 8.06,0.07C6.92,0.07 5.43,0.73 5.43,2.06C5.43,3.22 6.65,3.63 7.61,3.63C8.41,3.63 9.18,3.4 9.78,2.88C9.78,2.88 9.18,2.38 9.17,2.37L9.16,2.37L9.18,2.35Z" style="fill:rgb(245,158,15);fill-rule:nonzero;stroke:rgb(245,158,15);stroke-width:0.09px;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="6.525 7.459 339.266 319.582"><path fill="orange" d="M71.598 11.25H280.72c33.844 0 61.282 25.782 61.282 57.586v196.512c0 31.804-27.437 57.586-61.282 57.586H71.598c-33.845 0-61.28-25.782-61.28-57.586V68.836c0-31.804 27.435-57.586 61.28-57.586z"/><path d="M280.719 326.725H71.598c-35.881 0-65.072-27.533-65.072-61.377V68.836c0-33.844 29.19-61.377 65.072-61.377H280.72c35.88 0 65.072 27.533 65.072 61.377v196.512c0 33.844-29.192 61.377-65.073 61.377zM71.598 15.042c-31.7 0-57.49 24.131-57.49 53.794v196.512c0 29.662 25.79 53.794 57.49 53.794H280.72c31.7 0 57.49-24.132 57.49-53.794V68.836c0-29.662-25.79-53.794-57.49-53.794H71.598z"/><path d="M127.423 64.013l62.975.149c13.161-.099 22.989 2.002 29.48 6.303 7.928 5.272 11.89 14.343 11.89 27.213 0 21.19-9.828 33.195-29.482 36.012v.297c8.667 2.159 13.048 9.335 13.146 21.528 0 6.245-.233 14.245-.7 24 0 6.542 1.384 12.202 4.156 16.98H184.38c-1.611-1.747-2.416-5.305-2.416-10.677.66-8.98.99-16.347.99-22.098 0-11.617-5.582-17.425-16.746-17.425h-22.329l-9.738 46.987h-33.613l26.895-129.269zm53.236 26.941h-24.744l-6.453 31.192h26.775c14.967 0 22.497-5.906 22.595-17.721.001-8.98-6.058-13.47-18.173-13.47z"/><path d="M223.456 196.346l24.915-43.18 6.717 43.478h42.506l-38.349 27.534 6.14 43.18-33.204-26.05-44.633 27.089 20.878-45.973-24.333-26.2 39.363.122zm113.568 113.887c1.38 0 2.726.362 4.04 1.086 1.315.723 2.339 1.76 3.07 3.108.735 1.348 1.101 2.753 1.101 4.216 0 1.449-.36 2.841-1.084 4.177a7.735 7.735 0 01-3.039 3.114c-1.302.74-2.665 1.108-4.09 1.108-1.421 0-2.784-.37-4.089-1.108a7.762 7.762 0 01-3.044-3.114c-.725-1.336-1.089-2.73-1.089-4.177 0-1.463.369-2.868 1.106-4.216.738-1.348 1.763-2.384 3.077-3.108 1.316-.725 2.662-1.086 4.04-1.086zm0 1.391c-1.154 0-2.278.303-3.37.909a6.451 6.451 0 00-2.566 2.594c-.617 1.126-.926 2.297-.926 3.514 0 1.211.304 2.372.91 3.482a6.542 6.542 0 002.542 2.596c1.089.619 2.224.93 3.409.93 1.183 0 2.32-.311 3.41-.93a6.498 6.498 0 002.536-2.596c.603-1.11.904-2.27.904-3.482 0-1.218-.308-2.388-.92-3.514a6.39 6.39 0 00-2.565-2.594c-1.094-.606-2.216-.909-3.364-.909zm-3.604 11.664v-9.045h3.038c1.039 0 1.79.083 2.254.25.466.167.835.459 1.11.875.277.416.415.857.415 1.325 0 .661-.23 1.237-.692 1.726-.46.49-1.072.764-1.835.824.312.135.563.294.75.48.358.356.792.954 1.308 1.792l1.078 1.772h-1.742l-.783-1.426c-.617-1.12-1.115-1.823-1.492-2.105-.262-.209-.643-.313-1.145-.313h-.838v3.844h-1.426zm1.426-5.092h1.732c.829 0 1.393-.126 1.694-.38.3-.25.451-.586.451-1.002a1.24 1.24 0 00-.218-.718 1.302 1.302 0 00-.604-.473c-.258-.103-.734-.157-1.431-.157h-1.624v2.73z"/><path fill="#FFF" d="M252.503 221.088l25.47-18.142h-28.177l-4.881-31.464-17.882 31.168h-28.467l17.302 18.587-14.305 31.193 31.052-18.735 24.48 19.18-4.592-31.787z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 59 KiB

View File

@@ -0,0 +1 @@
<svg fill="#1DF0BB" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Wyze</title><path d="M5.475 13.171 7.3 9.469h.974L5.779 14.53h-.608l-1.034-2.082-1.034 2.082h-.609L0 9.469h.973l1.826 3.673.851-1.706-.973-1.967h.973l1.825 3.702Zm8.457-3.702-2.251 3.442v1.591h-.882v-1.591L8.517 9.469h1.034l1.673 2.545 1.673-2.545h1.035Zm5.444 4.194H24v.867h-4.624v-.867Zm0-4.194H24v.868h-4.624v-.868Zm0 2.083H24v.867h-4.624v-.867Zm-.273-2.083-3.438 4.223h3.133v.838H13.84l3.407-4.222h-3.042v-.839h4.898Z"/></svg>

After

Width:  |  Height:  |  Size: 523 B

View File

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -0,0 +1,25 @@
output: dist/
releases:
- name: dev
jobs:
- name: release-dev-linux-zip
package:
platform: linux
target: zip
- name: release-dev-linux-deb
package:
platform: linux
target: deb
- name: release-dev-linux-appimage
package:
platform: linux
target: appimage
- name: release-dev-windows-exe
package:
platform: windows
target: exe
- name: release-dev-macos-dmg
package:
platform: macos
target: dmg

View File

@@ -1,7 +1,14 @@
# Releases
Create a PR to bump up the version in `pubspec.yaml`. Once that is merged, tag
main, and push the tag.
Create a PR to bump up the version in `pubspec.yaml`.
> [!NOTE]
>
> Use [semver](https://semver.org/) for the tags, with `auth-` as a prefix.
> Multiple beta releases for the same upcoming version can be done by adding
> build metadata at the end, e.g. `auth-v1.2.3-beta+3`.
Once that is merged, tag main, and push the tag.
```sh
git tag auth-v1.2.3
@@ -16,6 +23,11 @@ This'll trigger a GitHub workflow that:
* Creates a new release in the internal track on Play Store.
Once the workflow completes, go to the draft GitHub release that was created.
> [!NOTE]
>
> Keep the title of the release same as the tag.
Set "Previous tag" to the last release of auth and press "Generate release
notes". The generated release note will contain all PRs and new contributors
from all the releases in the monorepo, so you'll need to filter them to keep

View File

@@ -37,4 +37,4 @@ file, that adheres to the above format.
SUPPORT
If you need help, please reach out to support@ente.io, and a human will get in touch with you.
If you have feature requests, please create an issue @ https://github.com/ente-io/auth
If you have feature requests, please create an issue @ https://github.com/ente-io/ente

View File

@@ -1 +1 @@
ente Authenticator
Ente Authenticator

View File

@@ -1,6 +1,6 @@
flutter_icons:
android: "launcher_icon"
image_path: "assets/icon-light.png"
adaptive_icon_foreground: "assets/icon-light-adaptive-fg.png"
adaptive_icon_background: "#ffffff"
flutter_icons:
android: "launcher_icon"
image_path: "assets/generation-icons/icon-light.png"
adaptive_icon_foreground: "assets/generation-icons/icon-light-adaptive-fg.png"
adaptive_icon_background: "#ffffff"

View File

@@ -1,7 +1,9 @@
PODS:
- connectivity (0.0.1):
- app_links (0.0.1):
- Flutter
- Reachability
- connectivity_plus (0.0.1):
- Flutter
- ReachabilitySwift
- device_info_plus (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.4):
@@ -45,28 +47,25 @@ PODS:
- Flutter (1.0.0)
- flutter_email_sender (0.0.1):
- Flutter
- flutter_inappwebview (0.0.1):
- flutter_inappwebview_ios (0.0.1):
- Flutter
- flutter_inappwebview/Core (= 0.0.1)
- flutter_inappwebview_ios/Core (= 0.0.1)
- OrderedSet (~> 5.0)
- flutter_inappwebview/Core (0.0.1):
- flutter_inappwebview_ios/Core (0.0.1):
- Flutter
- OrderedSet (~> 5.0)
- flutter_local_authentication (1.2.0):
- Flutter
- flutter_local_notifications (0.0.1):
- Flutter
- flutter_native_splash (0.0.1):
- Flutter
- flutter_secure_storage (6.0.0):
- Flutter
- flutter_sodium (0.0.1):
- Flutter
- fluttertoast (0.0.2):
- Flutter
- Toast
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- local_auth_ios (0.0.1):
- local_auth_darwin (0.0.1):
- Flutter
- move_to_background (0.0.1):
- Flutter
@@ -82,47 +81,63 @@ PODS:
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- Reachability (3.2)
- SDWebImage (5.17.0):
- SDWebImage/Core (= 5.17.0)
- SDWebImage/Core (5.17.0)
- Sentry/HybridSDK (8.9.1):
- SentryPrivate (= 8.9.1)
- sentry_flutter (0.0.1):
- ReachabilitySwift (5.2.1)
- SDWebImage (5.19.0):
- SDWebImage/Core (= 5.19.0)
- SDWebImage/Core (5.19.0)
- Sentry/HybridSDK (8.21.0):
- SentryPrivate (= 8.21.0)
- sentry_flutter (7.19.0):
- Flutter
- FlutterMacOS
- Sentry/HybridSDK (= 8.9.1)
- SentryPrivate (8.9.1)
- Sentry/HybridSDK (= 8.21.0)
- SentryPrivate (8.21.0)
- share_plus (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- sodium_libs (2.2.1):
- Flutter
- sqflite (0.0.3):
- Flutter
- FMDB (>= 2.7.5)
- SwiftyGif (5.4.4)
- Toast (4.0.0)
- uni_links (0.0.1):
- FlutterMacOS
- sqlite3 (3.45.1):
- sqlite3/common (= 3.45.1)
- sqlite3/common (3.45.1)
- sqlite3/fts5 (3.45.1):
- sqlite3/common
- sqlite3/perf-threadsafe (3.45.1):
- sqlite3/common
- sqlite3/rtree (3.45.1):
- sqlite3/common
- sqlite3_flutter_libs (0.0.1):
- Flutter
- sqlite3 (~> 3.45.1)
- sqlite3/fts5
- sqlite3/perf-threadsafe
- sqlite3/rtree
- SwiftyGif (5.4.4)
- Toast (4.1.0)
- url_launcher_ios (0.0.1):
- Flutter
DEPENDENCIES:
- connectivity (from `.symlinks/plugins/connectivity/ios`)
- app_links (from `.symlinks/plugins/app_links/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- file_saver (from `.symlinks/plugins/file_saver/ios`)
- fk_user_agent (from `.symlinks/plugins/fk_user_agent/ios`)
- Flutter (from `Flutter`)
- flutter_email_sender (from `.symlinks/plugins/flutter_email_sender/ios`)
- flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
- flutter_local_authentication (from `.symlinks/plugins/flutter_local_authentication/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
- flutter_sodium (from `.symlinks/plugins/flutter_sodium/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- local_auth_ios (from `.symlinks/plugins/local_auth_ios/ios`)
- local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
- move_to_background (from `.symlinks/plugins/move_to_background/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
@@ -131,27 +146,30 @@ DEPENDENCIES:
- sentry_flutter (from `.symlinks/plugins/sentry_flutter/ios`)
- share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- uni_links (from `.symlinks/plugins/uni_links/ios`)
- sodium_libs (from `.symlinks/plugins/sodium_libs/ios`)
- sqflite (from `.symlinks/plugins/sqflite/darwin`)
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- FMDB
- MTBBarcodeScanner
- OrderedSet
- Reachability
- ReachabilitySwift
- SDWebImage
- Sentry
- SentryPrivate
- sqlite3
- SwiftyGif
- Toast
EXTERNAL SOURCES:
connectivity:
:path: ".symlinks/plugins/connectivity/ios"
app_links:
:path: ".symlinks/plugins/app_links/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/ios"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
file_picker:
@@ -164,20 +182,20 @@ EXTERNAL SOURCES:
:path: Flutter
flutter_email_sender:
:path: ".symlinks/plugins/flutter_email_sender/ios"
flutter_inappwebview:
:path: ".symlinks/plugins/flutter_inappwebview/ios"
flutter_inappwebview_ios:
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
flutter_local_authentication:
:path: ".symlinks/plugins/flutter_local_authentication/ios"
flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_native_splash:
:path: ".symlinks/plugins/flutter_native_splash/ios"
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
flutter_sodium:
:path: ".symlinks/plugins/flutter_sodium/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
local_auth_ios:
:path: ".symlinks/plugins/local_auth_ios/ios"
local_auth_darwin:
:path: ".symlinks/plugins/local_auth_darwin/darwin"
move_to_background:
:path: ".symlinks/plugins/move_to_background/ios"
package_info_plus:
@@ -194,51 +212,55 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/share_plus/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
sodium_libs:
:path: ".symlinks/plugins/sodium_libs/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
uni_links:
:path: ".symlinks/plugins/uni_links/ios"
:path: ".symlinks/plugins/sqflite/darwin"
sqlite3_flutter_libs:
:path: ".symlinks/plugins/sqlite3_flutter_libs/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
app_links: e70ca16b4b0f88253b3b3660200d4a10b4ea9795
connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de
file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808
fk_user_agent: 1f47ec39291e8372b1d692b50084b0d54103c545
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_email_sender: 02d7443217d8c41483223627972bfdc09f74276b
flutter_inappwebview: acd4fc0f012cefd09015000c241137d82f01ba62
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0
flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778
flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
flutter_sodium: c84426b4de738514b5b66cfdeb8a06634e72fe0b
fluttertoast: 31b00dabfa7fb7bacd9e7dbee580d7a2ff4bf265
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
local_auth_ios: c6cf091ded637a88f24f86a8875d8b0f526e2605
local_auth_darwin: c7e464000a6a89e952235699e32b329457608d98
move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
package_info_plus: fd030dabf36271f146f1f3beacd48f564b0f17f7
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9
Sentry: e3203780941722a1fcfee99e351de14244c7f806
sentry_flutter: 8f0ffd53088e6a4d50c095852c5cad9e4405025c
SentryPrivate: 5e3683390f66611fc7c6215e27645873adb55d13
ReachabilitySwift: 5ae15e16814b5f9ef568963fb2c87aeb49158c66
SDWebImage: 981fd7e860af070920f249fd092420006014c3eb
Sentry: ebc12276bd17613a114ab359074096b6b3725203
sentry_flutter: 88ebea3f595b0bc16acc5bedacafe6d60c12dcd5
SentryPrivate: d651efb234cf385ec9a1cdd3eff94b5e78a0e0fe
share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
sodium_libs: 1faae17af662384acbd13e41867a0008cd2e2318
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
sqlite3: 73b7fc691fdc43277614250e04d183740cb15078
sqlite3_flutter_libs: af0e8fe9bce48abddd1ffdbbf839db0302d72d80
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
Toast: ec33c32b8688982cecc6348adeae667c1b9938da
url_launcher_ios: 6116280ddcfe98ab8820085d8d76ae7449447586
PODFILE CHECKSUM: b4e3a7eabb03395b66e81fc061789f61526ee6bb
COCOAPODS: 1.14.3
COCOAPODS: 1.15.2

View File

@@ -159,7 +159,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1430;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@@ -365,7 +365,7 @@
DEVELOPMENT_TEAM = 6Z68YJY9Q2;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = auth;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -439,7 +439,7 @@
DEVELOPMENT_TEAM = 6Z68YJY9Q2;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = auth;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -513,7 +513,7 @@
DEVELOPMENT_TEAM = 6Z68YJY9Q2;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = auth;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -587,7 +587,7 @@
DEVELOPMENT_TEAM = 6Z68YJY9Q2;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = auth;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -661,7 +661,7 @@
DEVELOPMENT_TEAM = 6Z68YJY9Q2;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = auth;
INFOPLIST_KEY_CFBundleDisplayName = "Ente Auth";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1510"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,5 +1,6 @@
import UIKit
import Flutter
import UIKit
import app_links
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
@@ -8,6 +9,15 @@ import Flutter
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
super.application(application, didFinishLaunchingWithOptions: launchOptions)
if let url = AppLinks.shared.getLink(launchOptions: launchOptions) {
AppLinks.shared.handleLink(url: url)
}
return false
// return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}

View File

@@ -78,5 +78,9 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>
</dict>
</plist>

View File

@@ -12,15 +12,18 @@ import 'package:ente_auth/locale.dart';
import "package:ente_auth/onboarding/view/onboarding_page.dart";
import 'package:ente_auth/services/update_service.dart';
import 'package:ente_auth/services/user_service.dart';
import 'package:ente_auth/services/window_listener_service.dart';
import 'package:ente_auth/ui/home_page.dart';
import 'package:ente_auth/ui/settings/app_update_dialog.dart';
import 'package:flutter/foundation.dart';
import "package:flutter/material.dart";
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:tray_manager/tray_manager.dart';
import 'package:window_manager/window_manager.dart';
class App extends StatefulWidget {
final Locale locale;
const App({Key? key, this.locale = const Locale("en")}) : super(key: key);
const App({super.key, this.locale = const Locale("en")});
static void setLocale(BuildContext context, Locale newLocale) {
_AppState state = context.findAncestorStateOfType<_AppState>()!;
@@ -31,7 +34,7 @@ class App extends StatefulWidget {
State<App> createState() => _AppState();
}
class _AppState extends State<App> {
class _AppState extends State<App> with WindowListener, TrayListener {
late StreamSubscription<SignedOutEvent> _signedOutEvent;
late StreamSubscription<SignedInEvent> _signedInEvent;
Locale? locale;
@@ -41,8 +44,19 @@ class _AppState extends State<App> {
});
}
Future<void> initWindowManager() async {
windowManager.addListener(this);
}
Future<void> initTrayManager() async {
trayManager.addListener(this);
}
@override
void initState() {
initWindowManager();
initTrayManager();
_signedOutEvent = Bus.instance.on<SignedOutEvent>().listen((event) {
if (mounted) {
setState(() {});
@@ -76,6 +90,10 @@ class _AppState extends State<App> {
@override
void dispose() {
super.dispose();
windowManager.removeListener(this);
trayManager.removeListener(this);
_signedOutEvent.cancel();
_signedInEvent.cancel();
}
@@ -134,4 +152,45 @@ class _AppState extends State<App> {
: const OnboardingPage(),
};
}
@override
void onWindowResize() {
WindowListenerService.instance.onWindowResize().ignore();
}
@override
void onTrayIconMouseDown() {
if (Platform.isWindows) {
windowManager.show();
} else {
trayManager.popUpContextMenu();
}
}
@override
void onTrayIconRightMouseDown() {
if (Platform.isWindows) {
trayManager.popUpContextMenu();
} else {
windowManager.show();
}
}
@override
void onTrayIconRightMouseUp() {}
@override
void onTrayMenuItemClick(MenuItem menuItem) {
switch (menuItem.key) {
case 'hide_window':
windowManager.hide();
break;
case 'show_window':
windowManager.show();
break;
case 'exit_app':
windowManager.close();
break;
}
}
}

View File

@@ -1,4 +0,0 @@
class AppRoute {
static const String enterSecretKeyPage = "enterSecretKeyPage";
static const String settings = "settings";
}

View File

@@ -1,163 +0,0 @@
import "package:flutter/material.dart";
final lightTheme = ThemeData(
fontFamily: "Inter",
brightness: Brightness.light,
scaffoldBackgroundColor: Colors.white,
appBarTheme: const AppBarTheme().copyWith(
backgroundColor: Colors.white,
foregroundColor: Colors.black,
iconTheme: const IconThemeData(color: Colors.black),
elevation: 0,
),
colorScheme: const ColorScheme.light(
primary: Colors.black,
),
textTheme: _buildTextTheme(Colors.black),
outlinedButtonTheme: buildOutlinedButtonThemeData(
bgDisabled: Colors.grey.shade500,
bgEnabled: Colors.black,
fgDisabled: Colors.white,
fgEnabled: Colors.white,
),
inputDecorationTheme: InputDecorationTheme(
fillColor: null,
filled: true,
contentPadding: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 14,
),
border: UnderlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(6),
),
),
);
final darkTheme = ThemeData(
fontFamily: "Inter",
brightness: Brightness.dark,
scaffoldBackgroundColor: Colors.black,
appBarTheme: const AppBarTheme(color: Colors.orange),
textTheme: _buildTextTheme(Colors.white),
outlinedButtonTheme: buildOutlinedButtonThemeData(
bgDisabled: Colors.grey.shade500,
bgEnabled: Colors.white,
fgDisabled: Colors.white,
fgEnabled: Colors.black,
),
inputDecorationTheme: InputDecorationTheme(
fillColor: null,
filled: true,
contentPadding: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 14,
),
border: UnderlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(6),
),
), colorScheme: const ColorScheme.dark(primary: Colors.white).copyWith(background: Colors.black),
);
TextTheme _buildTextTheme(Color textColor) {
return const TextTheme().copyWith(
headlineMedium: TextStyle(
color: textColor,
fontSize: 32,
fontWeight: FontWeight.w700,
fontFamily: "Inter",
),
headlineSmall: TextStyle(
color: textColor,
fontSize: 24,
fontWeight: FontWeight.w600,
fontFamily: "Inter",
),
// AG: Body
titleLarge: TextStyle(
color: textColor,
fontSize: 18,
fontFamily: "Inter",
fontWeight: FontWeight.w500,
),
// Use labels for buttons or notifications
labelMedium: TextStyle(
color: textColor,
fontFamily: "Inter",
fontSize: 18,
fontWeight: FontWeight.w700,
height: 28,
),
titleMedium: TextStyle(
color: textColor,
fontFamily: "Inter",
fontSize: 16,
fontWeight: FontWeight.w500,
),
titleSmall: TextStyle(
color: textColor,
fontFamily: "Inter",
fontSize: 14,
fontWeight: FontWeight.w500,
),
bodyLarge: TextStyle(
fontFamily: "Inter",
color: textColor,
fontSize: 16,
fontWeight: FontWeight.w500,
),
bodyMedium: TextStyle(
fontFamily: "Inter",
color: textColor,
fontSize: 14,
fontWeight: FontWeight.w500,
),
bodySmall: TextStyle(
color: textColor.withOpacity(0.6),
fontSize: 14,
fontWeight: FontWeight.w500,
),
);
}
OutlinedButtonThemeData buildOutlinedButtonThemeData({
required Color bgDisabled,
required Color bgEnabled,
required Color fgDisabled,
required Color fgEnabled,
}) {
return OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
alignment: Alignment.center,
padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 50),
textStyle: const TextStyle(
fontWeight: FontWeight.w700,
fontFamily: "Inter",
fontSize: 18,
),
).copyWith(
backgroundColor: MaterialStateProperty.resolveWith<Color>(
(Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return bgDisabled;
}
return bgEnabled;
},
),
foregroundColor: MaterialStateProperty.resolveWith<Color>(
(Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return fgDisabled;
}
return fgEnabled;
},
),
alignment: Alignment.center,
),
);
}

View File

@@ -1,3 +1,5 @@
// ignore_for_file: deprecated_member_use
import "dart:async";
import "dart:developer";

View File

@@ -13,12 +13,12 @@ import 'package:ente_auth/models/key_attributes.dart';
import 'package:ente_auth/models/key_gen_result.dart';
import 'package:ente_auth/models/private_key_attributes.dart';
import 'package:ente_auth/store/authenticator_db.dart';
import 'package:ente_auth/utils/crypto_util.dart';
import 'package:ente_crypto_dart/ente_crypto_dart.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:flutter_sodium/flutter_sodium.dart';
import 'package:logging/logging.dart';
import 'package:path_provider/path_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import 'package:tuple/tuple.dart';
class Configuration {
@@ -72,9 +72,10 @@ class Configuration {
Future<void> init() async {
_preferences = await SharedPreferences.getInstance();
sqfliteFfiInit();
_secureStorage = const FlutterSecureStorage();
_documentsDirectory = (await getApplicationDocumentsDirectory()).path;
_tempDirectory = _documentsDirectory + "/temp/";
_tempDirectory = "$_documentsDirectory/temp/";
final tempDirectory = io.Directory(_tempDirectory);
try {
final currentTime = DateTime.now().microsecondsSinceEpoch;
@@ -162,7 +163,7 @@ class Configuration {
// decrypt the master key
final kekSalt = CryptoUtil.getSaltToDeriveKey();
final derivedKeyResult = await CryptoUtil.deriveSensitiveKey(
utf8.encode(password) as Uint8List,
utf8.encode(password),
kekSalt,
);
final loginKey = await CryptoUtil.deriveLoginKey(derivedKeyResult.key);
@@ -172,28 +173,28 @@ class Configuration {
CryptoUtil.encryptSync(masterKey, derivedKeyResult.key);
// Generate a public-private keypair and encrypt the latter
final keyPair = await CryptoUtil.generateKeyPair();
final keyPair = CryptoUtil.generateKeyPair();
final encryptedSecretKeyData =
CryptoUtil.encryptSync(keyPair.sk, masterKey);
CryptoUtil.encryptSync(keyPair.secretKey.extractBytes(), masterKey);
final attributes = KeyAttributes(
Sodium.bin2base64(kekSalt),
Sodium.bin2base64(encryptedKeyData.encryptedData!),
Sodium.bin2base64(encryptedKeyData.nonce!),
Sodium.bin2base64(keyPair.pk),
Sodium.bin2base64(encryptedSecretKeyData.encryptedData!),
Sodium.bin2base64(encryptedSecretKeyData.nonce!),
CryptoUtil.bin2base64(kekSalt),
CryptoUtil.bin2base64(encryptedKeyData.encryptedData!),
CryptoUtil.bin2base64(encryptedKeyData.nonce!),
CryptoUtil.bin2base64(keyPair.publicKey),
CryptoUtil.bin2base64(encryptedSecretKeyData.encryptedData!),
CryptoUtil.bin2base64(encryptedSecretKeyData.nonce!),
derivedKeyResult.memLimit,
derivedKeyResult.opsLimit,
Sodium.bin2base64(encryptedMasterKey.encryptedData!),
Sodium.bin2base64(encryptedMasterKey.nonce!),
Sodium.bin2base64(encryptedRecoveryKey.encryptedData!),
Sodium.bin2base64(encryptedRecoveryKey.nonce!),
CryptoUtil.bin2base64(encryptedMasterKey.encryptedData!),
CryptoUtil.bin2base64(encryptedMasterKey.nonce!),
CryptoUtil.bin2base64(encryptedRecoveryKey.encryptedData!),
CryptoUtil.bin2base64(encryptedRecoveryKey.nonce!),
);
final privateAttributes = PrivateKeyAttributes(
Sodium.bin2base64(masterKey),
Sodium.bin2hex(recoveryKey),
Sodium.bin2base64(keyPair.sk),
CryptoUtil.bin2base64(masterKey),
CryptoUtil.bin2hex(recoveryKey),
CryptoUtil.bin2base64(keyPair.secretKey.extractBytes()),
);
return KeyGenResult(attributes, privateAttributes, loginKey);
}
@@ -208,7 +209,7 @@ class Configuration {
// decrypt the master key
final kekSalt = CryptoUtil.getSaltToDeriveKey();
final derivedKeyResult = await CryptoUtil.deriveSensitiveKey(
utf8.encode(password) as Uint8List,
utf8.encode(password),
kekSalt,
);
final loginKey = await CryptoUtil.deriveLoginKey(derivedKeyResult.key);
@@ -220,9 +221,9 @@ class Configuration {
final existingAttributes = getKeyAttributes();
final updatedAttributes = existingAttributes!.copyWith(
kekSalt: Sodium.bin2base64(kekSalt),
encryptedKey: Sodium.bin2base64(encryptedKeyData.encryptedData!),
keyDecryptionNonce: Sodium.bin2base64(encryptedKeyData.nonce!),
kekSalt: CryptoUtil.bin2base64(kekSalt),
encryptedKey: CryptoUtil.bin2base64(encryptedKeyData.encryptedData!),
keyDecryptionNonce: CryptoUtil.bin2base64(encryptedKeyData.nonce!),
memLimit: derivedKeyResult.memLimit,
opsLimit: derivedKeyResult.opsLimit,
);
@@ -240,8 +241,8 @@ class Configuration {
}) async {
_logger.info('Start decryptAndSaveSecrets');
keyEncryptionKey ??= await CryptoUtil.deriveKey(
utf8.encode(password) as Uint8List,
Sodium.base642bin(attributes.kekSalt),
utf8.encode(password),
CryptoUtil.base642bin(attributes.kekSalt),
attributes.memLimit,
attributes.opsLimit,
);
@@ -250,31 +251,31 @@ class Configuration {
Uint8List key;
try {
key = CryptoUtil.decryptSync(
Sodium.base642bin(attributes.encryptedKey),
CryptoUtil.base642bin(attributes.encryptedKey),
keyEncryptionKey,
Sodium.base642bin(attributes.keyDecryptionNonce),
CryptoUtil.base642bin(attributes.keyDecryptionNonce),
);
} catch (e) {
_logger.severe('master-key failed, incorrect password?', e);
throw Exception("Incorrect password");
}
_logger.info("master-key done");
await setKey(Sodium.bin2base64(key));
await setKey(CryptoUtil.bin2base64(key));
final secretKey = CryptoUtil.decryptSync(
Sodium.base642bin(attributes.encryptedSecretKey),
CryptoUtil.base642bin(attributes.encryptedSecretKey),
key,
Sodium.base642bin(attributes.secretKeyDecryptionNonce),
CryptoUtil.base642bin(attributes.secretKeyDecryptionNonce),
);
_logger.info("secret-key done");
await setSecretKey(Sodium.bin2base64(secretKey));
await setSecretKey(CryptoUtil.bin2base64(secretKey));
final token = CryptoUtil.openSealSync(
Sodium.base642bin(getEncryptedToken()!),
Sodium.base642bin(attributes.publicKey),
CryptoUtil.base642bin(getEncryptedToken()!),
CryptoUtil.base642bin(attributes.publicKey),
secretKey,
);
_logger.info('appToken done');
await setToken(
Sodium.bin2base64(token, variant: Sodium.base64VariantUrlsafe),
CryptoUtil.bin2base64(token, urlSafe: true),
);
return keyEncryptionKey;
}
@@ -293,28 +294,28 @@ class Configuration {
Uint8List masterKey;
try {
masterKey = await CryptoUtil.decrypt(
Sodium.base642bin(attributes!.masterKeyEncryptedWithRecoveryKey),
Sodium.hex2bin(recoveryKey),
Sodium.base642bin(attributes.masterKeyDecryptionNonce),
CryptoUtil.base642bin(attributes!.masterKeyEncryptedWithRecoveryKey),
CryptoUtil.hex2bin(recoveryKey),
CryptoUtil.base642bin(attributes.masterKeyDecryptionNonce),
);
} catch (e) {
_logger.severe(e);
rethrow;
}
await setKey(Sodium.bin2base64(masterKey));
await setKey(CryptoUtil.bin2base64(masterKey));
final secretKey = CryptoUtil.decryptSync(
Sodium.base642bin(attributes.encryptedSecretKey),
CryptoUtil.base642bin(attributes.encryptedSecretKey),
masterKey,
Sodium.base642bin(attributes.secretKeyDecryptionNonce),
CryptoUtil.base642bin(attributes.secretKeyDecryptionNonce),
);
await setSecretKey(Sodium.bin2base64(secretKey));
await setSecretKey(CryptoUtil.bin2base64(secretKey));
final token = CryptoUtil.openSealSync(
Sodium.base642bin(getEncryptedToken()!),
Sodium.base642bin(attributes.publicKey),
CryptoUtil.base642bin(getEncryptedToken()!),
CryptoUtil.base642bin(attributes.publicKey),
secretKey,
);
await setToken(
Sodium.bin2base64(token, variant: Sodium.base64VariantUrlsafe),
CryptoUtil.bin2base64(token, urlSafe: true),
);
}
@@ -407,27 +408,31 @@ class Configuration {
}
Uint8List? getKey() {
return _key == null ? null : Sodium.base642bin(_key!);
return _key == null ? null : CryptoUtil.base642bin(_key!);
}
Uint8List? getSecretKey() {
return _secretKey == null ? null : Sodium.base642bin(_secretKey!);
return _secretKey == null ? null : CryptoUtil.base642bin(_secretKey!);
}
Uint8List? getAuthSecretKey() {
return _authSecretKey == null ? null : Sodium.base642bin(_authSecretKey!);
return _authSecretKey == null
? null
: CryptoUtil.base642bin(_authSecretKey!);
}
Uint8List? getOfflineSecretKey() {
return _offlineAuthKey == null ? null : Sodium.base642bin(_offlineAuthKey!);
return _offlineAuthKey == null
? null
: CryptoUtil.base642bin(_offlineAuthKey!);
}
Uint8List getRecoveryKey() {
final keyAttributes = getKeyAttributes()!;
return CryptoUtil.decryptSync(
Sodium.base642bin(keyAttributes.recoveryKeyEncryptedWithMasterKey),
CryptoUtil.base642bin(keyAttributes.recoveryKeyEncryptedWithMasterKey),
getKey()!,
Sodium.base642bin(keyAttributes.recoveryKeyDecryptionNonce),
CryptoUtil.base642bin(keyAttributes.recoveryKeyDecryptionNonce),
);
}
@@ -454,7 +459,7 @@ class Configuration {
iOptions: _secureStorageOptionsIOS,
);
} else {
_offlineAuthKey = Sodium.bin2base64(CryptoUtil.generateKey());
_offlineAuthKey = CryptoUtil.bin2base64(CryptoUtil.generateKey());
await _secureStorage.write(
key: offlineAuthSecretKey,
value: _offlineAuthKey,

View File

@@ -7,7 +7,8 @@ const String sentryDSN =
"https://ed4ddd6309b847ba8849935e26e9b648@sentry.ente.io/9";
const String sentryTunnel = "https://sentry-reporter.ente.io";
const String roadmapURL = "https://roadmap.ente.io";
const String githubDiscussionsUrl = "https://github.com/ente-io/ente/discussions";
const String githubIssuesUrl =
"https://github.com/ente-io/ente/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc";
const int microSecondsInDay = 86400000000;
const int android11SDKINT = 30;
const int galleryLoadStartTime = -8000000000000000; // Wednesday, March 6, 1748

View File

@@ -1,9 +1,9 @@
class InvalidFileError extends ArgumentError {
InvalidFileError(String message) : super(message);
InvalidFileError(String super.message);
}
class InvalidFileUploadState extends AssertionError {
InvalidFileUploadState(String message) : super(message);
InvalidFileUploadState(String super.message);
}
class SubscriptionAlreadyClaimedError extends Error {}
@@ -30,19 +30,15 @@ class UnauthorizedError extends Error {}
class RequestCancelledError extends Error {}
class InvalidSyncStatusError extends AssertionError {
InvalidSyncStatusError(String message) : super(message);
InvalidSyncStatusError(String super.message);
}
class UnauthorizedEditError extends AssertionError {}
class InvalidStateError extends AssertionError {
InvalidStateError(String message) : super(message);
InvalidStateError(String super.message);
}
class KeyDerivationError extends Error {}
class LoginKeyDerivationError extends Error {}
class SrpSetupNotCompleteError extends Error {}
class AuthenticatorKeyNotFound extends Error {}

View File

@@ -235,14 +235,14 @@ class SuperLogging {
extraLines = null;
}
final str = (config.prefix) + " " + rec.toPrettyString(extraLines);
final str = "${config.prefix} ${rec.toPrettyString(extraLines)}";
// write to stdout
printLog(str);
// push to log queue
if (fileIsEnabled) {
fileQueueEntries.add(str + '\n');
fileQueueEntries.add('$str\n');
if (fileQueueEntries.length == 1) {
flushQueue();
}
@@ -275,7 +275,7 @@ class SuperLogging {
static var logChunkSize = 800;
static void printLog(String text) {
text.chunked(logChunkSize).forEach(print);
text.chunked(logChunkSize).forEach(debugPrint);
}
/// A queue to be consumed by [setupSentry].
@@ -354,7 +354,7 @@ class SuperLogging {
final date = config.dateFmt!.parse(basename(file.path));
dates[file as File] = date;
files.add(file);
} on FormatException {}
} on Exception catch (_) {}
}
final nowTime = DateTime.now();
@@ -374,7 +374,7 @@ class SuperLogging {
"deleting log file ${file.path}",
);
await file.delete();
} catch (ignore) {}
} on Exception catch (_) {}
}
}

View File

@@ -46,7 +46,7 @@ class TunneledTransport implements Transport {
_options.logger(
SentryLevel.error,
'API returned an error, statusCode = ${response.statusCode}, '
'body = ${response.body}',
'body = ${response.body}',
);
}
return const SentryId.empty();
@@ -65,8 +65,8 @@ class TunneledTransport implements Transport {
}
Future<StreamedRequest> _createStreamedRequest(
SentryEnvelope envelope,
) async {
SentryEnvelope envelope,
) async {
final streamedRequest = StreamedRequest('POST', _tunnel);
envelope
.envelopeStream(_options)
@@ -91,10 +91,10 @@ class _CredentialBuilder {
_clock = clock;
factory _CredentialBuilder(
Dsn? dsn,
String sdkIdentifier,
ClockProvider clock,
) {
Dsn? dsn,
String sdkIdentifier,
ClockProvider clock,
) {
final authHeader = _buildAuthHeader(
publicKey: dsn?.publicKey,
secretKey: dsn?.secretKey,

View File

@@ -4,9 +4,10 @@ import 'package:dio/dio.dart';
import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/core/event_bus.dart';
import 'package:ente_auth/events/endpoint_updated_event.dart';
import 'package:ente_auth/utils/package_info_util.dart';
import 'package:ente_auth/utils/platform_util.dart';
import 'package:fk_user_agent/fk_user_agent.dart';
import 'package:flutter/foundation.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:uuid/uuid.dart';
int kConnectTimeout = 15000;
@@ -16,34 +17,41 @@ class Network {
late Dio _enteDio;
Future<void> init() async {
await FkUserAgent.init();
final packageInfo = await PackageInfo.fromPlatform();
if (PlatformUtil.isMobile()) await FkUserAgent.init();
final packageInfo = await PackageInfoUtil().getPackageInfo();
final version = PackageInfoUtil().getVersion(packageInfo);
final packageName = PackageInfoUtil().getPackageName(packageInfo);
final endpoint = Configuration.instance.getHttpEndpoint();
_dio = Dio(
BaseOptions(
connectTimeout: kConnectTimeout,
connectTimeout: Duration(milliseconds: kConnectTimeout),
headers: {
HttpHeaders.userAgentHeader: FkUserAgent.userAgent,
'X-Client-Version': packageInfo.version,
'X-Client-Package': packageInfo.packageName,
HttpHeaders.userAgentHeader: PlatformUtil.isMobile()
? FkUserAgent.userAgent
: Platform.operatingSystem,
'X-Client-Version': version,
'X-Client-Package': packageName,
},
),
);
_enteDio = Dio(
BaseOptions(
baseUrl: endpoint,
connectTimeout: kConnectTimeout,
connectTimeout: Duration(milliseconds: kConnectTimeout),
headers: {
HttpHeaders.userAgentHeader: FkUserAgent.userAgent,
'X-Client-Version': packageInfo.version,
'X-Client-Package': packageInfo.packageName,
if (PlatformUtil.isMobile())
HttpHeaders.userAgentHeader: FkUserAgent.userAgent
else
HttpHeaders.userAgentHeader: Platform.operatingSystem,
'X-Client-Version': version,
'X-Client-Package': packageName,
},
),
);
_setupInterceptors(endpoint);
Bus.instance.on<EndpointUpdatedEvent>().listen((event) {
final endpoint = Configuration.instance.getHttpEndpoint();
_enteDio.options.baseUrl = endpoint;

View File

@@ -5,12 +5,16 @@ import 'package:flutter/material.dart';
final lightThemeData = ThemeData(
fontFamily: 'Inter',
brightness: Brightness.light,
dividerTheme: const DividerThemeData(
color: Colors.black12,
),
hintColor: const Color.fromRGBO(158, 158, 158, 1),
primaryColor: const Color.fromRGBO(255, 110, 64, 1),
primaryColorLight: const Color.fromRGBO(0, 0, 0, 0.541),
iconTheme: const IconThemeData(color: Colors.black),
primaryIconTheme:
const IconThemeData(color: Colors.red, opacity: 1.0, size: 50.0),
buttonTheme: const ButtonThemeData(),
outlinedButtonTheme: buildOutlinedButtonThemeData(
bgDisabled: const Color.fromRGBO(158, 158, 158, 1),
bgEnabled: const Color.fromRGBO(0, 0, 0, 1),
@@ -72,24 +76,42 @@ final lightThemeData = ThemeData(
? const Color.fromRGBO(255, 255, 255, 1)
: const Color.fromRGBO(0, 0, 0, 1);
}),
), radioTheme: RadioThemeData(
fillColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) { return null; }
if (states.contains(MaterialState.selected)) { return const Color.fromRGBO(102, 187, 106, 1); }
return null;
}),
), switchTheme: SwitchThemeData(
thumbColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) { return null; }
if (states.contains(MaterialState.selected)) { return const Color.fromRGBO(102, 187, 106, 1); }
return null;
}),
trackColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) { return null; }
if (states.contains(MaterialState.selected)) { return const Color.fromRGBO(102, 187, 106, 1); }
return null;
}),
), colorScheme: const ColorScheme.light(
),
radioTheme: RadioThemeData(
fillColor:
MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return null;
}
if (states.contains(MaterialState.selected)) {
return const Color.fromRGBO(102, 187, 106, 1);
}
return null;
}),
),
switchTheme: SwitchThemeData(
thumbColor:
MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return null;
}
if (states.contains(MaterialState.selected)) {
return const Color.fromRGBO(102, 187, 106, 1);
}
return null;
}),
trackColor:
MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return null;
}
if (states.contains(MaterialState.selected)) {
return const Color.fromRGBO(102, 187, 106, 1);
}
return null;
}),
),
colorScheme: const ColorScheme.light(
primary: Colors.black,
secondary: Color.fromARGB(255, 163, 163, 163),
).copyWith(background: const Color.fromRGBO(255, 255, 255, 1)),
@@ -98,6 +120,9 @@ final lightThemeData = ThemeData(
final darkThemeData = ThemeData(
fontFamily: 'Inter',
brightness: Brightness.dark,
dividerTheme: const DividerThemeData(
color: Colors.white12,
),
primaryColorLight: const Color.fromRGBO(255, 255, 255, 0.702),
iconTheme: const IconThemeData(color: Colors.white),
primaryIconTheme:
@@ -105,6 +130,7 @@ final darkThemeData = ThemeData(
hintColor: const Color.fromRGBO(158, 158, 158, 1),
buttonTheme: const ButtonThemeData().copyWith(
buttonColor: const Color.fromRGBO(45, 194, 98, 1.0),
height: 56,
),
textTheme: _buildTextTheme(const Color.fromRGBO(255, 255, 255, 1)),
outlinedButtonTheme: buildOutlinedButtonThemeData(
@@ -164,24 +190,43 @@ final darkThemeData = ThemeData(
return const Color.fromRGBO(158, 158, 158, 1);
}
}),
), radioTheme: RadioThemeData(
fillColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) { return null; }
if (states.contains(MaterialState.selected)) { return const Color.fromRGBO(102, 187, 106, 1); }
return null;
}),
), switchTheme: SwitchThemeData(
thumbColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) { return null; }
if (states.contains(MaterialState.selected)) { return const Color.fromRGBO(102, 187, 106, 1); }
return null;
}),
trackColor: MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) { return null; }
if (states.contains(MaterialState.selected)) { return const Color.fromRGBO(102, 187, 106, 1); }
return null;
}),
), colorScheme: const ColorScheme.dark(primary: Colors.white).copyWith(background: const Color.fromRGBO(0, 0, 0, 1)),
),
radioTheme: RadioThemeData(
fillColor:
MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return null;
}
if (states.contains(MaterialState.selected)) {
return const Color.fromRGBO(102, 187, 106, 1);
}
return null;
}),
),
switchTheme: SwitchThemeData(
thumbColor:
MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return null;
}
if (states.contains(MaterialState.selected)) {
return const Color.fromRGBO(102, 187, 106, 1);
}
return null;
}),
trackColor:
MaterialStateProperty.resolveWith<Color?>((Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
return null;
}
if (states.contains(MaterialState.selected)) {
return const Color.fromRGBO(102, 187, 106, 1);
}
return null;
}),
),
colorScheme: const ColorScheme.dark(primary: Colors.white)
.copyWith(background: const Color.fromRGBO(0, 0, 0, 1)),
);
TextTheme _buildTextTheme(Color textColor) {
@@ -400,6 +445,7 @@ OutlinedButtonThemeData buildOutlinedButtonThemeData({
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
fixedSize: const Size.fromHeight(56),
alignment: Alignment.center,
padding: const EdgeInsets.fromLTRB(50, 16, 50, 16),
textStyle: const TextStyle(
@@ -436,7 +482,9 @@ ElevatedButtonThemeData buildElevatedButtonThemeData({
}) {
return ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
foregroundColor: onPrimary, backgroundColor: primary, elevation: elevation,
foregroundColor: onPrimary,
backgroundColor: primary,
elevation: elevation,
alignment: Alignment.center,
textStyle: const TextStyle(
fontWeight: FontWeight.w600,

View File

@@ -25,7 +25,7 @@ class AuthenticatorGateway {
try {
final response = await _enteDio.get("/authenticator/key");
return AuthKey.fromMap(response.data);
} on DioError catch (e) {
} on DioException catch (e) {
if (e.response != null && (e.response!.statusCode ?? 0) == 404) {
throw AuthenticatorKeyNotFound();
} else {
@@ -90,7 +90,7 @@ class AuthenticatorGateway {
}
return authEntities;
} catch (e) {
if (e is DioError && e.response?.statusCode == 401) {
if (e is DioException && e.response?.statusCode == 401) {
throw UnauthorizedError();
} else {
rethrow;

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "المصدِّر",
"codeSecretKeyHint": "الرمز السري",
"codeAccountHint": "الحساب (you@domain.com)",
"accountKeyType": "نوع المفتاح",
"sessionExpired": "انتهت صلاحية الجلسة",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,12 @@
"data": "البيانات",
"importCodes": "رمزالاستيراد",
"importTypePlainText": "نص عادي",
"importTypeEnteEncrypted": "تصدير مشفر ente",
"passwordForDecryptingExport": "كلمة المرور لفك تشفير التصدير",
"passwordEmptyError": "لا يمكن أن تكون كلمة المرور فارغة",
"importFromApp": "استيراد الرموز من {appName}",
"importGoogleAuthGuide": "قم بتصدير حساباتك من Google Authenticator إلى رمز QR code باستخدام خيار \"Transfer Accounts\" ثم استخدم جهازًا آخر لمسح رمز الاستجابة السريعة ضوئيًا.\n\nنصيحة: يمكنك استخدام كاميرا الويب الخاصة بالكمبيوتر المحمول لالتقاط صورة لرمز الاستجابة السريعة.",
"importSelectJsonFile": "حدد ملف JSON",
"importSelectAppExport": "حدد ملف التصدير {appName}",
"importEnteEncGuide": "حدد ملف JSON المشفر الذي تم تصديره من ente",
"importRaivoGuide": "استخدم خيار تصدير OTP إلى أرشيف Zip في إعدادات Raivo.\n\nاستخرج ملف zip واسترد ملف JSON.",
"importBitwardenGuide": "استخدم خيار \"تصدير خزانة\" داخل أدوات Bitwarden واستيراد ملف JSON غير مشفر.",
"importAegisGuide": "استخدم خيار \"Export the vault\" في إعدادات Aegis.\n\nإذا كان المخزن الخاص بك مشفرًا، فستحتاج إلى إدخال كلمة مرور المخزن لفك تشفير المخزن.",
@@ -115,22 +112,18 @@
"copied": "تم النسخ",
"pleaseTryAgain": "حاول مرة اخرى",
"existingUser": "المستخدم موجود",
"newUser": "جديد إلى Ente",
"delete": "حذف",
"enterYourPasswordHint": "أدخل كلمة المرور الخاصة بك",
"forgotPassword": "هل نسيت كلمة المرور",
"oops": "عذرًا",
"suggestFeatures": "اقتراح ميزة",
"faq": "الأسئلة الأكثر شيوعاً",
"faq_q_1": "ما مدى أمان المصادقة؟",
"faq_a_1": "يتم تشفير جميع الرموز التي تقوم بنسخها احتياطا عبر Ente. وهذا يعني أنه يمكنك فقط الوصول إلى الرموز الخاصة بك. تطبيقاتنا مفتوحة المصدر وقد تم مراجعة التشفير خارجيا.",
"faq_q_2": "هل يمكنني الوصول إلى رموزي على سطح المكتب؟",
"faq_a_2": "يمكنك الوصول إلى رموزك على الويب @ auth.ente.io.",
"faq_q_3": "كيف يمكنني حذف الرموز؟",
"faq_a_3": "يمكنك حذف الرمز عن طريق السحب لليسار على هذا العنصر.",
"faq_q_4": "كيف يمكنني دعم هذا المشروع؟",
"faq_a_4": "يمكنك دعم تطوير هذا المشروع عن طريق الاشتراك في تطبيق الصور @ ente.io.",
"faq_q_5": "كيف يمكنني تمكين قفل FaceID في المصادقة Ente",
"faq_a_5": "يمكنك تمكين قفل FaceID تحت الإعدادات => الحماية => قفل الشاشة.",
"somethingWentWrongMessage": "حدث خطأ ما، يرجى المحاولة مرة أخرى",
"leaveFamily": "مغادرة خطة العائلة",
@@ -144,6 +137,8 @@
"enterCodeHint": "أدخل الرمز المكون من 6 أرقام من\nتطبيق المصادقة",
"lostDeviceTitle": "جهاز مفقود ؟",
"twoFactorAuthTitle": "المصادقة الثنائية",
"passkeyAuthTitle": "التحقق من مفتاح المرور",
"verifyPasskey": "تحقق من مفتاح المرور",
"recoverAccount": "إسترجاع الحساب",
"enterRecoveryKeyHint": "أدخل رمز الاسترداد",
"recover": "استرداد",
@@ -197,6 +192,8 @@
"recoveryKeySaveDescription": "نحن لا نخزن هذا المفتاح، يرجى حفظ مفتاح الـ 24 كلمة هذا في مكان آمن.",
"doThisLater": "قم بهذا لاحقاً",
"saveKey": "حفظ المفتاح",
"save": "حفظ",
"send": "إرسال",
"back": "الرجوع",
"createAccount": "إنشاء حساب",
"passwordStrength": "قوة كلمة المرور: {passwordStrengthValue}",
@@ -344,7 +341,6 @@
"deleteCodeAuthMessage": "المصادقة لحذف الرمز",
"showQRAuthMessage": "المصادقة لإظهار رمز QR",
"confirmAccountDeleteTitle": "تأكيد حذف الحساب",
"confirmAccountDeleteMessage": "هذا الحساب مرتبط بتطبيقات Ente أخرى، إذا كنت تستخدم أي منها.\n\nبياناتك التي تم تحميلها، عبر جميع تطبيقات Ente سيتم جدولتها للحذف، وسيتم حذف حسابك بشكل دائم.",
"androidBiometricHint": "التحقق من الهوية",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -404,5 +400,7 @@
"signOutOtherDevices": "تسجيل الخروج من الأجهزة الأخرى",
"doNotSignOut": "لا تقم بتسجيل الخروج",
"hearUsWhereTitle": "كيف سمعت عن Ente؟ (اختياري)",
"hearUsExplanation": "نحن لا نتتبع تثبيت التطبيق. سيكون من المفيد إذا أخبرتنا أين وجدتنا!"
"hearUsExplanation": "نحن لا نتتبع تثبيت التطبيق. سيكون من المفيد إذا أخبرتنا أين وجدتنا!",
"passkey": "مفتاح المرور",
"developerSettings": "اعدادات المطور"
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Aussteller",
"codeSecretKeyHint": "Geheimer Schlüssel",
"codeAccountHint": "Konto (you@domain.com)",
"accountKeyType": "Art des Schlüssels",
"sessionExpired": "Sitzung abgelaufen",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,14 @@
"data": "Datei",
"importCodes": "Codes importieren",
"importTypePlainText": "Klartext",
"importTypeEnteEncrypted": "ente verschlüsselt exportieren",
"importTypeEnteEncrypted": "Verschlüsselter Ente-Export",
"passwordForDecryptingExport": "Passwort um den Export zu entschlüsseln",
"passwordEmptyError": "Passwort kann nicht leer sein",
"importFromApp": "Importiere Codes von {appName}",
"importGoogleAuthGuide": "Exportiere deine Accounts von Google Authenticator zu einem QR-Code, durch die \"Konten übertragen\" Option. Scanne den QR-Code danach mit einem anderen Gerät.\n\nTipp: Du kannst die Kamera eines Laptops verwenden, um ein Foto den dem QR-Code zu erstellen.",
"importSelectJsonFile": "Wähle eine JSON-Datei",
"importSelectAppExport": "{appName} Exportdatei auswählen",
"importEnteEncGuide": "Wähle die von ente exportierte, verschlüsselte JSON-Datei",
"importEnteEncGuide": "Wähle die von Ente exportierte, verschlüsselte JSON-Datei",
"importRaivoGuide": "Verwenden Sie die Option \"Export OTPs to Zip archive\" in den Raivo-Einstellungen.\n\nEntpacken Sie die Zip-Datei und importieren Sie die JSON-Datei.",
"importBitwardenGuide": "Verwenden Sie die Option \"Tresor exportieren\" innerhalb der Bitwarden Tools und importieren Sie die unverschlüsselte JSON-Datei.",
"importAegisGuide": "Verwenden Sie die Option \"Tresor exportieren\" in den Aegis-Einstellungen.\n\nFalls Ihr Tresor verschlüsselt ist, müssen Sie das Passwort für den Tresor eingeben, um ihn zu entschlüsseln.",
@@ -115,22 +114,22 @@
"copied": "Kopiert",
"pleaseTryAgain": "Bitte versuchen Sie es erneut",
"existingUser": "Bestehender Benutzer",
"newUser": "Neu bei ente",
"newUser": "Neu bei Ente",
"delete": "Löschen",
"enterYourPasswordHint": "Geben Sie Ihr Passwort ein",
"forgotPassword": "Passwort vergessen",
"oops": "Hopla",
"suggestFeatures": "Features vorschlagen",
"faq": "FAQ",
"faq_q_1": "Wie sicher ist ente Auth?",
"faq_a_1": "Alle Codes, die Sie über ente sichern, werden Ende-zu-Ende-verschlüsselt gespeichert. Das bedeutet, dass nur Sie auf Ihre Codes zugreifen können. Unsere Apps sind Open Source und unsere Kryptografie wurde extern überprüft.",
"faq_q_1": "Wie sicher ist Auth?",
"faq_a_1": "Alle Codes, die du über Auth sicherst, werden Ende-zu-Ende-verschlüsselt gespeichert. Das bedeutet, dass nur du auf deine Codes zugreifen kannst. Unsere Anwendungen sind quelloffen und unsere Kryptografie wurde extern geprüft.",
"faq_q_2": "Kann ich auf meine Codes auf dem Desktop zugreifen?",
"faq_a_2": "Sie können auf Ihre Codes im Web via auth.ente.io zugreifen.",
"faq_q_3": "Wie kann ich Codes löschen?",
"faq_a_3": "Sie können einen Code löschen, indem Sie auf dem Code nach links wischen.",
"faq_q_4": "Wie kann ich das Projekt unterstützen?",
"faq_a_4": "Sie können die Entwicklung dieses Projekts unterstützen, indem Sie unsere Fotos-App auf ente.io abonnieren.",
"faq_q_5": "Wie kann ich FaceID Sperre in ente Auth aktivieren",
"faq_q_5": "Wie kann ich die FaceID-Sperre in Auth aktivieren",
"faq_a_5": "Sie können FaceID unter Einstellungen → Sicherheit → Sperrbildschirm aktivieren.",
"somethingWentWrongMessage": "Ein Fehler ist aufgetreten, bitte versuchen Sie es erneut",
"leaveFamily": "Familie verlassen",
@@ -144,6 +143,8 @@
"enterCodeHint": "Geben Sie den 6-stelligen Code \naus Ihrer Authentifikator-App ein.",
"lostDeviceTitle": "Gerät verloren?",
"twoFactorAuthTitle": "Zwei-Faktor-Authentifizierung",
"passkeyAuthTitle": "Passkey Authentifizierung",
"verifyPasskey": "Passkey verifizieren",
"recoverAccount": "Konto wiederherstellen",
"enterRecoveryKeyHint": "Geben Sie Ihren Wiederherstellungsschlüssel ein",
"recover": "Wiederherstellen",
@@ -197,6 +198,10 @@
"recoveryKeySaveDescription": "Wir speichern diesen Schlüssel nicht. Sichern sie dieses diesen Schlüssel bestehend aus 24 Wörtern an einem sicheren Platz.",
"doThisLater": "Auf später verschieben",
"saveKey": "Schlüssel speichern",
"save": "Speichern",
"send": "Senden",
"saveOrSendDescription": "Möchtest du dies in deinem Speicher (standardmäßig im Ordner Downloads) oder an andere Apps senden?",
"saveOnlyDescription": "Möchtest du dies in deinem Speicher (standardmäßig im Ordner Downloads) speichern?",
"back": "Zurück",
"createAccount": "Account erstellen",
"passwordStrength": "Passwortstärke: {passwordStrengthValue}",
@@ -344,7 +349,7 @@
"deleteCodeAuthMessage": "Authentifizieren, um Code zu löschen",
"showQRAuthMessage": "Authentifizieren, um QR-Code anzuzeigen",
"confirmAccountDeleteTitle": "Kontolöschung bestätigen",
"confirmAccountDeleteMessage": "Dieses Konto ist mit anderen ente Apps verknüpft, sofern du diese benutzt.\n\nDeine hochgeladenen Daten werden zur permanenten Löschung freigegeben. Dies gilt für alle ente Apps.",
"confirmAccountDeleteMessage": "Dieses Konto ist mit anderen Ente-Apps verknüpft, falls du welche verwendest.\n\nDeine hochgeladenen Daten werden in allen Ente-Apps zur Löschung vorgemerkt und dein Konto wird endgültig gelöscht.",
"androidBiometricHint": "Identität bestätigen",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -404,5 +409,16 @@
"signOutOtherDevices": "Andere Geräte abmelden",
"doNotSignOut": "Nicht abmelden",
"hearUsWhereTitle": "Wie hast du von Ente erfahren? (optional)",
"hearUsExplanation": "Wir tracken keine App-Installationen. Es würde uns jedoch helfen, wenn du uns mitteilst, wie du von uns erfahren hast!"
"hearUsExplanation": "Wir tracken keine App-Installationen. Es würde uns jedoch helfen, wenn du uns mitteilst, wie du von uns erfahren hast!",
"recoveryKeySaved": "Wiederherstellungsschlüssel im Downloads-Ordner gespeichert!",
"waitingForBrowserRequest": "Warten auf Browseranfrage...",
"waitingForVerification": "Warte auf Bestätigung...",
"passkey": "Passkey",
"developerSettingsWarning": "Sind Sie sicher, dass Sie die Entwicklereinstellungen ändern möchten?",
"developerSettings": "Entwicklereinstellungen",
"serverEndpoint": "Server Endpunkt",
"invalidEndpoint": "Ungültiger Endpunkt",
"invalidEndpointMessage": "Der eingegebene Endpunkt ist ungültig. Bitte geben Sie einen gültigen Endpunkt ein und versuchen Sie es erneut.",
"endpointUpdatedMessage": "Endpunkt erfolgreich aktualisiert",
"customEndpoint": "Mit {endpoint} verbunden"
}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Issuer",
"codeSecretKeyHint": "Secret Key",
"codeAccountHint": "Account (you@domain.com)",
"accountKeyType": "Type of key",
"sessionExpired": "Session expired",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,14 @@
"data": "Data",
"importCodes": "Import codes",
"importTypePlainText": "Plain text",
"importTypeEnteEncrypted": "ente Encrypted export",
"importTypeEnteEncrypted": "Ente Encrypted export",
"passwordForDecryptingExport": "Password to decrypt export",
"passwordEmptyError": "Password can not be empty",
"importFromApp": "Import codes from {appName}",
"importGoogleAuthGuide": "Export your accounts from Google Authenticator to a QR code using the \"Transfer Accounts\" option. Then using another device, scan the QR code.\n\nTip: You can use your laptop's webcam to take a picture of the QR code.",
"importSelectJsonFile": "Select JSON file",
"importSelectAppExport": "Select {appName} export file",
"importEnteEncGuide": "Select the encrypted JSON file exported from ente",
"importEnteEncGuide": "Select the encrypted JSON file exported from Ente",
"importRaivoGuide": "Use the \"Export OTPs to Zip archive\" option in Raivo's Settings.\n\nExtract the zip file and import the JSON file.",
"importBitwardenGuide": "Use the \"Export vault\" option within Bitwarden Tools and import the unencrypted JSON file.",
"importAegisGuide": "Use the \"Export the vault\" option in Aegis's Settings.\n\nIf your vault is encrypted, you will need to enter vault password to decrypt the vault.",
@@ -115,22 +114,22 @@
"copied": "Copied",
"pleaseTryAgain": "Please try again",
"existingUser": "Existing User",
"newUser": "New to ente",
"newUser": "New to Ente",
"delete": "Delete",
"enterYourPasswordHint": "Enter your password",
"forgotPassword": "Forgot password",
"oops": "Oops",
"suggestFeatures": "Suggest features",
"faq": "FAQ",
"faq_q_1": "How secure is ente Auth?",
"faq_a_1": "All codes you backup via ente is stored end-to-end encrypted. This means only you can access your codes. Our apps are open source and our cryptography has been externally audited.",
"faq_q_1": "How secure is Auth?",
"faq_a_1": "All codes you backup via Auth is stored end-to-end encrypted. This means only you can access your codes. Our apps are open source and our cryptography has been externally audited.",
"faq_q_2": "Can I access my codes on desktop?",
"faq_a_2": "You can access your codes on the web @ auth.ente.io.",
"faq_q_3": "How can I delete codes?",
"faq_a_3": "You can delete a code by swiping left on that item.",
"faq_q_4": "How can I support this project?",
"faq_a_4": "You can support the development of this project by subscribing to our Photos app @ ente.io.",
"faq_q_5": "How can I enable FaceID lock in ente Auth",
"faq_q_5": "How can I enable FaceID lock in Auth",
"faq_a_5": "You can enable FaceID lock under Settings → Security → Lockscreen.",
"somethingWentWrongMessage": "Something went wrong, please try again",
"leaveFamily": "Leave family",
@@ -199,6 +198,10 @@
"recoveryKeySaveDescription": "We don't store this key, please save this 24 word key in a safe place.",
"doThisLater": "Do this later",
"saveKey": "Save key",
"save": "Save",
"send": "Send",
"saveOrSendDescription": "Do you want to save this to your storage (Downloads folder by default) or send it to other apps?",
"saveOnlyDescription": "Do you want to save this to your storage (Downloads folder by default)?",
"back": "Back",
"createAccount": "Create account",
"passwordStrength": "Password strength: {passwordStrengthValue}",
@@ -346,7 +349,7 @@
"deleteCodeAuthMessage": "Authenticate to delete code",
"showQRAuthMessage": "Authenticate to show QR code",
"confirmAccountDeleteTitle": "Confirm account deletion",
"confirmAccountDeleteMessage": "This account is linked to other ente apps, if you use any.\n\nYour uploaded data, across all ente apps, will be scheduled for deletion, and your account will be permanently deleted.",
"confirmAccountDeleteMessage": "This account is linked to other Ente apps, if you use any.\n\nYour uploaded data, across all Ente apps, will be scheduled for deletion, and your account will be permanently deleted.",
"androidBiometricHint": "Verify identity",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -407,6 +410,7 @@
"doNotSignOut": "Do not sign out",
"hearUsWhereTitle": "How did you hear about Ente? (optional)",
"hearUsExplanation": "We don't track app installs. It'd help if you told us where you found us!",
"recoveryKeySaved": "Recovery key saved in Downloads folder!",
"waitingForBrowserRequest": "Waiting for browser request...",
"waitingForVerification": "Waiting for verification...",
"passkey": "Passkey",

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Emisor",
"codeSecretKeyHint": "Llave Secreta",
"codeAccountHint": "Cuenta (tu@dominio.com)",
"accountKeyType": "Tipo de llave",
"sessionExpired": "La sesión ha expirado",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,12 @@
"data": "Datos",
"importCodes": "Importar códigos",
"importTypePlainText": "Texto sin formato",
"importTypeEnteEncrypted": "Exportación cifrada ente",
"passwordForDecryptingExport": "Contraseña para descifrar exportación",
"passwordEmptyError": "La contraseña no puede estar vacía",
"importFromApp": "Importar códigos de {appName}",
"importGoogleAuthGuide": "Exportar tus cuentas desde Google Authenticator a un código QR usando la opción \"Transferir Cuentas\". A continuación, usando otro dispositivo, escanee el código QR.\n\nConsejo: Puede usar la webcam de su portátil para tomar una foto del código QR.",
"importSelectJsonFile": "Seleccione el archivo JSON",
"importSelectAppExport": "Seleccione el archivo de exportación de {appName}",
"importEnteEncGuide": "Seleccione el archivo JSON cifrado exportado desde ente",
"importRaivoGuide": "Utilice la opción \"Exportar códigos a un archivo de Zip\" en la configuración de Raivo.\n\nExtraiga el archivo zip e importe el archivo JSON.",
"importBitwardenGuide": "Use la opción \"Exportar caja fuerte\" dentro del menú Herramientas de Bitwarden e importe el fichero JSON no crifrado.",
"importAegisGuide": "Utilice la opción \"Exportar la bóveda\" en ajustes de Aegis.\n\nSi tu bóveda es cifrada, necesitara entrar contraseña de bóveda para descifrar la bóveda.",
@@ -115,22 +112,19 @@
"copied": "Copiado",
"pleaseTryAgain": "Por favor, inténtalo nuevamente",
"existingUser": "Usuario existente",
"newUser": "Nuevo en ente",
"newUser": "Nuevo a Ente",
"delete": "Borrar",
"enterYourPasswordHint": "Ingrese su contraseña",
"forgotPassword": "Olvidé mi contraseña",
"oops": "Ups",
"suggestFeatures": "Sugerir funcionalidades",
"faq": "Preguntas Frecuentes",
"faq_q_1": "¿Cuán seguro es ente Auth?",
"faq_a_1": "Todos los códigos que copia de seguridad vía ente se almacenan cifrados de extremo a extremo. Esto significa que solo usted puede acceder a sus códigos. Nuestras aplicaciones son de código abierto y nuestra criptografía ha sido auditada externamente.",
"faq_q_2": "¿Puedo acceder a mis códigos en el escritorio?",
"faq_a_2": "Puede acceder a tus códigos en la web en auth.ente.io.",
"faq_q_3": "¿Cómo puedo borrar códigos?",
"faq_a_3": "Puede eliminar un código deslizando a la izquierda en ese elemento.",
"faq_q_4": "¿Cómo puedo apoyar este proyecto?",
"faq_a_4": "Puedes apoyar el desarrollo de este proyecto suscribiéndote a nuestra app de Fotos en ente.io.",
"faq_q_5": "¿Cómo puedo habilitar bloqueo FaceID en ente Auth",
"faq_a_5": "Puede activar el bloqueo FaceID en Ajustes → Seguridad → Pantalla de bloqueo.",
"somethingWentWrongMessage": "Algo ha ido mal, por favor, prueba otra vez",
"leaveFamily": "Dejar plan familiar",
@@ -144,6 +138,8 @@
"enterCodeHint": "Ingrese el código de seis dígitos de su aplicación de autenticación",
"lostDeviceTitle": "¿Perdió su dispositivo?",
"twoFactorAuthTitle": "Autenticación de dos factores",
"passkeyAuthTitle": "Verificación de llave de acceso",
"verifyPasskey": "Verificar llave de acceso",
"recoverAccount": "Recuperar cuenta",
"enterRecoveryKeyHint": "Introduzca su clave de recuperación",
"recover": "Recuperar",
@@ -197,6 +193,8 @@
"recoveryKeySaveDescription": "Nosotros no almacenamos esta clave, por favor guarde dicha clave de 24 palabras en un lugar seguro.",
"doThisLater": "Hacer esto más tarde",
"saveKey": "Guardar Clave",
"save": "Guardar",
"send": "Enviar",
"back": "Atrás",
"createAccount": "Crear cuenta",
"passwordStrength": "Fortaleza de la contraseña: {passwordStrengthValue}",
@@ -344,7 +342,6 @@
"deleteCodeAuthMessage": "Autenticar para borrar código",
"showQRAuthMessage": "Autenticar para mostrar código QR",
"confirmAccountDeleteTitle": "Confirmar eliminación de la cuenta",
"confirmAccountDeleteMessage": "Esta cuenta está vinculada a otras aplicaciones de ente, si utiliza alguna.\n\nSe programará la eliminación de los datos que cargue en todas las aplicaciones de ente y su cuenta se eliminará permanentemente.",
"androidBiometricHint": "Verificar identidad",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -404,5 +401,8 @@
"signOutOtherDevices": "Cerrar la sesión de otros dispositivos",
"doNotSignOut": "No cerrar la sesión",
"hearUsWhereTitle": "¿Cómo conoció Ente? (opcional)",
"hearUsExplanation": "No rastreamos las aplicaciones instaladas. ¡Nos ayudaría si nos dijera dónde nos encontró!"
"hearUsExplanation": "No rastreamos las aplicaciones instaladas. ¡Nos ayudaría si nos dijera dónde nos encontró!",
"passkey": "Llave de acceso",
"developerSettingsWarning": "¿Estás seguro de que quieres modificar los ajustes de desarrollador?",
"developerSettings": "Ajustes de desarrollador"
}

View File

@@ -14,7 +14,6 @@
"codeIssuerHint": "صادر کننده",
"codeSecretKeyHint": "کلید مخفی",
"codeAccountHint": "حساب (you@domain.com)",
"accountKeyType": "نوع کلید",
"sessionExpired": "نشست منقضی شده است",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -85,7 +84,6 @@
"copied": "کپی شد",
"pleaseTryAgain": "لطفا دوباره تلاش کنید",
"existingUser": "کاربر موجود",
"newUser": "کاربر جدید ente",
"delete": "حذف",
"enterYourPasswordHint": "رمز عبور خود را وارد کنید",
"forgotPassword": "فراموشی رمز عبور",

View File

@@ -12,7 +12,6 @@
"codeIssuerHint": "Myöntäjä",
"codeSecretKeyHint": "Salainen avain",
"codeAccountHint": "Tili (sinun@jokinosoite.com)",
"accountKeyType": "Avaimen tyyppi",
"sessionExpired": "Istunto on vanheutunut",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -74,7 +73,6 @@
"copied": "Jäljennetty",
"pleaseTryAgain": "Yritä uudestaan",
"existingUser": "Jo valmiiksi olemassaoleva käyttäjä",
"newUser": "Uusi Ente-käyttäjä",
"delete": "Poista",
"enterYourPasswordHint": "Syötä salasanasi",
"forgotPassword": "Olen unohtanut salasanani",

View File

@@ -1,5 +1,6 @@
{
"account": "Compte",
"unlock": "Déverrouiller",
"recoveryKey": "Clé de récupération",
"counterAppBarTitle": "Compteur",
"@counterAppBarTitle": {
@@ -19,7 +20,6 @@
"codeIssuerHint": "Émetteur",
"codeSecretKeyHint": "Clé secrète",
"codeAccountHint": "Compte (vous@exemple.com)",
"accountKeyType": "Type de clé",
"sessionExpired": "Session expirée",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -77,15 +77,17 @@
"data": "Données",
"importCodes": "Importer les codes",
"importTypePlainText": "Texte brut",
"importTypeEnteEncrypted": "ente Exportation chiffrée",
"passwordForDecryptingExport": "Mot de passe pour déchiffrer l'exportation",
"passwordEmptyError": "Le mot de passe ne peut pas être vide",
"importFromApp": "Importer des codes depuis {appName}",
"importGoogleAuthGuide": "Exportez vos comptes depuis Google Authenticator vers un code QR en utilisant l'option \"Transférer des comptes\". Ensuite, en utilisant un autre appareil, scannez le code QR.\n\nAstuce : Vous pouvez utiliser la webcam de votre ordinateur portable pour prendre une photo du code QR.",
"importSelectJsonFile": "Sélectionnez un fichier JSON",
"importEnteEncGuide": "Sélectionnez le fichier JSON chiffré exporté à partir de ente",
"importSelectAppExport": "Sélectionnez le fichier d'exportation {appName}",
"importRaivoGuide": "Utilisez l'option \"Exporter les OTPs vers l'archive Zip\" dans les paramètres de Raivo.\n\nExtrayez le fichier zip et importez le fichier JSON.",
"importBitwardenGuide": "Utilisez l'option « Exporter le coffre » dans les outils Bitwarden et importez le fichier JSON non chiffré.",
"importAegisGuide": "Utilisez l'option \"Exporter le coffre-fort\" dans les paramètres d'Aegis.\n\nSi votre coffre-fort est crypté, vous devrez saisir le mot de passe du coffre-fort pour déchiffrer le coffre-fort.",
"import2FasGuide": "Utilisez l'option \"Paramètres->Sauvegarde -Export\" dans 2FAS.\n\nSi votre sauvegarde est chiffrée, vous devrez entrer le mot de passe pour déchiffrer la sauvegarde",
"importLastpassGuide": "Utilisez l'option \"Transférer des comptes\" dans les paramètres de l'authentificateur Lastpass et appuyez sur \"Exporter des comptes vers un fichier\". Importez le JSON téléchargé.",
"exportCodes": "Exporter les codes",
"importLabel": "Importer",
"importInstruction": "Veuillez sélectionner un fichier qui contient une liste de vos codes dans le format suivant",
@@ -97,6 +99,8 @@
"authToViewYourRecoveryKey": "Veuillez vous authentifier pour afficher votre clé de récupération",
"authToChangeYourEmail": "Veuillez vous authentifier pour modifier votre adresse e-mail",
"authToChangeYourPassword": "Veuillez vous authentifier pour modifier votre mot de passe",
"authToViewSecrets": "Veuillez vous authentifier pour voir vos souvenirs",
"authToInitiateSignIn": "Veuillez vous authentifier pour ouvrir une session de sauvegarde.",
"ok": "Ok",
"cancel": "Annuler",
"yes": "Oui",
@@ -108,22 +112,18 @@
"copied": "Copié",
"pleaseTryAgain": "Veuillez réessayer",
"existingUser": "Utilisateur existant",
"newUser": "Nouveau sur ente",
"delete": "Supprimer",
"enterYourPasswordHint": "Saisir votre mot de passe",
"forgotPassword": "Mot de passe oublié",
"oops": "Oups",
"suggestFeatures": "Suggérer des fonctionnalités",
"faq": "FAQ",
"faq_q_1": "À quel point ente Auth est-il sécurisé ?",
"faq_a_1": "Tous les codes que vous sauvegardez via ente sont chiffrés de bout en bout. Cela signifie que vous seul pouvez accéder à vos codes. Nos applications sont open source et notre cryptographie a fait l'objet d'un audit externe.",
"faq_q_2": "Puis-je accéder à mes codes sur mon ordinateur ?",
"faq_a_2": "Vous pouvez accéder à vos codes sur le web via auth.ente.io.",
"faq_q_3": "Comment puis-je supprimer des codes ?",
"faq_a_3": "Vous pouvez supprimer un code en glissant vers la gauche.",
"faq_q_4": "Comment puis-je soutenir le projet ?",
"faq_a_4": "Vous pouvez soutenir le développement de ce projet en vous abonnant à notre application Photos, ente.io.",
"faq_q_5": "Comment puis-je activer le verrouillage FaceID sur ente Auth",
"faq_a_5": "Vous pouvez activer le verrouillage FaceID dans Paramètres → Sécurité → Écran de verrouillage.",
"somethingWentWrongMessage": "Quelque chose s'est mal passé, veuillez recommencer",
"leaveFamily": "Quitter le plan familial",
@@ -137,6 +137,8 @@
"enterCodeHint": "Saisir le code à 6 caractères de votre appli d'authentification",
"lostDeviceTitle": "Appareil perdu ?",
"twoFactorAuthTitle": "Authentification à deux facteurs",
"passkeyAuthTitle": "Vérification du code d'accès",
"verifyPasskey": "Vérifier le code d'accès",
"recoverAccount": "Récupérer un compte",
"enterRecoveryKeyHint": "Saisissez votre clé de récupération",
"recover": "Restaurer",
@@ -190,6 +192,10 @@
"recoveryKeySaveDescription": "Nous ne stockons pas cette clé, veuillez enregistrer cette clé de 24 mots dans un endroit sûr.",
"doThisLater": "Plus tard",
"saveKey": "Enregistrer la clé",
"save": "Sauvegarder",
"send": "Envoyer",
"saveOrSendDescription": "Voulez-vous enregistrer ceci sur votre stockage (dossier Téléchargements par défaut) ou l'envoyer à d'autres applications ?",
"saveOnlyDescription": "Voulez-vous enregistrer ceci sur votre stockage (dossier Téléchargements par défaut) ?",
"back": "Retour",
"createAccount": "Créer un compte",
"passwordStrength": "Force du mot de passe : {passwordStrengthValue}",
@@ -329,6 +335,7 @@
"offlineModeWarning": "Vous avez choisi de procéder sans sauvegarde. Veuillez prendre des sauvegardes manuelles pour vous assurer que vos codes sont sûrs.",
"showLargeIcons": "Afficher les grandes icônes",
"shouldHideCode": "Cacher les codes",
"doubleTapToViewHiddenCode": "Vous pouvez appuyer deux fois sur une entrée pour afficher le code",
"focusOnSearchBar": "Cibler le champ de recherche au démarrage de l'application",
"confirmUpdatingkey": "Êtes-vous sûr de vouloir mettre à jour la clé secrète ?",
"minimizeAppOnCopy": "Réduire l'application après la copie",
@@ -336,5 +343,75 @@
"deleteCodeAuthMessage": "Authentification requise pour supprimer le code",
"showQRAuthMessage": "Authentification requise pour afficher le code QR",
"confirmAccountDeleteTitle": "Confirmer la suppression du compte",
"confirmAccountDeleteMessage": "Ce compte peut être lié à d'autres applications ente.\n\nVos données seront bientôt effacées de toutes les applications et votre compte sera définitivement supprimé."
"androidBiometricHint": "Vérifier lidentité",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "Non reconnu. Veuillez réessayer.",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "Parfait",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "Annuler",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "Authentification requise",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"androidBiometricRequiredTitle": "Empreinte digitale requise",
"@androidBiometricRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up biometric authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsRequiredTitle": "Identifiants de l'appareil requis",
"@androidDeviceCredentialsRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up credentials authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsSetupDescription": "Identifiants de l'appareil requis",
"@androidDeviceCredentialsSetupDescription": {
"description": "Message advising the user to go to the settings and configure device credentials on their device. It shows in a dialog on Android side."
},
"goToSettings": "Allez dans les paramètres",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"androidGoToSettingsDescription": "L'authentification biométrique n'est pas configurée sur votre appareil. Allez dans 'Paramètres > Sécurité' pour l'ajouter.",
"@androidGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side."
},
"iOSLockOut": "L'authentification biométrique est désactivée. Veuillez verrouiller et déverrouiller votre écran pour l'activer.",
"@iOSLockOut": {
"description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side."
},
"iOSGoToSettingsDescription": "L'authentification biométrique n'est pas configurée sur votre appareil. Veuillez activer Touch ID ou Face ID sur votre téléphone.",
"@iOSGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side."
},
"iOSOkButton": "Ok",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Aucune connexion internet",
"pleaseCheckYourInternetConnectionAndTryAgain": "Veuillez vérifier votre connexion internet puis réessayer.",
"signOutFromOtherDevices": "Déconnexion des autres appareils",
"signOutOtherBody": "Si vous pensez que quelqu'un connaît peut-être votre mot de passe, vous pouvez forcer tous les autres appareils utilisant votre compte à se déconnecter.",
"signOutOtherDevices": "Déconnecter les autres appareils",
"doNotSignOut": "Ne pas se déconnecter",
"hearUsWhereTitle": "Comment avez-vous entendu parler de Ente? (facultatif)",
"hearUsExplanation": "Nous ne suivons pas les installations d'applications. Il serait utile que vous nous disiez comment vous nous avez trouvés !",
"recoveryKeySaved": "Clé de récupération enregistrée dans le dossier Téléchargements !",
"waitingForBrowserRequest": "En attente de la requête du navigateur...",
"waitingForVerification": "En attente de vérification...",
"passkey": "Code d'accès",
"developerSettingsWarning": "Êtes-vous sûr de vouloir modifier les paramètres du développeur ?",
"developerSettings": "Paramètres du développeur",
"serverEndpoint": "Point de terminaison serveur",
"invalidEndpoint": "Point de terminaison non valide",
"invalidEndpointMessage": "Désolé, le point de terminaison que vous avez entré n'est pas valide. Veuillez en entrer un valide puis réessayez.",
"endpointUpdatedMessage": "Point de terminaison mis à jour avec succès",
"customEndpoint": "Connecté à {endpoint}"
}

View File

@@ -19,7 +19,6 @@
"codeIssuerHint": "מנפיק",
"codeSecretKeyHint": "מפתח סודי",
"codeAccountHint": "חשבון(you@domain.com)",
"accountKeyType": "סוג מפתח",
"sessionExpired": "זמן החיבור הסתיים",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -77,13 +76,11 @@
"data": "נתונים",
"importCodes": "ייבא קוד",
"importTypePlainText": "טקסט רגיל",
"importTypeEnteEncrypted": "ייצוא ente מוצפן",
"passwordForDecryptingExport": "סיסמא כדי לפענח יצוא",
"passwordEmptyError": "הסיסמה אינה יכולה להיות ריקה",
"importFromApp": "יבא קודים מ-{appName}",
"importGoogleAuthGuide": "יצא את החשבונות שלך מ-Google Authenticator לקוד QR תוך שימוש באפשרות \"Transfer Accounts\". אז, תוך שימוש במכשיר אחר, סרוק את הקוד QR.",
"importSelectJsonFile": "בחר קובץ JSON",
"importEnteEncGuide": "בחר את קובץ ה-JSON המוצפן שייוצא מ-ente",
"importRaivoGuide": "השתמש באפוציה של \"Export OTPs to Zip archive\" בהגדרות של Raivo.",
"importAegisGuide": "אנא השתמש באפשרות של \"ייצוא של הכספת\" בתוך ההגדרות של Aegis.",
"exportCodes": "ייצא קודים",
@@ -108,22 +105,18 @@
"copied": "הועתק",
"pleaseTryAgain": "אנא נסה שנית",
"existingUser": "משתמש קיים",
"newUser": "חדש בente",
"delete": "למחוק",
"enterYourPasswordHint": "הכנס סיסמא",
"forgotPassword": "שכחתי סיסמה",
"oops": "אופס",
"suggestFeatures": "הציעו מאפיינים",
"faq": "שאלות נפוצות",
"faq_q_1": "כמה מאובטח ente Auth?",
"faq_a_1": "כל הקודים שאתה מגבה דרך ente מאוחסנים מקצה לקצה בהצפנה. הכוונה שרק אתה יכול לגשת לקודים שלך. האפליקציות שלנו הם מפותחות דרך קוד פתוח והקריפטוגרפיה שלנו מבוקרת חיצונית.",
"faq_q_2": "האם ישנה אפשרות להשתמש בקודים שלי במחשב?",
"faq_a_2": "אתה יכול לגשת לקודים שלך ברשת ב- auth.ente.io.",
"faq_q_3": "איך אפשר למחוק קודים?",
"faq_a_3": "אתה יכול למחוק את הקוד על-ידי החלקה שמאלה על הפריט הזה.",
"faq_q_4": "איך אפשר לתמוך בפרויקט זה?",
"faq_a_4": "אתה יכול לתמוך בפיתוח של הפרויקט הזה על ידי שתירשם לאפליקצית תמונות שלנו ב-ente.io.",
"faq_q_5": "איך אני יכול להפעיל מנעול FaceID ב-ente Auth",
"faq_a_5": "אתה יכול להפעיל מנעול FaceID תחת הגדרות -> אבטחה -> מסך נעילה.",
"somethingWentWrongMessage": "משהו השתבש, אנא נסה שנית",
"leaveFamily": "עזוב משפחה",

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Emittente",
"codeSecretKeyHint": "Codice segreto",
"codeAccountHint": "Account (username@dominio.it)",
"accountKeyType": "Tipo di chiave",
"sessionExpired": "Sessione scaduta",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,12 @@
"data": "Dati",
"importCodes": "Importa codici",
"importTypePlainText": "Testo in chiaro",
"importTypeEnteEncrypted": "ente Esportazione criptata",
"passwordForDecryptingExport": "Password per decriptare il file esportato",
"passwordEmptyError": "La password è obbligatoria",
"importFromApp": "Importa codici da {appName}",
"importGoogleAuthGuide": "Esporta i tuoi account da Google Authenticator in un codice QR utilizzando l'opzione \"Trasferisci Account\". Quindi, usando un altro dispositivo, scansiona il codice QR.\n\nSuggerimento: Puoi usare la webcam del tuo computer portatile per scattare una foto del codice QR.",
"importSelectJsonFile": "Seleziona file JSON",
"importSelectAppExport": "Seleziona il file di esportazione {appName}",
"importEnteEncGuide": "Seleziona il file JSON criptato esportato da ente",
"importRaivoGuide": "Utilizza l'opzione \"Esporta i codici OTP in archivio Zip\" nelle impostazioni di Raivo.\n\nEstrai il file zip e importa il file JSON.",
"importBitwardenGuide": "Utilizzare l'opzione \"Esporta vault\" all'interno di Bitwarden Tools e importa il file JSON non crittografato.",
"importAegisGuide": "Usa l'opzione \"Esporta la cassaforte\" nelle impostazioni di Aegis.\n\nSe la tua cassaforte è criptata, dovrai inserire la password della cassaforte per decriptarla.",
@@ -114,22 +111,18 @@
"copied": "Copiato",
"pleaseTryAgain": "Per favore riprova",
"existingUser": "Accedi",
"newUser": "Nuovo utente",
"delete": "Cancella",
"enterYourPasswordHint": "Inserisci la tua password",
"forgotPassword": "Password dimenticata",
"oops": "Oops",
"suggestFeatures": "Suggerisci funzionalità",
"faq": "FAQ",
"faq_q_1": "Quanto è sicuro ente Auth?",
"faq_a_1": "Tutti i codici di cui fai il backup tramite ente sono memorizzati con crittografia end-to-end. Ciò significa che solo tu puoi accedere ai tuoi codici. Le nostre app sono open source e la nostra crittografia è stata verificata esternamente.",
"faq_q_2": "Posso accedere ai miei codici sul desktop?",
"faq_a_2": "Puoi accedere ai tuoi codici sul web @ auth.ente.io.",
"faq_q_3": "Come posso cancellare i codici?",
"faq_a_3": "Puoi eliminare un codice scorrendo il dito a sinistra sul codice in questione.",
"faq_q_4": "Come posso supportare questo progetto?",
"faq_a_4": "Puoi supportare lo sviluppo di questo progetto abbonandoti alla nostra app Photos @ ente.io.",
"faq_q_5": "Come posso abilitare il blocco FaceID in ente Auth",
"faq_a_5": "Puoi abilitare il blocco FaceID in Impostazioni → Sicurezza → Schermata di blocco.",
"somethingWentWrongMessage": "Qualcosa è andato storto, per favore riprova",
"leaveFamily": "Abbandona il piano famiglia",
@@ -196,6 +189,7 @@
"recoveryKeySaveDescription": "Non memorizziamo questa chiave, per favore salva questa chiave di 24 parole in un posto sicuro.",
"doThisLater": "Fallo più tardi",
"saveKey": "Salva chiave",
"save": "Salva",
"back": "Indietro",
"createAccount": "Crea account",
"passwordStrength": "Forza password: {passwordStrengthValue}",
@@ -343,7 +337,6 @@
"deleteCodeAuthMessage": "Autenticarsi per cancellare il codice",
"showQRAuthMessage": "Autenticarsi per mostrare il codice QR",
"confirmAccountDeleteTitle": "Conferma l'eliminazione dell'account",
"confirmAccountDeleteMessage": "Questo account è collegato ad altre app di ente, se ne utilizzi.\n\nI tuoi dati caricati, su tutte le app di ente, saranno pianificati per la cancellazione e il tuo account verrà eliminato definitivamente.",
"androidBiometricHint": "Verifica l'identità",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -403,5 +396,6 @@
"signOutOtherDevices": "Esci dagli altri dispositivi",
"doNotSignOut": "Non uscire",
"hearUsWhereTitle": "Dove hai sentito parlare di Ente? (opzionale)",
"hearUsExplanation": "Non teniamo traccia delle installazioni dell'app. Sarebbe utile se ci dicessi dove ci hai trovato!"
"hearUsExplanation": "Non teniamo traccia delle installazioni dell'app. Sarebbe utile se ci dicessi dove ci hai trovato!",
"passkey": "Passkey"
}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "発行者",
"codeSecretKeyHint": "秘密鍵",
"codeAccountHint": "アカウント (you@domain.com)",
"accountKeyType": "鍵の種類",
"sessionExpired": "セッションが失効しました",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,13 @@
"data": "データ",
"importCodes": "コードをインポート",
"importTypePlainText": "プレーンテキスト",
"importTypeEnteEncrypted": "ente 暗号化エクスポート",
"passwordForDecryptingExport": "復号化用パスワード",
"passwordEmptyError": "パスワードは空欄にできません",
"importFromApp": "{appName} からコードをインポート",
"importGoogleAuthGuide": "Google Authenticator の \"アカウントを転送\" オプションを使用してあなたのアカウントを QR コードにエクスポートしてください。その後、他のデバイスで QR コードを読み取ってください。\n\nヒント: ノートパソコンのウェブカメラを使用して QR コードを撮影することができます。",
"importSelectJsonFile": "JSON ファイルを選択",
"importSelectAppExport": "{appName} のエクスポートファイルを選択",
"importEnteEncGuide": "ente からエクスポートされた暗号化 JSON ファイルを選択",
"importEnteEncGuide": "Enteからエクスポートた暗号化されたJSONファイルを選択してください",
"importRaivoGuide": "Raivo の設定の \"OTP を zip アーカイブにエクスポート\" を使用してください。\n\nzip ファイルを解凍し JSON ファイルをインポートしてください。",
"importBitwardenGuide": "Bitwarden Tools の \"保管庫のエクスポート\" オプションを使用後、平文の JSON ファイルをインポートしてください。",
"importAegisGuide": "Aegis の設定の \"保管庫をエクスポート\" を使用してください。\n\n保管庫が暗号化されている場合、保管庫を復号するためにパスワードの入力が必要になります。",
@@ -115,22 +113,21 @@
"copied": "コピーしました",
"pleaseTryAgain": "再度お試しください",
"existingUser": "既存のユーザー",
"newUser": "ente 新規ユーザー",
"newUser": "Enteを初めて使用",
"delete": "削除",
"enterYourPasswordHint": "パスワードを入力してください",
"forgotPassword": "パスワードを忘れた場合",
"oops": "おっと",
"suggestFeatures": "機能を提案",
"faq": "FAQ",
"faq_q_1": "ente Auth はどのくらい安全ですか?",
"faq_a_1": "ente でバックアップされたすべてのコードはエンドツーエンドで暗号化されて保管されます。これはあなただけがコードにアクセスできることを意味します。私たちのアプリはオープンソースであり、私たちの暗号は外部有識者によって検証済みです。",
"faq_q_1": "Authはどのくらい安全ですか",
"faq_q_2": "パソコンから私のコードにアクセスできますか?",
"faq_a_2": "auth.ente.io で Web からコードにアクセス可能です。",
"faq_q_3": "コードを削除するにはどうすればいいですか?",
"faq_a_3": "その項目を左にスワイプすることでコードを削除できます。",
"faq_q_4": "このプロジェクトを支援するにはどうすればいいですか?",
"faq_a_4": "ente.io で私たちの写真アプリを購読することでこのプロジェクトの開発を支援できます。",
"faq_q_5": "ente AuthFaceID ロックを有効にするにはどうすればいいですか?",
"faq_q_5": "AuthFaceIDロックを有効にするにはどうすればいいですか",
"faq_a_5": "設定→セキュリティ→画面のロックから FaceID ロックを有効にできます。",
"somethingWentWrongMessage": "問題が発生しました、再試行してください",
"leaveFamily": "ファミリープランから退会",
@@ -144,6 +141,8 @@
"enterCodeHint": "認証アプリに表示された 6 桁のコードを入力してください",
"lostDeviceTitle": "デバイスを紛失しましたか?",
"twoFactorAuthTitle": "2 要素認証",
"passkeyAuthTitle": "パスキー認証",
"verifyPasskey": "パスキーの認証",
"recoverAccount": "アカウントを回復",
"enterRecoveryKeyHint": "回復キーを入力",
"recover": "回復",
@@ -197,6 +196,10 @@
"recoveryKeySaveDescription": "私たちはこのキーを保存しません。この 24 単語のキーを安全な場所に保存してください。",
"doThisLater": "後で行う",
"saveKey": "キーを保存",
"save": "保存",
"send": "送信",
"saveOrSendDescription": "これをストレージ (デフォルトではダウンロードフォルダ) に保存しますか、もしくは他のアプリに送信しますか?",
"saveOnlyDescription": "これをストレージに保存しますか? (デフォルトではダウンロードフォルダに保存)",
"back": "戻る",
"createAccount": "アカウント作成",
"passwordStrength": "パスワードの強度: {passwordStrengthValue}",
@@ -344,7 +347,6 @@
"deleteCodeAuthMessage": "コードを削除するためには認証が必要です",
"showQRAuthMessage": "QR コードを表示するためには認証が必要です",
"confirmAccountDeleteTitle": "アカウントの削除に同意",
"confirmAccountDeleteMessage": "このアカウントは他の ente アプリも使用している場合はそれらに結びつけられています。\n\nすべての ente アプリであなたがアップロードしたデータは削除がスケジュールされ、あなたのアカウントは永久に削除されます。",
"androidBiometricHint": "本人を確認する",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -404,5 +406,16 @@
"signOutOtherDevices": "他のデバイスからサインアウトする",
"doNotSignOut": "サインアウトしない",
"hearUsWhereTitle": "Ente についてどのようにお聞きになりましたか?(任意)",
"hearUsExplanation": "私たちはアプリのインストールを追跡していません。私たちをお知りになった場所を教えてください!"
"hearUsExplanation": "私たちはアプリのインストールを追跡していません。私たちをお知りになった場所を教えてください!",
"recoveryKeySaved": "リカバリキーをダウンロードフォルダに保存しました!",
"waitingForBrowserRequest": "ブラウザのリクエストを待っています...",
"waitingForVerification": "認証を待っています...",
"passkey": "パスキー",
"developerSettingsWarning": "開発者向け設定を変更してもよろしいですか?",
"developerSettings": "開発者向け設定",
"serverEndpoint": "サーバーエンドポイント",
"invalidEndpoint": "無効なエンドポイントです",
"invalidEndpointMessage": "入力されたエンドポイントは無効です。有効なエンドポイントを入力して再試行してください。",
"endpointUpdatedMessage": "エンドポイントの更新に成功しました",
"customEndpoint": "{endpoint} に接続しました"
}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "მომწოდებელი",
"codeSecretKeyHint": "გასაღები",
"codeAccountHint": "ანგარიში (you@domain.com)",
"accountKeyType": "გასაღების ტიპი",
"sessionExpired": "სესიის დრო ამოიწურა",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -74,7 +73,6 @@
"data": "მონაცემები",
"importCodes": "კოდების იმპორტირება",
"importTypePlainText": "სტანდარტული ტექსტი",
"importTypeEnteEncrypted": "ente დაშიფრული ექსპორტი",
"passwordForDecryptingExport": "ექსპორტის გაშიფრვის პაროლი",
"passwordEmptyError": "პაროლის ველი არ შეიძლება იყოს ცარიელი",
"emailVerificationToggle": "ელექტრონული ფოსტის ვერიფიკაცია",

View File

@@ -0,0 +1 @@
{}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Uitgever",
"codeSecretKeyHint": "Geheime sleutel",
"codeAccountHint": "Account (jij@domein.nl)",
"accountKeyType": "Type sleutel",
"sessionExpired": "Sessie verlopen",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,7 +77,7 @@
"data": "Gegevens",
"importCodes": "Codes importeren",
"importTypePlainText": "Kale tekst",
"importTypeEnteEncrypted": "ente versleutelde export",
"importTypeEnteEncrypted": "Ente versleutelde export",
"passwordForDecryptingExport": "Wachtwoord voor het decoderen van export",
"passwordEmptyError": "Wachtwoord kan niet leeg zijn",
"importFromApp": "Importeer codes van {appName}",
@@ -115,15 +114,15 @@
"copied": "Gekopieerd",
"pleaseTryAgain": "Probeer het nog eens",
"existingUser": "Bestaande gebruiker",
"newUser": "Nieuw bij ente",
"newUser": "Nieuw bij Ente",
"delete": "Verwijderen",
"enterYourPasswordHint": "Voer je wachtwoord in",
"forgotPassword": "Wachtwoord vergeten",
"oops": "Oeps",
"suggestFeatures": "Features voorstellen",
"faq": "Veelgestelde vragen",
"faq_q_1": "Hoe veilig is ente Auth?",
"faq_a_1": "Alle codes in ente zijn versleuteld opgeslagen met end-to-end encryptie. Dit betekent dat alleen jij toegang hebt tot je codes. Onze apps zijn open source en onze cryptografie is extern gecontroleerd.",
"faq_q_1": "Hoe veilig is Ente Auth?",
"faq_a_1": "Alle codes in Auth zijn versleuteld opgeslagen met end-to-end encryptie. Dit betekent dat alleen jij toegang hebt tot je codes. Onze apps zijn open source en onze cryptografie is extern gecontroleerd.",
"faq_q_2": "Kan ik toegang krijgen tot mijn codes op desktop?",
"faq_a_2": "U heeft toegang tot uw codes op het web @ auth.ente.io.",
"faq_q_3": "Hoe kan ik codes verwijderen?",
@@ -144,6 +143,8 @@
"enterCodeHint": "Voer de 6-cijferige code van je verificatie-app in",
"lostDeviceTitle": "Apparaat verloren?",
"twoFactorAuthTitle": "Tweestapsverificatie",
"passkeyAuthTitle": "Passkey verificatie",
"verifyPasskey": "Bevestig passkey",
"recoverAccount": "Account herstellen",
"enterRecoveryKeyHint": "Voer je herstelsleutel in",
"recover": "Herstellen",
@@ -197,6 +198,10 @@
"recoveryKeySaveDescription": "We slaan deze code niet op, bewaar deze code met 24 woorden op een veilige plaats.",
"doThisLater": "Doe dit later",
"saveKey": "Sleutel opslaan",
"save": "Opslaan",
"send": "Verzenden",
"saveOrSendDescription": "Wil je dit opslaan naar je opslagruimte (Downloads map) of naar andere apps versturen?",
"saveOnlyDescription": "Wil je dit opslaan naar je opslagruimte (Downloads map)?",
"back": "Terug",
"createAccount": "Account aanmaken",
"passwordStrength": "Wachtwoord sterkte: {passwordStrengthValue}",
@@ -344,7 +349,7 @@
"deleteCodeAuthMessage": "Authenticeren om code te verwijderen",
"showQRAuthMessage": "Authenticeren om QR-code te tonen",
"confirmAccountDeleteTitle": "Account verwijderen bevestigen",
"confirmAccountDeleteMessage": "Dit account is gekoppeld aan andere ente apps, als je er gebruik van maakt.\n\nJe geüploade gegevens worden in alle ente apps gepland voor verwijdering, en je account wordt permanent verwijderd voor alle ente diensten.",
"confirmAccountDeleteMessage": "Dit account is gekoppeld aan andere Ente apps, als je er gebruik van maakt.\n\nJe geüploade gegevens worden in alle Ente apps gepland voor verwijdering, en je account wordt permanent verwijderd voor alle Ente diensten.",
"androidBiometricHint": "Identiteit verifiëren",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -404,5 +409,16 @@
"signOutOtherDevices": "Afmelden bij andere apparaten",
"doNotSignOut": "Niet uitloggen",
"hearUsWhereTitle": "Hoe hoorde je over Ente? (optioneel)",
"hearUsExplanation": "Wij gebruiken geen tracking. Het zou helpen als je ons vertelt waar je ons gevonden hebt!"
"hearUsExplanation": "Wij gebruiken geen tracking. Het zou helpen als je ons vertelt waar je ons gevonden hebt!",
"recoveryKeySaved": "Herstelsleutel opgeslagen in de Downloads map!",
"waitingForBrowserRequest": "Wachten op browserverzoek...",
"waitingForVerification": "Wachten op verificatie...",
"passkey": "Passkey",
"developerSettingsWarning": "Weet u zeker dat u de ontwikkelaarsinstellingen wilt wijzigen?",
"developerSettings": "Ontwikkelaarsinstellingen",
"serverEndpoint": "Server eindpunt",
"invalidEndpoint": "Ongeldig eindpunt",
"invalidEndpointMessage": "Sorry, het eindpunt dat u hebt ingevoerd is ongeldig. Voer een geldig eindpunt in en probeer het opnieuw.",
"endpointUpdatedMessage": "Eindpunt met succes bijgewerkt",
"customEndpoint": "Verbonden met {endpoint}"
}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Wydawca",
"codeSecretKeyHint": "Tajny klucz",
"codeAccountHint": "Konto (ty@domena.com)",
"accountKeyType": "Rodzaj klucza",
"sessionExpired": "Sesja wygasła",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,13 +77,11 @@
"data": "Dane",
"importCodes": "Importuj kody",
"importTypePlainText": "Zwykły tekst",
"importTypeEnteEncrypted": "Zaszyfrowany eksport ente",
"passwordForDecryptingExport": "Hasło do odszyfrowania eksportu",
"passwordEmptyError": "Pole hasło nie może być puste",
"importFromApp": "Importuj kody z {appName}",
"importGoogleAuthGuide": "Wyeksportuj twoje konta z Google Authenticator do kodu QR używając opcji \"Przenieś konta\". Potem używając innego urządzenia, zeskanuj kod QR.",
"importSelectJsonFile": "Wybierz plik JSON",
"importEnteEncGuide": "Wybierz zaszyfrowany plik JSON wyeksportowany z ente",
"importRaivoGuide": "Użyj opcji \"Eksportuj OTP do archiwum ZIP\" w Ustawieniach Raivo.\n\nWyodrębnij plik zip i zaimportuj plik JSON.",
"importAegisGuide": "Użyj opcji \"Eksportuj sejf\" w ustawieniach Aegis.\n\nJeśli twój sejf jest zaszyfrowany, musisz wprowadzić hasło sejfu, aby odszyfrować sejf.",
"exportCodes": "Eksportuj kody",
@@ -110,22 +107,18 @@
"copied": "Skopiowano",
"pleaseTryAgain": "Proszę spróbować ponownie",
"existingUser": "Istniejący użytkownik",
"newUser": "Nowy do ente",
"delete": "Usuń",
"enterYourPasswordHint": "Wprowadź swoje hasło",
"forgotPassword": "Nie pamiętam hasła",
"oops": "Ups",
"suggestFeatures": "Zaproponuj funkcje",
"faq": "Najczęściej zadawane pytania (FAQ)",
"faq_q_1": "Jak bezpieczny jest ente Auth?",
"faq_a_1": "Wszystkie kody, których tworzysz kopię zapasową za pomocą ente są przechowywane zaszyfrowane end-to-end. Oznacza to, że tylko Ty możesz uzyskać dostęp do swoich kodów. Nasze aplikacje są otwarto-źródłowe, a nasza kryptografia została poddana sprawdzeniu z zewnątrz.",
"faq_q_2": "Czy mogę uzyskać dostęp do moich kodów na komputerze?",
"faq_a_2": "Możesz uzyskać dostęp do swoich kodów na stronie auth.ente.io.",
"faq_q_3": "Jak mogę usunąć kody?",
"faq_a_3": "Możesz usunąć kod, przesuwając go w lewo.",
"faq_q_4": "Jak mogę wesprzeć ten projekt?",
"faq_a_4": "Możesz wspierać rozwój tego projektu, subskrybując do naszej aplikacji Zdjęcia na ente.io.",
"faq_q_5": "Jak mogę włączyć blokadę FaceID w ente Auth?",
"faq_a_5": "Możesz włączyć blokadę FaceID w Ustawienia → Bezpieczeństwo→ Ekran blokady.",
"somethingWentWrongMessage": "Coś poszło nie tak. Proszę, spróbuj ponownie",
"leaveFamily": "Opuść rodzinę",
@@ -338,5 +331,21 @@
"deleteCodeAuthMessage": "Uwierzytelnij, aby usunąć kod",
"showQRAuthMessage": "Uwierzytelnij, aby pokazać kod QR",
"confirmAccountDeleteTitle": "Potwierdź usunięcie konta",
"confirmAccountDeleteMessage": "To konto jest połączone z innymi aplikacjami ente, jeśli ich używasz.\n\nTwoje przesłane dane, we wszystkich aplikacjach ente, zostaną zaplanowane do usunięcia, a Twoje konto zostanie trwale usunięte."
"androidBiometricNotRecognized": "Nie rozpoznano. Spróbuj ponownie.",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidSignInTitle": "Wymagana autoryzacja",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"goToSettings": "Przejdź do Ustawień",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"noInternetConnection": "Brak połączenia z Internetem",
"pleaseCheckYourInternetConnectionAndTryAgain": "Proszę sprawdzić połączenie internetowe i spróbować ponownie.",
"hearUsWhereTitle": "Jak usłyszałeś o Ente? (opcjonalnie)",
"waitingForVerification": "Oczekiwanie na weryfikację...",
"developerSettings": "Ustawienia deweloperskie"
}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Emissor",
"codeSecretKeyHint": "Chave secreta",
"codeAccountHint": "Conta (voce@dominio.com)",
"accountKeyType": "Tipo de chave",
"sessionExpired": "Sessão expirada",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -47,9 +46,9 @@
},
"copyEmailAction": "Copiar e-mail",
"exportLogsAction": "Exportar logs",
"reportABug": "Reportar um bug",
"reportABug": "Reportar um problema",
"crashAndErrorReporting": "Reporte de erros e falhas",
"reportBug": "Reportar bug",
"reportBug": "Reportar problema",
"emailUsMessage": "Por favor, envie um e-mail para {email}",
"@emailUsMessage": {
"placeholders": {
@@ -78,14 +77,14 @@
"data": "Dados",
"importCodes": "Importar códigos",
"importTypePlainText": "Texto simples",
"importTypeEnteEncrypted": "ente Exportação criptografada",
"importTypeEnteEncrypted": "Exportação Ente criptografada",
"passwordForDecryptingExport": "Senha para descriptografar a exportação",
"passwordEmptyError": "O campo senha não pode estar vazio",
"importFromApp": "Importar códigos do {appName}",
"importGoogleAuthGuide": "Exporte suas contas do Google Authenticator para um QR code usando a opção \"Transferir contas\". Então, usando outro dispositivo, escaneie o QR code.\n\nDica: Você pode usar a câmera do seu notebook para fotografar o QR code.",
"importSelectJsonFile": "Selecione o arquivo JSON",
"importSelectAppExport": "Selecione o arquivo de exportação do aplicativo {appName}",
"importEnteEncGuide": "Selecione o arquivo JSON criptografado exportado pelo ente",
"importEnteEncGuide": "Selecione o arquivo JSON criptografado exportado do Ente",
"importRaivoGuide": "Use a opção \"Exportar OTPs para arquivo Zip\" nas configurações do Raivo.\n\nExtraia o arquivo zip e importe o arquivo JSON.",
"importBitwardenGuide": "Use a opção \"Exportar cofre\" nas configurações do Bitwarden e importe o arquivo JSON não criptografado.",
"importAegisGuide": "Use a opção \"Exportar cofre\" nas Configurações do Aegis.\n\nSe o seu cofre estiver criptografado, você precisará inserir a senha do cofre para descriptografá-lo.",
@@ -115,22 +114,22 @@
"copied": "Copiado",
"pleaseTryAgain": "Por favor, tente novamente",
"existingUser": "Usuário Existente",
"newUser": "Novo no ente",
"newUser": "Novo no Ente",
"delete": "Excluir",
"enterYourPasswordHint": "Insira sua senha",
"forgotPassword": "Esqueci a senha",
"oops": "Oops",
"suggestFeatures": "Sugerir funcionalidades",
"faq": "Perguntas frequentes",
"faq_q_1": "Quão seguro é o ente Auth?",
"faq_a_1": "Todos os códigos que você faz cópia de segurança via ente são armazenados criptografados de ponta a ponta. Isso significa que somente você pode acessar seus códigos. Nossos aplicativos são de código aberto e nossa criptografia foi auditada externamente.",
"faq_q_1": "Quão seguro é o Auth?",
"faq_a_1": "Todos os códigos que você faz backup via Auth são armazenados criptografados de ponta a ponta. Isso significa que somente você pode acessar seus códigos. Nossos aplicativos são de código aberto e nossa criptografia foi auditada externamente.",
"faq_q_2": "Eu posso acessar meus códigos no computador?",
"faq_a_2": "Você pode acessar seus códigos na web em auth.ente.io.",
"faq_q_3": "Como faço para excluir códigos?",
"faq_a_3": "Você pode excluir um código deslizando para a esquerda sobre esse item.",
"faq_q_4": "Como posso apoiar este projeto?",
"faq_a_4": "Você pode apoiar o desenvolvimento deste projeto assinando nosso aplicativo de Fotos em ente.io.",
"faq_q_5": "Como posso ativar o bloqueio facial no ente Auth",
"faq_q_5": "Como posso ativar o bloqueio facial no Auth",
"faq_a_5": "Você pode ativar o bloqueio facial em Configurações → Segurança → Tela de bloqueio.",
"somethingWentWrongMessage": "Algo deu errado. Por favor, tente outra vez",
"leaveFamily": "Sair da família",
@@ -144,6 +143,8 @@
"enterCodeHint": "Digite o código de 6 dígitos de\nseu aplicativo autenticador",
"lostDeviceTitle": "Perdeu seu dispositivo?",
"twoFactorAuthTitle": "Autenticação de dois fatores",
"passkeyAuthTitle": "Autenticação via Chave de acesso",
"verifyPasskey": "Verificar chave de acesso",
"recoverAccount": "Recuperar conta",
"enterRecoveryKeyHint": "Digite sua chave de recuperação",
"recover": "Recuperar",
@@ -161,7 +162,7 @@
"invalidEmailMessage": "Por favor, insira um endereço de e-mail válido.",
"deleteAccount": "Excluir conta",
"deleteAccountQuery": "Sentiremos muito por vê-lo partir. Você está enfrentando algum problema?",
"yesSendFeedbackAction": "Sim, enviar feedback",
"yesSendFeedbackAction": "Sim, enviar comentário",
"noDeleteAccountAction": "Não, excluir conta",
"initiateAccountDeleteTitle": "Por favor, autentique-se para iniciar a exclusão de conta",
"sendEmail": "Enviar e-mail",
@@ -197,6 +198,10 @@
"recoveryKeySaveDescription": "Não armazenamos essa chave, por favor, salve essa chave de 24 palavras em um lugar seguro.",
"doThisLater": "Fazer isso mais tarde",
"saveKey": "Salvar chave",
"save": "Salvar",
"send": "Enviar",
"saveOrSendDescription": "Você deseja salvar isso no seu armazenamento (pasta de downloads por padrão) ou enviá-lo para outros aplicativos?",
"saveOnlyDescription": "Você deseja salvar isto no seu armazenamento (pasta de downloads por padrão)?",
"back": "Voltar",
"createAccount": "Criar uma conta",
"passwordStrength": "Força da senha: {passwordStrengthValue}",
@@ -344,7 +349,7 @@
"deleteCodeAuthMessage": "Autenticar para excluir o código",
"showQRAuthMessage": "Autenticar para mostrar o QR code",
"confirmAccountDeleteTitle": "Confirmar exclusão de conta",
"confirmAccountDeleteMessage": "Esta conta está vinculada a outros aplicativos ente, se você usa algum.\n\nSeus dados enviados, em todos os aplicativos ente, serão agendados para exclusão, e sua conta será excluída permanentemente.",
"confirmAccountDeleteMessage": "Esta conta está vinculada a outros aplicativos Ente, se você usa algum.\n\nSeus dados enviados, em todos os aplicativos Ente, serão agendados para exclusão, e sua conta será excluída permanentemente.",
"androidBiometricHint": "Verificar identidade",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -404,5 +409,16 @@
"signOutOtherDevices": "Terminar sessão em outros dispositivos",
"doNotSignOut": "Não encerrar sessão",
"hearUsWhereTitle": "Como você ouviu sobre o Ente? (opcional)",
"hearUsExplanation": "Não rastreamos instalações do aplicativo. Seria útil se você nos contasse onde nos encontrou!"
"hearUsExplanation": "Não rastreamos instalações do aplicativo. Seria útil se você nos contasse onde nos encontrou!",
"recoveryKeySaved": "Chave de recuperação salva na pasta Downloads!",
"waitingForBrowserRequest": "Aguardando solicitação do navegador...",
"waitingForVerification": "Esperando por verificação...",
"passkey": "Chave de acesso",
"developerSettingsWarning": "Tem certeza de que deseja modificar as configurações de Desenvolvedor?",
"developerSettings": "Configurações de desenvolvedor",
"serverEndpoint": "Endpoint do servidor",
"invalidEndpoint": "Endpoint inválido",
"invalidEndpointMessage": "Desculpe, o endpoint que você inseriu é inválido. Por favor, insira um endpoint válido e tente novamente.",
"endpointUpdatedMessage": "Endpoint atualizado com sucesso",
"customEndpoint": "Conectado a {endpoint}"
}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Эмитент",
"codeSecretKeyHint": "Секретный ключ",
"codeAccountHint": "Аккаунт (you@domain.com)",
"accountKeyType": "Тип ключа",
"sessionExpired": "Сеанс истек",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,12 @@
"data": "Данные",
"importCodes": "Импортировать коды",
"importTypePlainText": "Обычный текст",
"importTypeEnteEncrypted": "ente Зашифрованный экспорт",
"passwordForDecryptingExport": "Пароль для расшифровки экспорта",
"passwordEmptyError": "Пароль не может быть пустым",
"importFromApp": "Импорт кодов из {appName}",
"importGoogleAuthGuide": "Экспортируйте учетные записи из Google Authenticator в QR-код, используя опцию «Перенести учетные записи». Затем с помощью другого устройства отсканируйте QR-код.\n\nСовет: Чтобы сфотографировать QR-код, можно воспользоваться веб-камерой ноутбука.",
"importSelectJsonFile": "Выбрать JSON-файл",
"importSelectAppExport": "Выбрать файл экспорта {appName}",
"importEnteEncGuide": "Выберите зашифрованный JSON-файл, экспортированный из ente",
"importRaivoGuide": "Используйте опцию «Export OTPs to Zip archive» в настройках Raivo.\n\nРаспакуйте zip-архив и импортируйте JSON-файл.",
"importBitwardenGuide": "Используйте опцию \"Экспортировать хранилище\" в Bitwarden Tools и импортируйте незашифрованный JSON файл.",
"importAegisGuide": "Используйте опцию «Экспортировать хранилище» в настройках Aegis.\n\nЕсли ваше хранилище зашифровано, то для его расшифровки потребуется ввести пароль хранилища.",
@@ -113,22 +110,18 @@
"copied": "Скопировано",
"pleaseTryAgain": "Пожалуйста, попробуйте ещё раз",
"existingUser": "Существующий пользователь",
"newUser": "Новый аккаунт",
"delete": "Удалить",
"enterYourPasswordHint": "Введите пароль",
"forgotPassword": "Забыл пароль",
"oops": "Ой",
"suggestFeatures": "Предложить идеи",
"faq": "FAQ",
"faq_q_1": "Насколько безопасен ente Auth?",
"faq_a_1": "Все коды, которые вы резервируете с помощью ente, хранятся в зашифрованном виде. Это означает, что только вы можете получить доступ к своим кодам. Наши приложения имеют открытый исходный код, а наша криптография прошла внешний аудит.",
"faq_q_2": "Могу ли я получить доступ к моим кодам на компьютере?",
"faq_a_2": "Вы можете получить доступ к своим кодам на сайте @ auth.ente.io.",
"faq_q_3": "Как я могу удалить коды?",
"faq_a_3": "Вы можете удалить код, проведя пальцем влево по этому элементу.",
"faq_q_4": "Как я могу поддержать этот проект?",
"faq_a_4": "Вы можете поддержать развитие этого проекта, подписавшись на наше приложение Photos @ ente.io.",
"faq_q_5": "Как мне включить блокировку FaceID в ente Auth?",
"faq_a_5": "Вы можете включить блокировку FaceID в Настройки → Безопасность → Экран блокировки.",
"somethingWentWrongMessage": "Что-то пошло не так. Попробуйте еще раз",
"leaveFamily": "Покинуть семью",
@@ -342,7 +335,6 @@
"deleteCodeAuthMessage": "Аутентификация для удаления кода",
"showQRAuthMessage": "Аутентификация для отображения QR-кода",
"confirmAccountDeleteTitle": "Подтвердить удаление аккаунта",
"confirmAccountDeleteMessage": "Эта учетная запись связана с другими приложениями ente, если вы ими пользуетесь.\n\nЗагруженные вами данные во всех приложениях ente будут запланированы к удалению, а ваша учетная запись будет удалена без возможности восстановления.",
"androidBiometricHint": "Подтвердите личность",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."

View File

@@ -16,7 +16,6 @@
"codeIssuerHint": "Utfärdare",
"codeSecretKeyHint": "Secret Key",
"codeAccountHint": "Konto (du@domän.com)",
"accountKeyType": "Typ av nyckel",
"sessionExpired": "Sessionen har gått ut",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -61,6 +60,7 @@
"incorrectPasswordTitle": "Felaktigt lösenord",
"welcomeBack": "Välkommen tillbaka!",
"changePassword": "Ändra lösenord",
"importCodes": "Importera koder",
"cancel": "Avbryt",
"yes": "Ja",
"no": "Nej",
@@ -73,7 +73,6 @@
"oops": "Hoppsan",
"suggestFeatures": "Föreslå funktionalitet",
"faq": "FAQ",
"faq_q_1": "Hur säkert är ente Auth?",
"scan": "Skanna",
"twoFactorAuthTitle": "Tvåfaktorsautentisering",
"enterRecoveryKeyHint": "Ange din återställningsnyckel",
@@ -105,6 +104,7 @@
"recoveryKeyCopiedToClipboard": "Återställningsnyckel kopierad till urklipp",
"recoveryKeyOnForgotPassword": "Om du glömmer ditt lösenord är det enda sättet du kan återställa dina data med denna nyckel.",
"saveKey": "Spara nyckel",
"save": "Spara",
"back": "Tillbaka",
"createAccount": "Skapa konto",
"password": "Lösenord",
@@ -131,6 +131,16 @@
"about": "Om",
"terms": "Villkor",
"warning": "Varning",
"importSuccessDesc": "Du har importerat {count} koder!",
"@importSuccessDesc": {
"placeholders": {
"count": {
"description": "The number of codes imported",
"type": "int",
"example": "1"
}
}
},
"pendingSyncs": "Varning",
"activeSessions": "Aktiva sessioner",
"enterPassword": "Ange lösenord",
@@ -143,5 +153,7 @@
"iOSOkButton": "OK",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
}
},
"noInternetConnection": "Ingen internetanslutning",
"pleaseCheckYourInternetConnectionAndTryAgain": "Kontrollera din internetanslutning och försök igen."
}

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "ኣዋጂ",
"codeSecretKeyHint": "ምስጢራዊ መፍትሕ",
"codeAccountHint": "ሕሳብ (you@domain.com)",
"accountKeyType": "ዓይነት መፍትሕ",
"sessionExpired": "ክፍለ ግዜኡ ኣኺሉ።",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,12 @@
"data": "ሓበሬታ",
"importCodes": "ኮድ ኣእቱ",
"importTypePlainText": "Plain text",
"importTypeEnteEncrypted": "ente Encrypted export",
"passwordForDecryptingExport": "Password to decrypt export",
"passwordEmptyError": "Password can not be empty",
"importFromApp": "Import codes from {appName}",
"importGoogleAuthGuide": "Export your accounts from Google Authenticator to a QR code using the \"Transfer Accounts\" option. Then using another device, scan the QR code.\n\nTip: You can use your laptop's webcam to take a picture of the QR code.",
"importSelectJsonFile": "Select JSON file",
"importSelectAppExport": "Select {appName} export file",
"importEnteEncGuide": "Select the encrypted JSON file exported from ente",
"importRaivoGuide": "Use the \"Export OTPs to Zip archive\" option in Raivo's Settings.\n\nExtract the zip file and import the JSON file.",
"importBitwardenGuide": "Use the \"Export vault\" option within Bitwarden Tools and import the unencrypted JSON file.",
"importAegisGuide": "Use the \"Export the vault\" option in Aegis's Settings.\n\nIf your vault is encrypted, you will need to enter vault password to decrypt the vault.",
@@ -114,22 +111,18 @@
"copied": "Copied",
"pleaseTryAgain": "Please try again",
"existingUser": "Existing User",
"newUser": "New to ente",
"delete": "Delete",
"enterYourPasswordHint": "Enter your password",
"forgotPassword": "Forgot password",
"oops": "ዉዉኡ",
"suggestFeatures": "Suggest features",
"faq": "FAQ",
"faq_q_1": "How secure is ente Auth?",
"faq_a_1": "All codes you backup via ente is stored end-to-end encrypted. This means only you can access your codes. Our apps are open source and our cryptography has been externally audited.",
"faq_q_2": "Can I access my codes on desktop?",
"faq_a_2": "You can access your codes on the web @ auth.ente.io.",
"faq_q_3": "How can I delete codes?",
"faq_a_3": "You can delete a code by swiping left on that item.",
"faq_q_4": "How can I support this project?",
"faq_a_4": "You can support the development of this project by subscribing to our Photos app @ ente.io.",
"faq_q_5": "How can I enable FaceID lock in ente Auth",
"faq_a_5": "You can enable FaceID lock under Settings → Security → Lockscreen.",
"somethingWentWrongMessage": "Something went wrong, please try again",
"leaveFamily": "Leave family",
@@ -343,7 +336,6 @@
"deleteCodeAuthMessage": "Authenticate to delete code",
"showQRAuthMessage": "Authenticate to show QR code",
"confirmAccountDeleteTitle": "Confirm account deletion",
"confirmAccountDeleteMessage": "This account is linked to other ente apps, if you use any.\n\nYour uploaded data, across all ente apps, will be scheduled for deletion, and your account will be permanently deleted.",
"androidBiometricHint": "Verify identity",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Yayınlayan",
"codeSecretKeyHint": "Gizli Anahtar",
"codeAccountHint": "Hesap (ornek@domain.com)",
"accountKeyType": "Anahtar türü",
"sessionExpired": "Oturum süresi doldu",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,12 @@
"data": "Veri",
"importCodes": "Kodu içe aktar",
"importTypePlainText": "Salt metin",
"importTypeEnteEncrypted": "ente Şifreli dışa aktarma",
"passwordForDecryptingExport": "Dışa aktarımın şifresini çözmek için parola",
"passwordEmptyError": "Şifre boş olamaz",
"importFromApp": "Kodları {appName} uygulamasından içe aktarın",
"importGoogleAuthGuide": "\"Hesapları Aktar\" seçeneğini kullanarak hesaplarınızı Google Authenticator'dan bir QR koduna aktarın. Ardından başka bir cihaz kullanarak QR kodunu tarayın.\n\nİpucu: QR kodunun fotoğrafını çekmek için dizüstü bilgisayarınızın kamerasını kullanabilirsiniz.",
"importSelectJsonFile": "JSON dosyasını seçin",
"importSelectAppExport": "{appName} dışarı aktarma dosyasını seçin",
"importEnteEncGuide": "Ente'den dışa aktarılan şifrelenmiş JSON dosyasını seçin",
"importRaivoGuide": "Raivo'nun ayarlarında \"OTP'leri Zip arşivine aktar\" seçeneğini kullanın.\n\nZip dosyasını çıkarın ve JSON dosyasını içe aktarın.",
"importBitwardenGuide": "Bitwarden Tools içindeki \"Kasayı dışa aktar\" seçeneğini kullanın ve şifrelenmemiş JSON dosyasını içe aktarın.",
"importAegisGuide": "Aegis'in Ayarlarında \"Kasayı dışa aktar\" seçeneğini kullanın.\n\nKasanız şifrelenmişse, kasanın şifresini çözmek için kasa parolasını girmeniz gerekecektir.",
@@ -115,22 +112,18 @@
"copied": "Kopyalandı",
"pleaseTryAgain": "Lütfen tekrar deneyin",
"existingUser": "Mevcut kullanıcı",
"newUser": "Yeni ente kullanıcısı",
"delete": "Sil",
"enterYourPasswordHint": "Parolanızı girin",
"forgotPassword": "Şifremi unuttum",
"oops": "Hay aksi",
"suggestFeatures": "Özellik önerin",
"faq": "SSS",
"faq_q_1": "Ente Auth ne kadar güvenli?",
"faq_a_1": "Ente aracılığıyla yedeklediğiniz tüm kodlar uçtan uca şifrelenmiş olarak saklanır. Bu, kodlarınıza yalnızca sizin erişebileceğiniz anlamına gelir. Uygulamalarımız açık kaynaklıdır ve kriptografimiz harici olarak denetlenmiştir.",
"faq_q_2": "Kodlarıma masaüstünden erişebilir miyim?",
"faq_a_2": "Kodlarınıza internet üzerinden @ auth.ente.io adresinden erişebilirsiniz.",
"faq_q_3": "Kodları nasıl silebilirim?",
"faq_a_3": "Bir kodu, o öğenin üzerinde sola kaydırarak silebilirsiniz.",
"faq_q_4": "Bu projeye nasıl destek olabilirim?",
"faq_a_4": "Fotoğraflar uygulamamıza @ ente.io abone olarak bu projenin geliştirilmesine destek olabilirsiniz.",
"faq_q_5": "FaceID kilidini ente Auth'ta nasıl etkinleştirebilirim",
"faq_a_5": "FaceID kilidini Ayarlar → Güvenlik → Kilit Ekranı altında etkinleştirebilirsiniz.",
"somethingWentWrongMessage": "Bir şeyler ters gitti, lütfen tekrar deneyin",
"leaveFamily": "Aile planından ayrıl",
@@ -344,7 +337,6 @@
"deleteCodeAuthMessage": "Kodu silmek için doğrulama yapın",
"showQRAuthMessage": "QR kodunu göstermek için doğrulama yapın",
"confirmAccountDeleteTitle": "Hesap silme işlemini onayla",
"confirmAccountDeleteMessage": "Bu hesap, eğer kullanıyorsanız, diğer ente uygulamalarıyla bağlantılıdır.\n\nTüm ente uygulamalarında yüklediğiniz veriler silinmek üzere programlanacak ve hesabınız kalıcı olarak silinecektir.",
"androidBiometricHint": "Kimliği doğrula",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "Nhà phát hành",
"codeSecretKeyHint": "Khóa bí mật",
"codeAccountHint": "Tài khoản (bạn@miền.com)",
"accountKeyType": "Loại khóa",
"sessionExpired": "Phiên làm việc đã hết hạn",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,12 @@
"data": "Dữ liệu",
"importCodes": "Nhập mã",
"importTypePlainText": "Văn bản thuần",
"importTypeEnteEncrypted": "xuất ente đã mã hóa",
"passwordForDecryptingExport": "Mật khẩu để giải mã xuất",
"passwordEmptyError": "Mật khẩu không thể để trống",
"importFromApp": "Nhập mã từ {appName}",
"importGoogleAuthGuide": "Xuất dữ liệu tài khoản của bạn từ Google Authenticator sang mã QR bằng tùy chọn \"Chuyển tài khoản\". Sau đó dùng thiết bị khác quét mã QR.",
"importSelectJsonFile": "Chọn tệp JSON",
"importSelectAppExport": "Chọn {appName} tệp dữ liệu xuất",
"importEnteEncGuide": "Chọn tệp JSON được mã hóa đã xuất từ ente",
"importRaivoGuide": "Sử dụng tùy chọn \"Xuất OTP sang lưu trữ Zip\" trong cài đặt của Raivo.",
"importBitwardenGuide": "Sử dụng tùy chọn \"Xuất vault\" trong công cụ Bitwarden và nhập tệp JSON không được mã hóa.",
"importAegisGuide": "Nếu vault của bạn được mã hóa, bạn sẽ cần nhập mật khẩu vault để giải mã vault.",
@@ -114,22 +111,18 @@
"copied": "\u001dĐã sao chép",
"pleaseTryAgain": "Vui lòng thử lại",
"existingUser": "Người dùng hiện tại",
"newUser": "Mới tham gia ente",
"delete": "Xóa",
"enterYourPasswordHint": "Nhập mật khẩu của bạn",
"forgotPassword": "Quên mật khẩu",
"oops": "Rất tiếc",
"suggestFeatures": "Tính năng đề nghị",
"faq": "Câu hỏi thường gặp",
"faq_q_1": "Mức độ an toàn của ente Auth như thế nào?",
"faq_a_1": "Tất cả các mã bạn sao lưu qua ente đều được lưu trữ dưới dạng mã hóa đầu cuối. Điều này có nghĩa là chỉ bạn mới có thể truy cập mã của mình. Ứng dụng của chúng tôi là nguồn mở và mật mã của chúng tôi đã được kiểm toán độc lập.",
"faq_q_2": "Tôi có thể truy cập mã của mình trên máy tính không?",
"faq_a_2": "Bạn có thể truy cập mã của mình trên web @ auth.ente.io.",
"faq_q_3": "Làm cách nào để xóa mã?",
"faq_a_3": "Bạn có thể xóa mã bằng cách vuốt sang trái vào mục đó.",
"faq_q_4": "Tôi có thể hỗ trợ dự án này như thế nào?",
"faq_a_4": "Bạn có thể hỗ trợ sự phát triển của dự án này bằng cách đăng ký ứng dụng Ảnh @ ente.io của chúng tôi.",
"faq_q_5": "Tôi có thể bật khóa FaceID trong ente Auth như thế nào",
"faq_a_5": "Bạn có thể bật khóa FaceID trong Cài đặt → Bảo mật → Màn hình khóa.",
"somethingWentWrongMessage": "Phát hiện có lỗi, xin thử lại",
"leaveFamily": "Rời khỏi gia đình",
@@ -343,7 +336,6 @@
"deleteCodeAuthMessage": "Xác minh để xóa mã",
"showQRAuthMessage": "Xác minh để hiển thị mã QR",
"confirmAccountDeleteTitle": "Xác nhận xóa tài khoản",
"confirmAccountDeleteMessage": "Tài khoản này được liên kết với các ứng dụng ente khác, nếu bạn sử dụng bất kỳ ứng dụng nào.\n\nDữ liệu đã tải lên của bạn, trên tất cả các ứng dụng, sẽ bị lên lịch xóa và tài khoản của bạn sẽ bị xóa vĩnh viễn.",
"androidBiometricHint": "Xác định danh tính",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."

View File

@@ -20,7 +20,6 @@
"codeIssuerHint": "发行人",
"codeSecretKeyHint": "私钥",
"codeAccountHint": "账户 (you@domain.com)",
"accountKeyType": "密钥类型",
"sessionExpired": "会话已过期",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -78,14 +77,14 @@
"data": "数据",
"importCodes": "导入代码",
"importTypePlainText": "纯文本",
"importTypeEnteEncrypted": "ente 加密导出",
"importTypeEnteEncrypted": "Ente 加密导出",
"passwordForDecryptingExport": "用来解密导出的密码",
"passwordEmptyError": "密码不能为空",
"importFromApp": "从 {appName} 导入代码",
"importGoogleAuthGuide": "使用“转移帐户”选项将您的帐户从 Google 身份验证器导出到二维码。然后使用另一台设备扫描二维码。\n\n提示您可以使用笔记本电脑的网络摄像头拍摄二维码的照片。",
"importSelectJsonFile": "选择 JSON 文件",
"importSelectAppExport": "选择 {appName} 的导出文件",
"importEnteEncGuide": "选择从ente导出的加密JSON文件",
"importEnteEncGuide": "选择从 Ente 导出的 JSON 加密文件",
"importRaivoGuide": "使用 Raivo 设置中的“将 OTP 导出到 Zip 存档”选项。\n\n解压 zip 文件并导入 JSON 文件。",
"importBitwardenGuide": "使用 Bitwarden 工具中的“导出保管库”选项并导入未加密的 JSON 文件。",
"importAegisGuide": "在Aegis的设置中使用\"导出密码库\"选项。\n\n如果您的密码库已加密您需要输入密码才能解密密码库。",
@@ -115,22 +114,22 @@
"copied": "已复制",
"pleaseTryAgain": "请重试",
"existingUser": "已注册用户",
"newUser": "刚来到ente",
"newUser": "初来 Ente",
"delete": "删除",
"enterYourPasswordHint": "输入您的密码",
"forgotPassword": "忘记密码",
"oops": "哎呀",
"suggestFeatures": "建议新功能",
"faq": "常见问题",
"faq_q_1": "ente Auth的安全程度如何?",
"faq_a_1": "您通过 ente 备份的所有代码均以端到端加密方式存储。这意味着只有您可以访问您的代码。 我们的应用程序是开源的我们的加密技术已经过外部审计。",
"faq_q_1": "Auth 的安全如何?",
"faq_a_1": "您通过 Auth 备份的所有代码均以端到端加密方式存储。这意味着只有您可以访问您的代码。我们的应用程序是开源的并且我们的加密技术已经过外部审计。",
"faq_q_2": "我可以在桌面上访问我的代码吗?",
"faq_a_2": "您可以在 web @auth.ente.io 上访问您的代码。",
"faq_q_3": "我如何删除代码?",
"faq_a_3": "您可以通过向左滑动该项目来删除该代码。",
"faq_q_4": "我该如何支持该项目?",
"faq_a_4": "您可以通过订阅我们的照片应用程序@ente.io来支持该项目的开发。",
"faq_q_5": "如何在 ente Auth 中启用 FaceID 锁",
"faq_q_5": "如何启用 Auth 中的面容 ID 锁",
"faq_a_5": "您可以在“设置”→“安全”→“锁屏”下启用 FaceID 锁定。",
"somethingWentWrongMessage": "出了点问题,请重试",
"leaveFamily": "离开家庭",
@@ -143,8 +142,9 @@
"verifyEmail": "验证电子邮件",
"enterCodeHint": "从你的身份验证器应用中\n输入6位数字代码",
"lostDeviceTitle": "丢失了设备吗?",
"twoFactorAuthTitle": "双因素认证",
"twoFactorAuthTitle": "双认证",
"passkeyAuthTitle": "通行密钥认证",
"verifyPasskey": "验证通行密钥",
"recoverAccount": "恢复账户",
"enterRecoveryKeyHint": "输入您的恢复密钥",
"recover": "恢复",
@@ -198,6 +198,10 @@
"recoveryKeySaveDescription": "我们不会存储此密钥请将此24个单词密钥保存在一个安全的地方。",
"doThisLater": "稍后再做",
"saveKey": "保存密钥",
"save": "保存",
"send": "发送",
"saveOrSendDescription": "您想将其保存到您的内置存储(默认情况下为“下载”文件夹)还是将其发送到其他应用程序?",
"saveOnlyDescription": "您想将其保存到您的内置存储中(默认情况下为“下载”文件夹)吗?",
"back": "返回",
"createAccount": "创建账户",
"passwordStrength": "密码强度: {passwordStrengthValue}",
@@ -320,7 +324,7 @@
"emailChangedTo": "电子邮件已更改为 {newEmail}",
"authenticationFailedPleaseTryAgain": "认证失败,请重试",
"authenticationSuccessful": "认证成功!",
"twofactorAuthenticationSuccessfullyReset": "双因素身份验证已成功重置",
"twofactorAuthenticationSuccessfullyReset": "双重认证已成功重置",
"incorrectRecoveryKey": "恢复密钥不正确",
"theRecoveryKeyYouEnteredIsIncorrect": "您输入的恢复密钥不正确",
"enterPassword": "输入密码",
@@ -345,7 +349,7 @@
"deleteCodeAuthMessage": "删除代码需要身份验证",
"showQRAuthMessage": "显示QR码需要身份验证",
"confirmAccountDeleteTitle": "确认删除账户",
"confirmAccountDeleteMessage": "该账户已链接到其他ente旗下的应用程序如果您使用任何相关的应用程序。\n\n在所有ente旗下应用程序中上传的数据将被安排删除,并且您的账户将被永久删除。",
"confirmAccountDeleteMessage": "如果您使用其他 Ente 应用程序,该账户将会与其他应用程序链接。\n\n在所有 Ente 应用程序中,您上传的数据将被安排用于删除,并且您的账户将被永久删除。",
"androidBiometricHint": "验证身份",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -406,7 +410,15 @@
"doNotSignOut": "不要退登",
"hearUsWhereTitle": "您是如何知道Ente的 (可选的)",
"hearUsExplanation": "我们不跟踪应用程序安装情况。如果您告诉我们您是在哪里找到我们的,将会有所帮助!",
"recoveryKeySaved": "恢复密钥已保存在下载文件夹中!",
"waitingForBrowserRequest": "正在等待浏览器请求...",
"launchPasskeyUrlAgain": "再次启动 通行密钥 URL",
"passkey": "通行密钥"
"waitingForVerification": "等待验证...",
"passkey": "通行密钥",
"developerSettingsWarning": "您确定要修改开发者设置吗?",
"developerSettings": "开发者设置",
"serverEndpoint": "服务器端点",
"invalidEndpoint": "端点无效",
"invalidEndpointMessage": "抱歉,您输入的端点无效。请输入有效的端点,然后重试。",
"endpointUpdatedMessage": "端点更新成功",
"customEndpoint": "已连接至 {endpoint}"
}

Some files were not shown because too many files have changed in this diff Show More