Commit graph

67 commits

Author SHA1 Message Date
ivk
1eef49668d Make sure the offline storage version is consistent with migrations
There was a missing check that migrations bring the version to the
latest one.

In addition, we were checking the version against non-populated
metadata which worked accidentally on the first run because
`undefined < 1 === false`.
2025-08-29 10:59:04 +02:00
ivk
13b4dba07a [build] Revert node make default stage to local 2025-08-29 10:26:11 +02:00
bed
61fe0304ba
Setup release pipline for crypto-primitives.wasm
In order to make use of the crypto-primitives crate from the web client
we now generate wasm file using wasm-pack and included these steps into
the dev and webapp build process.

In order to test the behavior we also made use of the exported primitives from the Ed255519Facade

Also adds test for the Ed25519 exported functions.

tuta#2102, tuta#2099, tuta#2098

Co-authored-by: hec <hec@tutao.de>
Co-authored-by: bedhub <bedhub@users.noreply.github.com>
2025-08-07 09:51:21 +02:00
hrb-hub
dad5a892c2 Drop existing offline search index to fix broken state
See #9295

Close #9314

Co-authored-by: ivk <ivk@tutao.de>
2025-07-18 12:54:20 +02:00
ivk
dd68f39800 [desktop] Notification fixes
Fixed notification click on Windows after the notification is put into
Action Center. We used @indutny/simple-windows-notifications to
re-implement notifications on Windows.

Fixed dismissing mail & alarm notifications on window focus. Grouped
notifications now use actual user ids.

Fixed awaiting config in createComponents.

Close #6946

Co-authored-by: paw <paw-hub@users.noreply.github.com>
2025-07-18 11:35:51 +02:00
yoy
de6848b898
feat(signup): Add Proof-of-work captcha
- Introduce Proof-of-Work Captcha to prevent mass signups.
- The PoW captcha executes when the user begins entering information into the sign-up form.
- The progressDialog will appear if the PoW captcha is not solved when the user clicks the "Next" button.
- Update SystemModel to v134

Co-authored-by: nig <nig@tutao.de>
Co-authored-by: toj<toj@tutao.de>
2025-07-10 13:27:23 +02:00
ivk
fba2b284ec [desktop] Use @signalapp/sqlcipher fork for db
Co-authored-by: paw <paw-hub@users.noreply.github.com>
2025-06-04 10:37:52 +02:00
Kinan
edbf281b88
switch to typeIds and attrIds, add SystemMV126, TutanotaMV86, BaseMV2
Refactor our instance deserialization/serialization pipeline, both on
TypeScript and on Rust [sdk] to use typeId and attributeIds instead of
typeNames and attributeNames. We furthermore ignore cardinalities
on associations until the instance layer and always
store associations as arrays. This commit introduces **eventual
consistency** on the client, i.e. we are from now on always storing data
in the newest schema format (activeApplicationVersionsForWritingSum)
which ensures that all data is already available on the client after
updating the client to a newer version. This removes the need for
offline migrations on the client and also removes backward migrations
on the server. Furthermore, the server model types are now available
on the client, retrievable through the ApplicationTypesFacade. This is
our first step towards FastSync.

Co-authored-by: nig <nig@tutao.de>
Co-authored-by: abp <abp@tutao.de>
Co-authored-by: jomapp <17314077+jomapp@users.noreply.github.com>
Co-authored-by: map <mpfau@users.noreply.github.com>
Co-authored-by: sug <sug@tutao.de>
Co-authored-by: Kinan <104761667+kibibytium@users.noreply.github.com>
2025-04-28 12:44:35 +02:00
Kinan
29a75b6517
[build] fix default ports not parsed
URL object from nodejs does not include
the port if is the the schema's default one.

Co-authored-by: sug <sug@tutao.de>
2025-02-26 15:08:46 +01:00
vaf
610415dd5c
update submodule before compiling liboqs and make clean build work properly 2025-02-06 09:10:20 +01:00
hrb-hub
02a95c9d66 Fix WebauthnRpId for local builds with hostname
Co-authored-by: ivk <ivk@tutao.de>
2025-01-27 12:04:17 +01:00
ivk
7f15a755e3
Cache wasm2js output. Switch dist builds to esm. 2025-01-13 10:05:18 +01:00
ivk
2ed48135a8
Replace esbuild with Rolldown
- switch desktop build to esm
 - convert mithril to esm
 - run worker as esm module
 - fix dependency from DesktopAlarmScheduler to calendar app
 - switch napi-rs cli to 3.0
 - fix mimimi imports
 - remove hacky method on generated dispatcher
 - refactor native rollup plugins

 Co-authored-by: bir <bir@tutao.de>
2025-01-13 10:05:18 +01:00
nig
cf42135be8 add mail import
eml and mbox file import in desktop client
pause/resume functionality
chunking for mails and attachments to reduce server requests
testing for imap import source

wisely designed in the alps

Co-authored-by: map <mpfau@users.noreply.github.com>
Co-authored-by: jhm <17314077+jomapp@users.noreply.github.com>
Co-authored-by: Kinan <104761667+kibibytium@users.noreply.github.com>
Co-authored-by: kitsugo <hayashi.jiro@kitsugo.com>
Co-authored-by: nif <nif@tutao.de>
Co-authored-by: sug <sug@tutao.de>
2025-01-02 16:52:08 +01:00
wrd
f99bd69ff0 Move indexer and mail search to mail-app 2024-09-23 16:49:37 +02:00
wrd
f04bf16bd3 Clean database for offlineStorage has implementation per app 2024-09-23 16:49:37 +02:00
wec
396004580b Change desktop icon for dev builds 2024-08-06 16:00:04 +02:00
ivk
a42907e55a [build] Add type checking to buildSrc
It isn't invoked automatically anywhere but the editors should pick it
up and it can also be run manually.

It also fixes few little issues, e.g. getPrebuiltNativeModuleForWindows
was getting called with the right arguments.
2024-08-06 16:00:04 +02:00
mup
e5a284ed72 Add separated ESBuild for calendar build
This commit adds an argument to ESBuild allowing to choose between
mail app or calendar app
2024-07-29 14:44:20 +02:00
and
418b9bc3f9 [Calendar] Clean project code
Co-authored-by: Murilo Pereira <34790144+murilopereirame@users.noreply.github.com>

This commit fixes the Build scripts and missing imports
from rebase. Fixes tests after apps split, and This commit fixes the
Android project changing the gradle task used to build the Android app.
Also fixes some import errors caused by the rebase.
2024-07-26 16:43:00 +02:00
mup
2b61600397 [Calendar] Fix rollup and imports 2024-07-26 16:43:00 +02:00
wrd
d279d0b775 open calendar view on startup
Co-authored-by: rih <rih@tutao.de>
2024-07-26 16:42:15 +02:00
wrd
d6c9d5161e Make new app file for calendar, separate build for android app
Co-authored-by: @rih-tutao, @andrehgdias
2024-07-26 16:42:15 +02:00
wrd
8ab3b14edd Move files to new folder structure
Co-authored-by: @rih-tutao
2024-07-26 16:42:13 +02:00
ivk
acbc430161
[build] Improve tuta-wasm-loader API, allow not generating the fallback 2024-07-02 16:10:27 +02:00
mup
40846e4db9 Handle wasm loading from Node process
This commit adds the resolving of wasm files also available to calls
from the Node part, reading the file and returning the exports object.
2024-05-28 13:32:27 +00:00
ivk
ad83f751b2 Extended notification preview, change credential encryption
Implemented extended notifications which include the sender.

Re-implemented credential encryption and storage, moved credential
data to the native storage, changed credential encryption on mobile to
always be device lock + implement app lock independently of encryption.

Re-implemented SSE on desktop in a more modular way.

Re-organized iOS app to share the code between the main app code and
app extensions.

Close #6608

Co-authored-by: wec43 <wec@tutao.de>
2024-05-22 14:10:08 +00:00
mup
4dd743dfa0 Fix Tests for Fallback
Adapt the tests to work with the new format of loading the fallback and
the wasm files. This commit also fixes the ESBuild function to correctly
resolve the fallback and generate it.

Remove the hardcoded make command and add the option to use a provided
command instead of make. Also adds the possibility to provide env vars
and a working dir for Wasm generation.
2024-05-22 08:47:10 +00:00
mup
74ebf6834d Add Wasm fallback generation to build process
This commit adds the generation of WASM files and their respective
fallback to the build process.
2024-05-22 08:47:10 +00:00
mup
1733b27684 Add JavaScript fallback for Liboqs & Argon2
This commit adds the generation of a JavaScript transpile for the Liboqs
and Argon2 WebAssembly files. This is done through wasm2js that's
builtin on emcc.

WASM/JS fallbacks use the same interface and reduce the extra type
casting once initialized.

Co-authored-by: wec43 <wec@tutao.de>
Co-authored-by: paw <paw-hub@users.noreply.github.com>
2024-05-22 08:47:10 +00:00
jop
476d19e0f9 generate invoices on the client
includes sys model v93 for the InvoiceDataService that returns
all data needed to use the PdfInvoiceGenerator to generate a
PDF/A compliant Pdf invoice.

The generator uses the classes in src/api/worker/pdf to write create
the PDF, which contains one high-level imperative PdfDocument that and
defines the document contents and the low level PdfWriter that actually
writes the bytes to a buffer.

tutadb issue 1458
2024-01-22 12:17:29 +01:00
nig
212ce6720f remove keytar 2024-01-18 14:23:01 +01:00
vaf
15713f1047 add tuta-crypt hybrid post-quantum encryption support
tutadb#1639
2023-12-21 10:41:51 +01:00
ivk
3bf53aa5c2 [ci] Use cached better-sqlite3 in github actions 2023-12-01 12:41:55 +01:00
tutao
d79c542eda Fix non-universal libraries being included when building universal 2023-11-27 13:37:36 +00:00
jat
38a70be346 Fix desktop script building both x86_64 and arm64 at the same time
Added a new flag `-a` which allows the developer to set the architecture
of the built client. It causes an error when an unsupported combination
of platform & architecture is used. By default, it uses the architecture
the installed node binary uses.
2023-11-27 13:37:36 +00:00
nig
4e6cf85640 [build] cleanup build for desktop client
re-create the artifacts folder before starting to use it
2023-10-19 17:14:11 +02:00
nig
e60e78c9c4 move dist build to just ./build 2023-10-18 12:12:10 +02:00
nig
09cbcdb4e6 enable credentials migration from the old to the new domain
two ways this can happen:
* starting on old domain
* starting on new domain

in each case, the starting tab opens the other domain in a new
tab to then use window.postMessage to transfer the credentials.
2023-10-18 12:12:10 +02:00
nig
b710ce8488 use app.tuta.com for the mail app domain
leaves references to the https://tutanota.com domain alone
2023-10-18 12:12:10 +02:00
ivk
58721df61a Introduce domain configs to support 2FA across domains
#5638
2023-10-18 10:16:11 +02:00
nig
fe210ff0a0 reorder some files to make sqlworker.ts loadable in dev and prod build
#5112
2023-09-22 12:09:18 +02:00
nig
e57b9c7ff2 threaded sqlcipher
#5112
2023-09-22 12:09:18 +02:00
vaf
49449c426d Support Argon2id
Allow deriving keys with it if the server requests it, but do not use it
by default to create new keys.

tutadb#1559

Co-authored-by: @vitoreiji, @paw-hub, @charlag
2023-08-18 16:29:22 +02:00
nig
978d9780c2 fix linter errors for missing node: protocol
close #4367
2023-05-05 11:29:09 +02:00
ivk
a8564c77da [build] Make building packages faster
Building packages is a part of most build invocations. Our old approach
during dev builds was to

1. Invoke npm once to run build-packages
2. Invoke npm per each package to run tsc.

Unfortunately, npm is very slow. Additionally, the old approach was
leading to tsc re-checking some packages multiple times because of
dependencies between them. This would only worsen with time.

In our new approach we

1. invoke tsc only once
2. try to avoid invoking npm as much as possible

Unfortunately there is still one case where we invoke npx because we
can't be sure that the location of node_modules/.bin is stable as we
are sometimes used as a package. Without this we could reduce the time
even further.
2023-03-09 10:59:05 +00:00
nig
7cba629cb6 [desktop] use a nonbroken electron-updater version on each platform
5.3.0 couldn't handle windows machines with a restricted powershell.
6.0.0 fixed that, but the alpha that's currently available does not
work on linux because it's opening the child process wrong.
2023-01-30 10:20:44 +01:00
ivk
50b23ebd1b Run prettier on the whole project 2022-12-27 16:08:23 +01:00
jom
4162c65761 Implement password generator
We manually merged the contents of branch `password-generator-thesis`
onto a new branch, because the typescript migration changes broke the
mergeability of the existing implementation

#327
2022-07-21 14:54:04 +02:00
jom
1660ebaab1 Adapt to gift cards model change 2022-06-13 13:34:56 +02:00