This implements a huge change, where Fresh is removed as a framework and serving files, allowing more control over importing, bundling, and serving files and components.
The biggest challenge was to continue making sure that there weren't too many places to look into for import versions, and `PasswordlessPasskeyLogin.tsx` became a prototype in migrating a component to fully SSR, no need for frontend parsing (via Babel) or bundling (via a custom-script, downloading frontend dependencies from esm.sh). Still, there are too many components to migrate like that, and it's all working, so I likely won't even attempt it unless there's some bug, new feature, or security vulnerability to address that warrants a rewrite of those.
This also updates all dependencies (except `@libs/xml` because that still causes some breaking in DAV endpoints), including Deno!
All other advantages can be seen in the related issues, and the breaking change this (v4.0.0) introduces is related simply to `config.email.tlsMode` (which had a deprecation warning throughout v3), and because, while I tested many things exhaustively, it's not impossible something broke that I didn't see.
Closes#141Closes#132
* Declare `deno task execute-with-permissions` task specifying all the permissions actually needed and alias all other tasks through that
Also add `migrate-db` task to the Deno configuration and use that in the
`Makefile`, so that the Makefile is fully optional, and swap the meanings of
the `start` and `preview` tasks, so that `start` is for production while
`preview` is for development.
* Keep task names consistent (no breaking changes)
* Reorder tasks
* Remove empty lines
* Use correct task in Dockerfile
* Bring back start (no breaking changes)
* Update readme with preview command
* Update necessary permissions for running locally and in docker
---------
Co-authored-by: Bruno Bernardino <me@brunobernardino.com>
* Add directory download as zip feature
Implements the ability for users to download directories as zip files if enabled in config. Adds a new API route for directory zipping, updates UI components to show a download button for directories, and introduces related config and type changes. Also includes a new download icon.
* Windows path bugfix
* Include empty directories in zip archive
* Address feedback
- `isDirectoryDownloadsAllowed` -> `areDirectoryDownloadsAllowed`
- send `parentPath` & `name` to API instead of resolving `fullPath` on client
- call `ensureUserPathIsValidAndSecurelyAccessible` before zipping
- set config `allowDirectoryDownloads` default to `false`
- add `zip` to Dockerfile and replace in-house zip algorithm
- replace `download.svg` with heroicon's `arrow-down-tray`
- `replace` with glob -> `replaceAll` with string
* Cleanup apt-get command
* Remove unused zip archive and directory functions
This takes part of the work being done in #96 that was reverted but still useful.
Note Tailwind and Fresh weren't upgraded because there's no security vulnerability in either, and I have found the new versions to be worse in performance. Thos will likely stay at those fixed versions going forward.
This fixes a problem with the contacts app displaying an error on a clean install, due to the fact that `tsdav`'s address book listing didn't ask for a main address first, so Radicale wouldn't create the user directory.
It also upgrades `deno`'s version.
This improves error messages throughout. It might sometimes be too verbose, but that's better than being opaque (#74).
Also upgrades Deno's patch version.
Fixes#74
This adds Email as a multi-factor authentication method/option. It reuses the `VerificationCode` for the code generation and validation.
It also refactors the email templating for easier repurposing.
Finally, it has a small Deno version bump.
Closes#25
This refactors the data handlers into a more standard/understood model-like architecture, to prepare for a new, more robust config system.
It also fixes a problem with creating new Notes and uploading new Photos via the web interface (related to #58).
Finally, it speeds up docker builds by sending in less files, which aren't necessary or will be built anyway.
This is all in preparation to allow building #13 more robustly.
This implements the option to choose directories when uploading files via the Web UI (The most important part of #52).
When you choose a directory, its file and sub-directory structure will be maintained.
Tested with the latest Safari, Firefox, and Chrome.
Additionally, the Deno version was updated, which required some accessibility improvements as well.