Commit graph

240 commits

Author SHA1 Message Date
Jesse Wierzbinski a6c5f320e3
fix(api): 🚑 Remove hack to get text 2024-06-26 16:14:12 -10:00
Jesse Wierzbinski e59c3aa625
fix(api): 🐛 Fix body not being logged in request debugging 2024-06-26 15:31:51 -10:00
Jesse Wierzbinski de75310b61
fix: 🐛 Fix request logs not showing up when starting server via CLI 2024-06-26 15:16:50 -10:00
Jesse Wierzbinski d29603275a
refactor(api): ♻️ Use Web Workers instead of spawning the same process once for each thread 2024-06-26 14:44:08 -10:00
Jesse Wierzbinski bc8220c8f9
refactor: ♻️ Replace logging system with @logtape/logtape 2024-06-26 13:11:39 -10:00
Jesse Wierzbinski b8b822e553
feat(config): Add support for HTTP proxies on outgoing requests 2024-06-25 17:13:40 -10:00
Jesse Wierzbinski 70cd00cfa8
refactor(federation): ⬆️ Use @lysand-org/federation v2.0.0 2024-06-19 13:21:02 -10:00
Jesse Wierzbinski d33a61e713
fix(api): 🐛 Properly disable challenges when config option is set 2024-06-15 20:27:31 -10:00
Jesse Wierzbinski c764cc044d
fix: 🚑 Sleep process instead of exiting it on error
Avoids Docker's auto-restart policy from causing infinite reboots and hanging the system
2024-06-13 23:44:46 -10:00
Jesse Wierzbinski edbe6e45b2
fix: 🐛 Fix incorrect docs, make exit code 0 instead of 1 2024-06-13 23:26:20 -10:00
Jesse Wierzbinski 8f9472b221
feat(api): Implement Challenges API 2024-06-13 22:03:51 -10:00
Jesse Wierzbinski 924ff9b2d4
refactor(api): 🚚 Change ApiRouteMetadata structure to be more consistent 2024-06-13 18:03:17 -10:00
Jesse Wierzbinski c3271ba264
docs: 📝 More work on JSDoc 2024-06-12 22:52:03 -10:00
Jesse Wierzbinski 83275be536
refactor: ⚰️ Remove dead code and useless files 2024-06-12 20:34:17 -10:00
Jesse Wierzbinski d301d4da09
refactor(api): 🎨 Don't use node:crypto for random strings 2024-06-12 19:38:26 -10:00
Jesse Wierzbinski c61f519a34
refactor(api): 🎨 Refactor complex functions into smaller ones 2024-06-12 18:16:59 -10:00
Jesse Wierzbinski a1e02d0d78
refactor: 🚨 Turn every linter rule on and fix issues (there were a LOT :3) 2024-06-12 16:26:43 -10:00
Jesse Wierzbinski 5565bf00de
refactor(database): 🎨 Improve database handlers to have more consistent naming and methods 2024-06-12 14:45:07 -10:00
Jesse Wierzbinski ffcf01e3cd
feat(api): Add TOS and Privacy Policy support 2024-06-11 09:55:40 -10:00
Jesse Wierzbinski 4902f078a8
feat(api): Add permissions to every route and permission config 2024-06-07 18:57:29 -10:00
Jesse Wierzbinski 19823d8eca
feat(api): Add Roles API 2024-06-07 17:31:17 -10:00
Jesse Wierzbinski f87bcbd0da
chore: ⚰️ Remove dead code and unused imports 2024-05-28 15:14:24 -10:00
Jesse Wierzbinski 0706541546
refactor: 🚚 Add slash to typescript path shortcuts 2024-05-28 14:59:49 -10:00
Jesse Wierzbinski fd38161769
fix(federation): 🐛 Fix debug logger not correctly outputting 2024-05-21 15:23:48 -10:00
Jesse Wierzbinski eab61b38f1
feat(federation): Add bridge tokens, federation request debugging 2024-05-21 14:59:03 -10:00
Jesse Wierzbinski b1216a43f2
refactor(api): ♻️ Change route names, improve API endpoints to be more consistent with Mastodon API 2024-05-16 15:49:59 -10:00
Jesse Wierzbinski 2b5b82b465
fix: 🐛 Fix all TypeScript issues 2024-05-15 17:07:34 -10:00
Jesse Wierzbinski fb31375b74
refactor(config): 🔥 Replace config validation with Zod 2024-05-15 16:37:25 -10:00
Jesse Wierzbinski 5fd6a4e43d
feat(federation): Replace old types and federation validators with @lysand-org/federation 2024-05-14 14:35:13 -10:00
Jesse Wierzbinski b83d76abf6
fix(api): 🐛 Fix only one emoji being parsed per post 2024-05-12 19:14:37 -10:00
Jesse Wierzbinski 4f070c9b65
fix(api): 🔒 Replace bad webfinger regex with good one 2024-05-12 16:27:40 -10:00
Jesse Wierzbinski 8e5d68144c
fix(api): 🐛 Fix regression in emoji parsing caused by incorrectly changed regex 2024-05-12 15:07:55 -10:00
Jesse Wierzbinski ff14e5a5d3
fix(api): 🐛 Fix auth could not error when token was wrong and authorization required on a route 2024-05-12 13:53:49 -10:00
Jesse Wierzbinski 4713d0f93f
fix(api): 🐛 Add JSON support to every form that doesn't have a file parameter 2024-05-11 15:51:01 -10:00
Jesse Wierzbinski 8fedd1a07d
feat(api): Add new admin emoji API 2024-05-11 15:27:28 -10:00
Jesse Wierzbinski b979daa39a
feat(api): Allow more HTML tags in Markdown 2024-05-11 15:27:19 -10:00
Jesse Wierzbinski e48f57a3d8
perf(database): Improve performance when fetching timelines by fetching all data in a single SQL query 2024-05-08 13:19:53 -10:00
Jesse Wierzbinski a9629b825b
fix(api): 🎨 Do wizardry on qs middleware to also work on multipart formData 2024-05-08 01:16:16 -10:00
Jesse Wierzbinski fc06b35c09
feat(cli): Add new CLI commands, move to project root 2024-05-08 00:10:14 +00:00
Jesse Wierzbinski 06c30b8af2
feat(cli): ♻️ Begin new CLI rewrite with oclif 2024-05-07 07:41:02 +00:00
Jesse Wierzbinski 7b05a34cce
refactor: 🔥 Remove dead code 2024-05-07 03:13:37 +00:00
Jesse Wierzbinski 8557867ad8
fix(api): 🐛 Fix incorrect proxy behaviour 2024-05-06 17:31:12 +00:00
Jesse Wierzbinski 516bfb72e7
fix(build): 🐛 Add bodyOrJson middleware to server/api/v1/apps 2024-05-06 08:31:12 +00:00
Jesse Wierzbinski 959dd27ad6
refactor(api): 🎨 Finish Hono refactor 2024-05-06 08:19:42 +00:00
Jesse Wierzbinski 826a260e90
refactor(api): ♻️ Move to Hono for HTTP 2024-05-06 07:16:33 +00:00
Jesse Wierzbinski 5f785c391d
refactor(api): 🎨 Switch to base64url for proxy url encoding instead of plaintext 2024-05-04 21:02:25 -10:00
Jesse Wierzbinski ead34b818f
feat(api): 🔒 Make all media be proxied through an internal proxy 2024-05-04 19:13:23 -10:00
Jesse Wierzbinski 154f17ab12
refactor(api): 📦 Change sanitizer from DOMPurify to xss 2024-05-02 17:20:24 -10:00
Jesse Wierzbinski a430db5c30
fix(build): 🐛 Fix happy-dom 2024-05-02 15:29:36 -10:00
Jesse Wierzbinski 5ef7564ee8
fix(build): 🐛 aaa 2024-05-02 14:44:49 -10:00
Jesse Wierzbinski 74873fe924
fix(api): 🚑 Replace isomorphic-dompurify with plain jsdom and dompurify 2024-05-02 14:21:09 -10:00
Jesse Wierzbinski a339b7fa94
fix(frontend): 🐛 Add unsafe-inline to CSP for frontend 2024-05-02 14:05:14 -10:00
Jesse Wierzbinski 74b9083551
fix(api): 🚑 Fix incorrect Content-Security-Policy on frontend 2024-05-02 13:57:36 -10:00
Jesse Wierzbinski 7a90abeaec
fix: 🎨 Switch from happy-dom to jsdom for HTML sanitization 2024-05-02 13:53:10 -10:00
Jesse Wierzbinski febddc2a8b
feat(api): Reimplement HTML sanitization 2024-05-02 13:25:32 -10:00
Jesse Wierzbinski cac726ac1b
refactor(api): 🎨 Add better headers when serving API requests and client requests 2024-05-02 12:46:21 -10:00
Jesse Wierzbinski 9d70778abd
refactor(api): 🎨 Move User methods into their own class similar to Note 2024-04-24 17:40:27 -10:00
Jesse Wierzbinski abc8f1ae16
refactor(api): 🎨 Improve Markdown parsing with markdown-it instead of marked 2024-04-22 11:02:09 -10:00
Jesse Wierzbinski 88b3ec7b43
refactor(database): 🎨 Update database and schema names to be clearer 2024-04-16 20:36:01 -10:00
Jesse Wierzbinski 9081036c6d
refactor(database): 🎨 Refactor note handling into its own class instead of separate functions 2024-04-16 18:09:21 -10:00
Jesse Wierzbinski e67dc07473
Fix errors flagged by Biome 2024-04-14 01:22:47 -10:00
Jesse Wierzbinski ab6fe6988c
Refactor debugging and logging more 2024-04-14 01:20:55 -10:00
Jesse Wierzbinski 0b1c1ba128
Switch all routes to use Zod for strict validation 2024-04-14 00:36:25 -10:00
Jesse Wierzbinski fe0cfa547b
Cleanup files and packages 2024-04-13 18:10:37 -10:00
Jesse Wierzbinski a65249b79d
Remove Prisma once and for all 2024-04-13 14:46:33 -10:00
Jesse Wierzbinski 05e45ff5aa
More conversions to Drizzle 2024-04-13 02:24:57 -10:00
Jesse Wierzbinski ad0bf1a350
More work on converting old Prisma calls to Drizzle 2024-04-13 02:20:12 -10:00
Jesse Wierzbinski a4f6ce42c6
Don't accidentally send mixed content to the client 2024-04-11 04:01:12 -10:00
Jesse Wierzbinski 6b3c604c33
Add new tests to server routes 2024-04-11 03:52:44 -10:00
Jesse Wierzbinski df939a6a7a
Fix not working routes 2024-04-11 02:12:16 -10:00
Jesse Wierzbinski f7abe06a60
Begin moving project to use Drizzle instead of prisma 2024-04-11 01:39:07 -10:00
Jesse Wierzbinski a58c81c8e9
Implement federation of statuses 2024-04-09 16:05:02 -10:00
Jesse Wierzbinski 1438387362
Disable CSP on client pages 2024-04-08 13:30:22 -10:00
Jesse Wierzbinski d82cfb0d80
Allow forms to be submitted (whoops) 2024-04-08 13:24:49 -10:00
Jesse Wierzbinski e26d604a54
Refactors, bugfixing 2024-04-07 17:28:18 -10:00
Jesse Wierzbinski 5812618170
Fix incorrect order causing wrong timeline Link headers 2024-04-07 16:36:14 -10:00
Jesse Wierzbinski d3a625e084
Fix pagination bug 2024-04-07 16:32:45 -10:00
Jesse Wierzbinski e0335c33a9
Timeline refactors 2024-04-07 16:24:18 -10:00
Jesse Wierzbinski e72a4e76d6
temporarily disable sanitization 2024-04-07 04:05:06 -10:00
Jesse Wierzbinski 0f07ca94a3
Fix CSP 2024-04-07 02:02:11 -10:00
Jesse Wierzbinski e20454bf58
Fix wrong CSP causing issues for HTTPS 2024-04-07 01:51:41 -10:00
Jesse Wierzbinski af0d627f19
Replace eslint and prettier with Biome 2024-04-06 19:30:49 -10:00
Jesse Wierzbinski 6a54c5b805
Replace config manager with unjs/c12 2024-04-06 18:16:54 -10:00
Jesse Wierzbinski 0541776d3d
Finish full rewrite of server and testing systems 2024-03-10 16:04:14 -10:00
Jesse Wierzbinski 0e4d6b401c
Fix media code, clean up old types 2024-03-10 13:57:26 -10:00
Jesse Wierzbinski 05140f0d6f
Begin work on refactoring every single route to use new subsystems 2024-03-10 12:48:14 -10:00
Jesse Wierzbinski 78f216092b
refactor: Rewrite functions into packages 2024-03-07 19:34:50 -10:00
Jesse Wierzbinski 2d6de3064c
Fix header entries and FormData parsing 2024-03-03 18:32:51 -10:00
Jesse Wierzbinski 2bc9ff51ea
Slight refactoring, begin work on major moderation overhaul 2024-03-03 15:27:08 -10:00
Jesse Wierzbinski d79e718e15
feat: Add user registration via Web UI 2023-12-08 18:45:36 -10:00
Jesse Wierzbinski 1138e7be06
feat: Use custom importer to import config 2023-12-08 17:32:45 -10:00
Jesse Wierzbinski c8ffca37b1
Fixes to editing of profiles 2023-12-06 13:46:46 -10:00
Jesse Wierzbinski d47a11cfc2
remove mistakenly added files 2023-12-06 12:10:43 -10:00
Jesse Wierzbinski 947c1f4991
Add full OpenID connect provider support 2023-12-06 12:10:22 -10:00
Jesse Wierzbinski b5913b163c
feat: Auto add new users and statuses to Meilisearch 2023-12-02 18:45:01 -10:00
Jesse Wierzbinski 553b558c1a
feat: Add Search endpoint 2023-12-02 18:40:10 -10:00
Jesse Wierzbinski aa0813fef8
feat: Add Meilisearch integration, begin work on search endpoint 2023-12-02 18:11:30 -10:00
Jesse Wierzbinski a17b52b2c5
feat: Add new Redis caching to queries 2023-12-01 13:00:00 -10:00
Jesse Wierzbinski 2c82cffb58
Add working Dockerfile 2023-11-26 19:30:57 -10:00
Jesse Wierzbinski 8b442c241c
Work on federation 2023-11-26 15:40:44 -10:00
Jesse Wierzbinski f51476e810
Add status pinning and unpinning, fix bugs 2023-11-26 14:56:16 -10:00
Jesse Wierzbinski 0a74bbfe93
Fix timelines 2023-11-26 12:46:15 -10:00
Jesse Wierzbinski 63b13ca5e8
Fix SIGSEGV bug!! 2023-11-26 11:54:20 -10:00
Jesse Wierzbinski be9b2e3376
Enable verbatim module syntax + more API routes 2023-11-22 18:10:37 -10:00
Jesse Wierzbinski 28a16e95a4
Add media attachment functionality to posts 2023-11-22 13:40:31 -10:00
Jesse Wierzbinski 158f86c475
Add new oauth matching function with tests for it 2023-11-21 18:16:31 -10:00
Jesse Wierzbinski ca94c35bc4
Add reblog and unreblog endpoints 2023-11-11 22:28:06 -10:00
Jesse Wierzbinski a1c0164e9d
More Lysand protocol work, refactor keys, small refactoring overall 2023-11-04 13:59:55 -10:00
Jesse Wierzbinski 77a675afe6
More work on converting to the Lysand protocol 2023-11-03 17:34:31 -10:00
Jesse Wierzbinski 35f54d108f
Add more contribution help 2023-10-22 14:23:15 -10:00
Jesse Wierzbinski 460b68c381
Media upload for avatars and banners, more work, fix tests 2023-10-19 09:53:59 -10:00
Jesse Wierzbinski 47a53b6990
Update README and config 2023-10-17 09:12:53 -10:00
Jesse Wierzbinski f677737fdd Add sanitization to HTML 2023-10-16 12:03:29 -10:00
Jesse Wierzbinski a8d8b70239 Make authorized fetch configurable 2023-10-15 20:07:39 -10:00
Jesse Wierzbinski c0ff46559b Refactor configs and activitypub parts 2023-10-15 20:04:03 -10:00
Jesse Wierzbinski ca7d325cb1 New API route format to make code cleaner 2023-10-15 17:51:29 -10:00
Jesse Wierzbinski 65ff53e90c Fix existing bugs in tests, refactor users 2023-10-08 10:20:42 -10:00
Jesse Wierzbinski b7587f8d3f Add public timeline 2023-10-01 14:07:29 -10:00
Jesse Wierzbinski bff170d2e2 Add new API endpoint (instance endpoint) 2023-09-30 17:24:58 -10:00
Jesse Wierzbinski 3b452d66aa Small refactors 2023-09-26 12:33:43 -10:00
Jesse Wierzbinski 41e70d00e8 Fix relationships endpoint 2023-09-22 16:46:52 -10:00
Jesse Wierzbinski a9688b8178 Add new follow API endpoint 2023-09-21 17:18:05 -10:00
Jesse Wierzbinski ce2ed0754e Add new API endpoint (accounts/verify_credentials) 2023-09-21 16:15:12 -10:00
Jesse Wierzbinski c7743aa154 Fix failing tests 2023-09-21 15:09:14 -10:00
Jesse Wierzbinski 1a1bee83a7
Add more utilities, implement Accept and Reject objects 2023-09-18 10:29:56 -10:00
Jesse Wierzbinski 4d0283caf0
Refactor code, add more filtering 2023-09-17 19:38:08 -10:00
Jesse Wierzbinski 768d1858dc
Rename project to Lysand 2023-09-14 19:08:59 -10:00
Jesse Wierzbinski 76b1b8c3b4
Add logging options 2023-09-14 17:21:38 -10:00
Jesse Wierzbinski 8162a5050c
guh 2023-09-14 15:22:27 -10:00
Jesse Wierzbinski 0bdf559bdc
Add new user patch route 2023-09-13 09:02:16 -10:00
Jesse Wierzbinski b96fe8116e
Add errors to user registration 2023-09-12 20:06:12 -10:00
Jesse Wierzbinski a499dfd231
Add host-meta endpoint 2023-09-12 19:33:08 -10:00
Jesse Wierzbinski 8946d4593c
add more shit idk 2023-09-12 19:30:45 -10:00
Jesse Wierzbinski 1027eada7c
Add new inbox endpoint 2023-09-12 17:06:47 -10:00
Jesse Wierzbinski e618996936
Add stricter ESLint rules 2023-09-12 14:29:13 -10:00
Jesse Wierzbinski d30bbe56a7
nnya 2023-09-12 13:08:46 -10:00
Jesse Wierzbinski c573052450
Implement WebFinger, rework TS 2023-09-12 10:48:10 -10:00
Jesse Wierzbinski 416a7186d1
Add more user serialization 2023-09-10 17:54:14 -10:00
Jesse Wierzbinski 636f2ffff8
Fix ESLint 2023-09-10 17:46:20 -10:00
Jesse Wierzbinski 436a79d99f
Initial commit 2023-09-10 17:31:08 -10:00