* fix: refactor to accommodate authentication, transaction and pagination together into ctx.state
* feat: allow passing response type to APIContext
* feat: preliminary work for initial review
* fix: use unknown for base types
* fix: api/attachments
* fix: api/documents
* fix: jsdoc comment for input
* fix: replace at() with index access for compatibility
* fix: validation err message
* fix: error handling
* fix: remove unnecessary extend
* GA integration settings
* trackingId -> measurementId
Hook up script
* Public page GA tracking
Correct layout of settings
* Remove multiple codepaths for loading GA measurementID, add missing db index
* Remove unneccessary changes, tsc
* test
* refactor: move files to subfolder
* refactor: schema for events.list
* refactor: update nullable fields in Event model
* fix: event actor not nullable
* fix: team not nullable
* feat: share url slug
* feat: add col urlId
* feat: allow updating urlId
* fix: typo
* fix: migrations
* fix: urlId model validation
* fix: input label
* fix: debounce slug request
* feat: link preview
* fix: send slug variant in response if available
* fix: temporary redirect to slug variant if available
* fix: move up the custom link field
* fix: process and display backend err
* fix: reset custom link state on popover close and remove isCopied
* fix: document link preview
* fix: set urlId when available
* fix: keep unique(urlId, teamId)
* fix: codeql
* fix: get rid of preview type
* fix: width not needed for block elem
* fix: migrations
* fix: array not required
* fix: use val
* fix: validation on shareId and test
* fix: allow clearing urlId
* fix: do not escape
* fix: unique error text
* fix: keep team
* fix: server side error handling
* fix: push only unknown 500 errors to sentry
* fix: use in-house onerror in favor of errorHandling middleware
* fix: split error template into dev and prod envs
* fix: check Error instance
* fix: error routes in test env
* fix: review comments
* Remove koa-onerror
Co-authored-by: Tom Moor <tom.moor@gmail.com>