### Internals
- Replace `lodash.*` packages with plain `lodash` & replace `lodash.*` imports with `lodash/` - should have no impact on bundle size and opens up for us to use all of lodash
- Update `viewer.me` to cherry-pick what we actually need on that query to avoid leaking extra context info
- Update `getIntegrations` to never include `.key`-property to avoid leaking
### Visual
- Update calendars so `primary` is displayed last
- Update connected calendars so they are in ascending order in which you connected them
* feat: setup translations
* feat: i18n setup
* Update pages/settings/profile.tsx
Co-authored-by: Alex Johansson <alexander@n1s.se>
* fix: abstract locale hook
* fix: set default locale if preferred locale is not supported
* Revert "fix: set default locale if preferred locale is not supported"
This reverts commit e2a3d81371.
* fix: set default locale if preferred locale is not supported
* fix: use 1 namespace and remove unnecessary logs
* fix: yarn.lock
* fix: linting errors
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex Johansson <alexander@n1s.se>
* chore: change calendso strings to cal.com
* rebase LICENSE
* rebase LICENSE
* strings that were missed
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
* add generic calendar icon for caldav
* module for symmetric encrypt/decrypt
* caldav integration
* use Radix dialog
* Move caldav components to /caldav
* remove duplicate cancel button, unused function
* ensure app can connect to caldav server before adding
* fix calendar clients can possibly return null
* fix: add caldav dialog does not close when submitted
* safely attempt all caldav operations
* clarify variable name, fix typo
* use common helper for stripping html
* remove usage of request lib until "completed"
* add types and usage comments to crypto lib
* add encryption key to example env file
* Added MS_GRAPH_CLIENT_* credentials to .env.example.
* Refactored the google integration into an abstraction layer for creating events and getting the user schedule from either Google or Office 365.
* FIX: when re-authorizing the Google Integration the refresh_token would no longer be set and the google integration would stop working.
* Updated Office 365 integration image