Commit Graph

596 Commits

Author SHA1 Message Date
Alex Gleason 2d5f9db5c3
Use 2048 bit RSA, because it's more secure and won't have the same performance penalty as on the bridge 2023-07-23 11:15:52 -05:00
Alex Gleason f8674ed053
Add RSA key to actors, use LRU cache 2023-07-13 22:00:27 -05:00
Alex Gleason e5082ed805
transmogrify --> transformers 2023-07-13 20:47:09 -05:00
Alex Gleason 97e6f1385c
Move transmute into transmogrify directory 2023-07-13 20:23:04 -05:00
Alex Gleason 0d4b9e416c
Copy some ActivityPub conversion code from Mostr 2023-07-13 19:50:16 -05:00
Alex Gleason 8fa6ac0a4c
Add nodeinfo 2023-07-09 20:32:45 -05:00
Alex Gleason 8894bb5513
HostMeta: pretty xml 2023-07-09 18:58:08 -05:00
Alex Gleason 19d7d1ae52
Move host-meta to its own file 2023-07-09 18:50:47 -05:00
Alex Gleason be6aa89c39
Rename Conf.url() to Conf.local(), replace it with a URL of localDomain 2023-07-09 18:26:33 -05:00
Alex Gleason 5ec40f285d
Webfinger: actually, remove nostr lookup (this is bloat) 2023-07-09 18:16:20 -05:00
Alex Gleason 60cd92384d
Webfinger: reorganize more 2023-07-09 18:10:12 -05:00
Alex Gleason 9d6216aff7
Clean up the webfingerController a bit 2023-07-09 17:38:39 -05:00
Alex Gleason da9bea7560
Webfinger: fix resource parameter 2023-07-09 17:21:38 -05:00
Alex Gleason bf23afdce0
Webfinger: support nostr URI, fix resource parsing 2023-07-09 17:11:26 -05:00
Alex Gleason cf78b721f5
Implement Webfinger 2023-07-09 16:08:49 -05:00
Alex Gleason 215ff85b6d
Add Conf.url() function for producing local absolute URLs 2023-07-09 14:23:02 -05:00
Alex Gleason a3323a2618
Simplify \w+ regex usage 2023-07-09 14:22:18 -05:00
Alex Gleason 0e15e174c5
Add nostr.json (NIP-05) 2023-07-09 12:55:37 -05:00
Alex Gleason 7808565d71
User: enforce {1,30} character limit on username 2023-07-09 12:30:04 -05:00
Alex Gleason c93aa5b314
Switch from Dongoose to Pentagon instead of the db 2023-07-09 12:27:10 -05:00
Alex Gleason 505b9db409
Try adding Dongoose and a users table 2023-07-09 11:47:19 -05:00
Alex Gleason fb9bb284db
Fix crash with invalid nip98 base64 2023-07-08 21:01:49 -05:00
Alex Gleason 4e68e3868f
Prevent cyclical import of Time module 2023-07-08 20:01:10 -05:00
Alex Gleason 028ff27c49
Use new Time module in more places 2023-07-08 19:54:27 -05:00
Alex Gleason d7d5057617
Support nip98 auth 2023-07-08 18:41:11 -05:00
Alex Gleason c80a9e5d9a
paginationSchema: fix problem with nostrNow() being called only at startup 2023-07-08 15:21:28 -05:00
Alex Gleason cc751f03a7
Refactor to use nostrDate() and nostrNow() 2023-07-08 15:04:50 -05:00
Alex Gleason bdf8e9a61d
Return an error for POST /api/v1/accounts 2023-07-08 11:20:10 -05:00
Alex Gleason b7ecc609de
publicController: return early if there are no events 2023-07-07 15:15:26 -05:00
Alex Gleason d4eef9c2af
Add public timeline, fix limit param 2023-07-07 15:07:59 -05:00
Alex Gleason cacf51ea36
Fix spoiler_text type 2023-07-02 14:13:14 -05:00
Alex Gleason 07b406c25c
Handle CW/subject tags in render, fix schema for status create params 2023-07-02 13:49:41 -05:00
Alex Gleason 4edebaa105
createStatusController: handle most request params 2023-07-02 13:28:58 -05:00
Alex Gleason 6a20df2704
createStatusController: prevent non-public posts 2023-07-02 01:13:17 -05:00
Alex Gleason 164e7259e0
accountStatusesController: support `tagged` query param 2023-06-11 16:04:42 -05:00
Alex Gleason 4bcf9c171c
accountStatusesController: support exclude_replies 2023-06-11 15:47:55 -05:00
Alex Gleason 860b653892
Allow users to update their profile 2023-06-11 14:41:16 -05:00
Alex Gleason 009747105d
Add boilerplate frontend_configurations controller 2023-06-10 23:10:27 -05:00
Alex Gleason 39b75d7f95
deno fmt 2023-06-10 23:02:55 -05:00
Alex Gleason 75135c62a4
Add admin signing module 2023-06-10 23:00:10 -05:00
Alex Gleason b5643c4aba
Refactor config to use a better interface 2023-06-10 17:15:08 -05:00
Alex Gleason 8a62cb604d
Support pagination on user profile 2023-06-09 19:22:38 -05:00
Alex Gleason 75a7a0a2ff
Bump nostr-tools version 2023-06-09 16:41:25 -05:00
Alex Gleason 265a97a191
Sanitize oembed html 2023-05-27 16:40:18 -05:00
Alex Gleason 74024e36b6
Support OAuth 'client_credentials' grant type, improve Mastodon API compat 2023-05-24 11:19:02 -05:00
Alex Gleason b0c58bff70
Remove unused handler.ts file 2023-05-23 20:52:21 -05:00
Alex Gleason 161c77b85d
Streaming: parse stream channel param 2023-05-20 23:47:51 -05:00
Alex Gleason da6e31c647
Validate event signing, make it more Mastodonic 2023-05-20 21:16:22 -05:00
Alex Gleason ec5e0ed330
Streaming: refactor, add unsubscribeAll method 2023-05-20 20:23:01 -05:00
Alex Gleason 3ffad1df29
Build a websocket topics framework 2023-05-20 19:39:05 -05:00
Alex Gleason 02160f8c9e
credentialsController --> verifyCredentialsController 2023-05-20 14:44:18 -05:00
Alex Gleason f3e42cc6a7
Add a UUID to auth tokens for private websocket event signing 2023-05-20 14:34:13 -05:00
Alex Gleason 9500ceee7c
Upgrade nostr-tools, fix BECH_32_REGEX imports 2023-05-20 12:28:12 -05:00
Alex Gleason 91bc0549c7
sign: 504 --> 408 2023-05-13 21:25:43 -05:00
Alex Gleason c14ebe6631
sign: only add stream if nostr=true on the user stream (still subject to change) 2023-05-13 21:05:55 -05:00
Alex Gleason ce02f7d56c
Update streaming comments 2023-05-13 20:16:44 -05:00
Alex Gleason 9ff5e7c738
Websocket signing kind of works!! 2023-05-13 19:48:08 -05:00
Alex Gleason 8ba456a100
streaming: establish WebSocket connection 2023-05-13 17:41:21 -05:00
Alex Gleason a766449ba6
Let searchController look up accounts 2023-05-13 14:45:13 -05:00
Alex Gleason 017a34d5d4
Stub out missing Elk endpoints 2023-05-13 14:27:49 -05:00
Alex Gleason ab1bb3854a
Return empty array for public timeline 2023-05-12 16:27:52 -05:00
Alex Gleason 45807e29de
Fix login with Elk 2023-05-12 16:17:02 -05:00
Alex Gleason cfa7498feb
Upgrade unfurl, fixes crashing 2023-05-12 16:12:35 -05:00
Alex Gleason 837a3ae1dd
Support custom emojis in statuses 2023-05-11 23:49:32 -05:00
Alex Gleason d109043440
Fix /api/v1/accounts/lookup nip05 2023-05-11 23:39:25 -05:00
Alex Gleason a21ad4caec
Support custom emojis in usernames 2023-05-11 23:39:10 -05:00
Alex Gleason 1ba46dd7a3
Truncate npub username 2023-05-11 22:34:56 -05:00
Alex Gleason ef5bfb79f0
buildInlineRecipients: delete extra space when there are no inline mentions 2023-05-11 20:12:05 -05:00
Alex Gleason 7820f88859
timelines: bail early if there are no events 2023-05-11 20:11:00 -05:00
Alex Gleason af5420222b
Add recepients-inline for better Mastodon compatibility 2023-05-08 18:19:45 +02:00
Alex Gleason 8d021865c6
Don't log nip05 cache 2023-05-07 16:59:36 -05:00
Alex Gleason 1271e36f7e
Throw a user-friendly error when a private key isn't provided 2023-05-07 15:43:38 -05:00
Alex Gleason 8f65939f1c
OAuth form improvements, support NIP-07 2023-05-07 15:29:27 -05:00
Alex Gleason d825f9d7cb
Yo dawg I heard u like pools 2023-05-07 12:59:55 -05:00
Alex Gleason 4993b4ca52
Support favourites 2023-05-07 12:32:24 -05:00
Alex Gleason 6e09e6f9e5
Fix NIP-05 cache 2023-05-07 11:44:22 -05:00
Alex Gleason af9f376ad0
Verify NIP05's with cache, fixes #1 2023-05-06 22:29:41 -05:00
Alex Gleason f567acb58f
Cache rich media cards for 12 hours 2023-05-06 20:30:11 -05:00
Alex Gleason 78b1c24ee0
card: sane defaults 2023-05-06 20:09:33 -05:00
Alex Gleason b6ce22cfaf
Unfurl card in link previews 2023-05-06 19:58:41 -05:00
Alex Gleason 2fff0ed879
First pass linkifying status content and rendering attachments 2023-05-06 15:17:50 -05:00
Alex Gleason 0c71b5a696
Try Deno's experimental KV as a cache 2023-05-03 22:15:18 -05:00
Alex Gleason 9539eb5055
Try to make relationshipsController reflect following 2023-05-03 21:56:22 -05:00
Alex Gleason 192ee7f76d
Make getFilter return a pure event object instead of the class from nostr-relaypool 2023-05-03 21:54:22 -05:00
Alex Gleason e3dca47241
Extend getFollows timeout 2023-05-03 21:53:36 -05:00
Alex Gleason 3880fdd61c
accountStatusesController: sort results by timestamp 2023-05-03 15:33:54 -05:00
Alex Gleason 502af2cd48
Return first page of statuses in profile 2023-05-03 15:22:24 -05:00
Alex Gleason 6fa897145e
Include source property on own account 2023-05-02 13:58:45 -05:00
Alex Gleason e93fcdc643
Add default banner to account 2023-04-30 23:31:30 -05:00
Alex Gleason 8b3eab80b3
Add email field to /api/v1/instance 2023-04-30 23:27:29 -05:00
Alex Gleason 0a12bbb42f
Refactor client code, hope for the best 2023-04-30 20:21:55 -05:00
Alex Gleason 7bb8821b1b
Escape HTML fields 2023-04-30 16:07:07 -05:00
Alex Gleason d7805ae65b
Add logger middleware 2023-04-30 15:16:33 -05:00
Alex Gleason cb8e78ab59
Add landing page 2023-04-30 14:51:56 -05:00
Alex Gleason 610ce4444a
api --> controllers/api 2023-04-30 14:45:30 -05:00
Alex Gleason 2554379cef
api/home.ts --> api/timelines.ts 2023-04-30 14:16:30 -05:00
Alex Gleason e26b540246
OAuth token endpoint: support formData 2023-04-30 14:13:27 -05:00
Alex Gleason 81357fa1e3
Make OAuth form mostly work 2023-04-30 13:28:49 -05:00
Alex Gleason d860ef7f98
Apps: get the redirect_uri into the app 2023-04-30 12:41:01 -05:00
Alex Gleason 9734d0a961
lint 2023-04-29 21:57:30 -05:00
Alex Gleason 693c7cc7bf
Sign events from app context 2023-04-29 21:48:22 -05:00
Alex Gleason 1ba822abaa
Add Markers fallback controller 2023-04-29 21:14:00 -05:00
Alex Gleason 780b3aeb01
Enable Link header in CORS 2023-04-29 21:07:59 -05:00
Alex Gleason 26cf528fca
Use findReplyTag from Mostr 2023-04-29 20:33:52 -05:00
Alex Gleason b42d1f3564
Make threads work, sorta 2023-04-29 20:23:51 -05:00
Alex Gleason f1333cb131
Deduplicate mentions 2023-04-29 19:27:13 -05:00
Alex Gleason a48ee148ae
Fix in_reply_to for root 2023-04-29 19:01:24 -05:00
Alex Gleason 586f20b23d
Improve NIP-05 display in mentions 2023-04-29 18:59:40 -05:00
Alex Gleason 4962f31296
Fix in_reply_to for legacy clients 2023-04-29 18:02:24 -05:00
Alex Gleason acabc7c4ad
Add dummy relationships endpoint 2023-04-29 17:59:54 -05:00
Alex Gleason 64102699ac
Perform NIP-05 lookups 2023-04-29 17:49:03 -05:00
Alex Gleason d84e593e53
Add GET /api/v1/statuses/:id 2023-04-29 17:26:56 -05:00
Alex Gleason f87a17e609
Remove unused code 2023-04-29 17:20:51 -05:00
Alex Gleason dabc3b7e3a
Remove unused imports 2023-04-29 17:07:26 -05:00
Alex Gleason 693b200562
Fix import 2023-04-29 16:39:11 -05:00
Alex Gleason 07e072bc48
Narrow pubkey paths with regex 2023-04-29 16:35:44 -05:00
Alex Gleason 70f69b80f3
Add account search controller, which does basically the same thing as account lookup for now 2023-04-29 16:28:53 -05:00
Alex Gleason 9e73a8e43c
Add account lookup endpoint 2023-04-29 16:25:07 -05:00
Alex Gleason 5118aaf46c
Rename some client functions 2023-04-29 15:54:21 -05:00
Alex Gleason 6341987088
Delete src/nostr directory 2023-04-29 15:51:54 -05:00
Alex Gleason b33a3a21fc
OAuth: don't decode bech32 string 2023-04-29 15:33:25 -05:00
Alex Gleason 8c48b9f625
Add nip19 auth middleware 2023-04-29 15:22:10 -05:00
Alex Gleason a0f4a7d9b5
Upgrade nostr-tools, signEvent --> getSignature 2023-04-27 21:10:51 -05:00
Alex Gleason 4664609047
apps: add comments 2023-04-10 21:13:57 -05:00
Alex Gleason 53655f99bf
We do a little refactoring 2023-04-10 19:34:00 -05:00
Alex Gleason c3b8ad1c28
Scaffold db, handler, query 2023-04-07 21:38:05 -05:00
Alex Gleason ecf3841ee4
Rename to Ditto 2023-04-02 14:10:50 -05:00
Alex Gleason d8e0a1c7fc
Validate and transform json at the same time 2023-03-18 19:14:19 -05:00
Alex Gleason d365ea26dc
Improve feed query 2023-03-18 18:09:16 -05:00
Alex Gleason 1d6ebf6ba6
Support pagination with Link headers... but of course Soapbox doesn't do that 2023-03-18 17:47:34 -05:00
Alex Gleason dcf6b69501
Improve fqn 2023-03-18 17:20:46 -05:00
Alex Gleason 46cdda7f7f
Parse mentions 2023-03-18 17:03:32 -05:00
Alex Gleason c28c644265
Upgrade nostr-tools, do npub stuff, query own events in feed 2023-03-18 16:39:34 -05:00
Alex Gleason 9f81d0d572
Reuse existing transmute functions, lol forgot I already wrote that 2023-03-18 16:30:46 -05:00
Alex Gleason 6748e13a36
Make Home feed kind of work 2023-03-18 14:49:44 -05:00
Alex Gleason 2ab9e60048
Add additional fallback controllers 2023-03-05 00:36:37 -06:00
Alex Gleason cde34bffd8
Refactor transmute, fix account in status 2023-03-05 00:16:05 -06:00
Alex Gleason 2acfecc1eb
Allow posting a status to Nostr 2023-03-04 23:26:25 -06:00
Alex Gleason 73884c212f
Transform nsec1 better 2023-03-04 22:54:57 -06:00
Alex Gleason 48f04e48de
Enable CORS, fix nsec1 keys 2023-03-04 22:49:08 -06:00
Alex Gleason 825fed7d21
This is probably enough to log in? 2023-03-04 22:10:56 -06:00
Alex Gleason 7285d71bda
Add boilerplate accounts controller and fallback controller 2023-03-04 21:49:33 -06:00
Alex Gleason b36b8ea7d2
Add OAuth controller 2023-03-04 21:36:53 -06:00
Alex Gleason 8ed662321d
Implement apps API (the stupid way) 2023-03-04 20:59:39 -06:00
Alex Gleason 484a396a64
Add /api/v1/instance 2023-03-04 20:19:57 -06:00
Alex Gleason d855c05fac
Boilerplate Deno stuff 2023-03-04 19:59:27 -06:00