Commit graph

169 commits

Author SHA1 Message Date
Gaspard Wierzbinski 450058213d
Merge pull request #32 from versia-pub/refactor/media
Refactor and simplify the media pipeline
2025-02-01 11:02:28 +01:00
Jesse Wierzbinski 9ba6237f13
refactor(media): ♻️ Massively simplify media pipeline with Bun.S3 2025-01-29 17:21:40 +01:00
Jesse Wierzbinski f60663506a
fix(api): 🐛 Add missing attributes to /api/v1/instance 2025-01-29 16:05:04 +01:00
Jesse Wierzbinski ba431e2b11
refactor(database): ♻️ Make user avatar and header into a Media instead of plaintext 2025-01-28 19:07:55 +01:00
Jesse Wierzbinski bc961b70bb
refactor(database): 🔥 Simplify media management code 2025-01-28 18:06:33 +01:00
Jesse Wierzbinski cf1104d762
refactor(database): ♻️ Make emojis use a Media instead of just rawdogging the URI 2025-01-28 17:43:43 +01:00
Jesse Wierzbinski 9c30dacda7
refactor(database): ♻️ Use ContentFormat to store media data 2025-01-23 19:37:17 +01:00
Jesse Wierzbinski 2f61cd8f0a
refactor(database): 🚚 Rename "Attachment" to "Media" 2025-01-23 16:08:42 +01:00
Jesse Wierzbinski 80b874e5fb
refactor(api): Move media processing to background job 2025-01-06 19:21:57 +01:00
Jesse Wierzbinski dcdc8c7365
fix(api): 🐛 Fix user registration incorrectly counting remote users as local 2025-01-06 18:14:09 +01:00
Jesse Wierzbinski cde2836982
fix(api): 👽 Ignore what the Mastodon docs say, they're wrong 2025-01-02 04:13:12 +01:00
Jesse Wierzbinski ea0afdaf22
fix(api): 🐛 Make validation on push subscription more lax 2025-01-02 03:53:38 +01:00
Jesse Wierzbinski 7b3158c102
fix(api): 🚑 Fix incorrect builds
Everything under api/ should be a route, or it messes up bundling
2025-01-02 02:55:56 +01:00
Jesse Wierzbinski d096ab830c
feat(api): Add initial Push Notifications support 2025-01-02 01:29:33 +01:00
Jesse Wierzbinski 82da70bcac
refactor(api): ♻️ Group note/account fetching code in some routes 2024-12-30 21:30:10 +01:00
Jesse Wierzbinski 16f302c2dc
refactor(api): ♻️ Simplify route schema definitions 2024-12-30 20:26:56 +01:00
Jesse Wierzbinski 4926d6ff5d
refactor(api): 🔥 Remove all useless route metadata objects 2024-12-30 20:18:48 +01:00
Jesse Wierzbinski 09f30db83a
refactor(api): ♻️ Remove useless authorization checks 2024-12-30 19:38:41 +01:00
Jesse Wierzbinski dc12b269f5
refactor(api): ♻️ Improve authentication checker API 2024-12-30 19:18:31 +01:00
Jesse Wierzbinski 621dd7e9d9
refactor(api): ♻️ Upgrade zod-openapi to 0.18.3
Needed to add "as const" to all middleware handlers :)
2024-12-30 18:20:22 +01:00
Jesse Wierzbinski fbfd237f27
refactor(api): ♻️ Throw ApiError instead of returning error JSON 2024-12-30 18:00:23 +01:00
Jesse Wierzbinski a7b29d563e
fix(api): 🏷️ Use context.body for 204 responses 2024-12-30 16:18:28 +01:00
Jesse Wierzbinski 1509786090
chore: ⬆️ Upgrade dependencies 2024-12-18 20:42:40 +01:00
Jesse Wierzbinski 4fdb96930f
fix(api): 🐛 Fetch media content-type from data, instead of doing naive guesses 2024-12-16 23:57:21 +01:00
Jesse Wierzbinski 6f67881d96
feat(api): Add ability to set URL as avatar or banner 2024-12-16 15:46:11 +01:00
Jesse Wierzbinski e293bd280d
fix(api): 🐛 Fix duplicated mentions, general refactorings 2024-12-09 15:30:18 +01:00
Jesse Wierzbinski 0ae9cfe26c
refactor(federation): ♻️ More federation logic cleanup 2024-12-09 15:01:19 +01:00
Jesse Wierzbinski 83399ba5f1
refactor(database): ♻️ Simplify User and Note logic further 2024-12-09 13:50:46 +01:00
Jesse Wierzbinski a8541bdc44
refactor(database): ♻️ Simplify Note and User federation logic 2024-12-09 13:36:15 +01:00
Jesse Wierzbinski c94dd7c59d
fix(api): 🐛 Don't transform raw URLs as if they were attachments 2024-12-09 12:43:53 +01:00
Jesse Wierzbinski 8796f694bc
feat(api): 🚩 Add emoji shortcode size controls 2024-12-09 11:09:40 +01:00
Jesse Wierzbinski cfefd56a55
feat(api): 👽 Expose emoji limits in /api/v2/instance 2024-12-09 11:02:15 +01:00
Jesse Wierzbinski b14fa17e1a
feat(config): 🚩 Add emoji size/description size controls 2024-12-09 10:55:04 +01:00
Jesse Wierzbinski 5074ac788f
fix(api): 🐛 Force text content-type header on all empty responses
Fixes a problem where the content-type would default to application/json
2024-12-07 13:24:24 +01:00
Jesse Wierzbinski 06376cf58a
fix(api): 🐛 Correctly return empty body without content-type headers, when returning empty responses 2024-12-07 12:20:06 +01:00
Jesse Wierzbinski 2743528727
fix(api): 🐛 Fix emoji editing always making the emoji non-global 2024-12-07 11:12:17 +01:00
Jesse Wierzbinski e4768620e2
fix(api): 🐛 Fix account lookup address parsing (again) 2024-12-02 15:40:20 +01:00
Jesse Wierzbinski 91da99c934
feat(federation): Handle instances not existing 2024-12-02 15:07:05 +01:00
Jesse Wierzbinski deee65ad6d
refactor(api): ♻️ Refactor user lookup endpoint 2024-12-02 15:00:37 +01:00
Jesse Wierzbinski 46933c1bef
fix(api): Fix tests expecting null instead of undefined in Roles API 2024-11-28 11:24:56 +01:00
Jesse Wierzbinski 4e38749ccb
docs(api): 📝 Update Roles API docs and changelog 2024-11-26 15:41:08 +01:00
Jesse Wierzbinski 49c53de99e
feat(api): Overhaul Role API, add ability to edit roles and assign/unassign them from any user 2024-11-26 15:27:39 +01:00
Jesse Wierzbinski 1b98381242
feat: Split off queue workers into a separate worker process 2024-11-25 21:54:31 +01:00
Jesse Wierzbinski 0b3e74107e
refactor(federation): ♻️ Make user inbox use the delayed processing 2024-11-25 21:17:52 +01:00
Jesse Wierzbinski 79cf43d752
refactor(api): 🛂 Increase JWT cookie lifetime to 2 weeks 2024-11-25 20:25:42 +01:00
Jesse Wierzbinski eb466a0cc7
feat(federation): Implement Shared Inboxes 2024-11-25 17:05:53 +01:00
Jesse Wierzbinski 756f67c0f3
feat(federation): Implement Instance Messaging Extension 2024-11-25 16:54:46 +01:00
Jesse Wierzbinski 3ef361f521
fix(federation): 🐛 Correctly remove listeners after job processing finishes 2024-11-25 08:59:48 +01:00
Jesse Wierzbinski 3e19b11609
refactor: 🔊 Fix duplicate logs 2024-11-24 23:13:29 +01:00
Jesse Wierzbinski 50ebc12783
fix(federation): 🐛 Show error for inbox failures 2024-11-24 22:33:51 +01:00
Jesse Wierzbinski d527947182
fix(federation): 🐛 Correctly handle job failures in inboxes 2024-11-24 22:28:29 +01:00
Jesse Wierzbinski b320ddf3ae
refactor(federation): ♻️ Queue all incoming inbox processing events 2024-11-24 21:35:59 +01:00
Jesse Wierzbinski 340ed7b258
fix(federation): 🐛 Correctly handle non-lowercase acct queries in account lookups 2024-11-24 17:42:30 +01:00
Jesse Wierzbinski b55237cdc8
refactor(federation): ♻️ Allow ActivityPub bridge requests to omit all signature headers, including x-signed-by 2024-11-24 16:40:23 +01:00
Jesse Wierzbinski da369e604c
fix(api): 🐛 Fix lookup endpoints thinking local user is remote 2024-11-23 23:09:59 +01:00
Jesse Wierzbinski ace6921447
refactor(federation): ♻️ Correctly handle bridge requests and instance signatures in user inboxes 2024-11-23 23:02:18 +01:00
Jesse Wierzbinski fa0d48b88d
fix(api): 🐛 Use consistent user address matching patterns 2024-11-22 16:53:36 +01:00
Jesse Wierzbinski 569ba8bf2d
fix(api): 🔒 Correctly put all URIs in profiles through proxy 2024-11-22 15:06:46 +01:00
Jesse Wierzbinski 66c5c6e62d
fix(api): 🐛 Also validate other username characters in username changes 2024-11-21 09:31:37 +01:00
Jesse Wierzbinski 2fea17fdaa
fix(api): 🐛 Make uppercase usernames send errors during registration again 2024-11-21 09:26:03 +01:00
Jesse Wierzbinski a3b745358b
fix(api): 🐛 Automatically make all usernames lowercase 2024-11-21 09:23:25 +01:00
Jesse Wierzbinski 9682cd0f99
fix(api): 🔒 Correctly check for note ownership when editing 2024-11-19 17:26:14 +01:00
Jesse Wierzbinski 653cf712ea
fix(api): 🚑 Correctly check visibility in timelines 2024-11-19 17:07:11 +01:00
Jesse Wierzbinski c20e6eb3b8
feat(federation): Add registration info to nodeinfo 2024-11-19 15:29:21 +01:00
Jesse Wierzbinski 055ee417cb
feat(federation): Implement user statistics and node data in nodeinfo 2024-11-19 15:24:15 +01:00
Jesse Wierzbinski 1837a6feb4
fix(federation): 🐛 Make nodeinfo correctly return JSON instead of redirect 2024-11-19 14:41:12 +01:00
Jesse Wierzbinski bfa44e3f34
fix(api): 🐛 Fix for changed HTTP response code in Emoji API 2024-11-10 15:38:08 +01:00
Jesse Wierzbinski 06a8dd1c0a
refactor: 📝 Move documentation to a custom VitePress site 2024-11-10 15:24:34 +01:00
Jesse Wierzbinski ca31830fb3
revert(api): 🔥 Use Notification's schema declaration instead of declaring it again every time 2024-11-04 14:35:27 +01:00
Jesse Wierzbinski e732a3df03
refactor(database): ♻️ Move Notifications to their own ORM abstractions 2024-11-04 10:43:30 +01:00
Jesse Wierzbinski 845041e4db
refactor(database): ♻️ Move Token to its own ORM abstraction, optimize familiar_followers route 2024-11-03 17:45:21 +01:00
Jesse Wierzbinski c1dcdc78ae
refactor: ♻️ Always use explicit types in every function 2024-11-02 00:43:33 +01:00
Jesse Wierzbinski 7a73b8db91
refactor(database): 🚚 Only import ORM table data from @versia/kit 2024-11-01 21:05:54 +01:00
Jesse Wierzbinski 2f8b85a299
refactor(database): 🚚 Only import ORM abstractions from @versia/kit 2024-11-01 20:57:16 +01:00
Jesse Wierzbinski f26493140f
refactor(federation): ♻️ Move incoming federation handling to custom class 2024-11-01 20:42:32 +01:00
Jesse Wierzbinski 1298b3732e
fix(api): 🐛 Fix false values not correctly falling back to generic mime type 2024-10-31 23:19:19 +01:00
Jesse Wierzbinski d06301ed72
refactor(federation): ♻️ Refactor user inbox API to reduce complexity 2024-10-28 13:13:50 +01:00
Jesse Wierzbinski 0a31b7a8f6
feat(federation): Implement inbound federation of likes and like deletion 2024-10-24 19:08:28 +02:00
Jesse Wierzbinski df84572148
fix(api): 🐛 Fix missing FormData acceptance for registration route 2024-10-24 18:48:11 +02:00
Jesse Wierzbinski f494f76f82
feat(federation): Federate likes and unlikes 2024-10-24 17:31:39 +02:00
Jesse Wierzbinski 5a26bdf2f8
refactor(database): 🚚 Move Likes to our custom ORM 2024-10-24 17:20:00 +02:00
Jesse Wierzbinski e52e230ce3
refactor(database): 🚚 Move database ORM code to classes/database
The old directory, packages/database-interface, was confusingly named so it was better to move it here
2024-10-24 16:28:38 +02:00
Jesse Wierzbinski 9e96eca032
refactor(database): ♻️ Move Applications to our custom ORM 2024-10-23 17:56:47 +02:00
Jesse Wierzbinski d84ae38573
fix(api): 🐛 Fix missing nullish coalescing 2024-10-11 17:07:17 +02:00
Jesse Wierzbinski 9f1e89b592
refactor(config): 🔥 Remove old oidc section in config 2024-10-11 17:03:33 +02:00
Jesse Wierzbinski ce781f3336
refactor(database): ♻️ Use new Drizzle count API 2024-10-11 15:46:05 +02:00
Jesse Wierzbinski 04651746bb
refactor(plugin): 🚚 Move SSO login callback route to OpenID plugin 2024-10-11 15:15:06 +02:00
Jesse Wierzbinski 777a39faf5
refactor(plugin): 🚚 Move SSO login route to OpenID plugin 2024-10-11 14:39:25 +02:00
Jesse Wierzbinski 0557d52afe
refactor(plugin): 🚚 Move JWKS well-known endpoint to OpenID plugin 2024-10-07 12:52:22 +02:00
Jesse Wierzbinski b53307c824
refactor: 🚚 Explicitely add extensions to all imports 2024-10-04 15:22:48 +02:00
Jesse Wierzbinski 835cdc3f18
refactor: 🚨 Make class methods that don't use this static 2024-10-03 13:51:19 +02:00
Jesse Wierzbinski 3fade63567
refactor: 🚨 Use shortand property syntax for object literals 2024-10-03 13:41:58 +02:00
Jesse Wierzbinski 360ec4817c
fix(api): 🚨 Correct duplicate assignments 2024-10-03 13:26:53 +02:00
Jesse Wierzbinski b1d8595a7c
refactor: 🚨 Remove unnecessary async keywords 2024-10-03 11:43:16 +02:00
Jesse Wierzbinski 5e1ec8778c
fix: 🚨 Correct useless template literal 2024-10-03 10:27:41 +02:00
Jesse Wierzbinski 19213ec29e
refactor(api): ♻️ Move token endpoint to OpenID plugin, add revoke endpoint 2024-09-30 13:42:12 +02:00
Jesse Wierzbinski 2254c3d39c
refactor(api): 🔥 Remove useless allowedMethods from route meta info 2024-09-27 13:08:47 +02:00
Jesse Wierzbinski b040c88445
refactor(api): ♻️ Finish first pass of OpenAPI refactor 2024-09-27 13:00:12 +02:00
Jesse Wierzbinski 74ec563ba5
refactor(api): ♻️ Move all SSO account linking endpoint logic to OpenID plugin 2024-09-25 12:31:35 +02:00
Jesse Wierzbinski 96d1805925
refactor(api): ♻️ Move /api/v1/sso to OpenID plugin 2024-09-24 14:42:39 +02:00