* Add helper to consume subscription message frames
* Implement xrpc subscription consumer
* Simplify subscription consumer params
* Remove duped test
* Reconnect to subscription on initial setup
* Add reconnect hook on subscription, for logging
* Make subscription consumption cancelable
* Include error information in sub reconnect hook
* Yield info frames in byMessage()
* Separate app.bsky methods out into app view
* Fix websocket issue while splitting-out app view
* Start organizing app-view tables out of pds
* Move feed service, getTimeline, vote table into app-view
* Move record processing/indexing logically out of pds and into app-view
* Pull actor service functionality into app-view
* Factor app-view user functionality out of pds, replace actor w/ account service
* Tidy
* Add lexicon for post embeds
* Model post embeds
* Handle and present post embeds
* Test and tidy post embeds
* Generalize post embeds to record embeds
* Tidy
* change pkey on user table to did & rename to user_account
* migration
* tidy
* fixes suggested by bryn
* missed merge thing
* some updating hanldes
scheams
* impl + passing test
* more handle tests
* tidy
* update did doc + some new tests
* one more test
* test handle casing
* basic support for dns resolution on handles
* handle resolution
* fix up account create
* tsconfig
* workshop handle constraints
* bring pds up to speed w handle changes
* change dns subdomain
* another lil test
* bugfix
* update dns record format
* typo
* pds: fix logging of Bearer auth subject (DID)
* xrpc-server: handle missing and mangled Content-Type better
Eg, for blob uploads.
Also adds a test for incorrect mimetype supplied for a regular endpoint
(one not allowing "*/*").
* skip failing test
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
* Add lexicon for getProfiles
* Split out presentation of profiles, implement getProfiles, test
* Cull actor/profile view lexicons down to three variants
* Map viewer in profile view, mark todos, lex tweak
* Apply basic profile view to methods, lex fix
* Switch searchTypeahead to actor-with-info view
* Switch getVotes to actor-with-info view
* Switch getMutes to actor-with-info view
* Switch getFollows and getFollowers to actor-with-info view
* Switch getRepostedBy to actor-with-info view
* Switch feed and notification views to use updated actor-with-info view
* change pkey on user table to did & rename to user_account
* migration
* tidy
* fixes suggested by bryn
* missed merge thing
* some updating hanldes
scheams
* impl + passing test
* more handle tests
* tidy
* update did doc + some new tests
* one more test
* test handle casing
* Fix did pkey down migration
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Initialize post_hierarchy index
* Build post_hierarchy index from posts
* Power getPostThread method with post hierarchy index
* Generate ancestor reply notifications, fix tests and down migration
* Generate notifications for all reply ancestors
* pds sql: add indices for feed and post aggregations
Seems like aggregations/stats/counts are likely to get changed up in the
near term future, but in the very short term, these simple index
additions yielded non-trivial speedups even at small database sizes, in
my laptop testing.
* pds migration: fix index drops in 'down'
* Scaffold xrpc-stream
* Write and test stream frames
* Write and test stream server
* Test bad stream frame parsing cases
* Proof of concept streaming on xrpc-server
* Test bad streaming endpoint
* Make frame stream to fix buffering frame bytes together
* reorg
* some lex-cli things
* better codegen for subscriptions
* scaffolding repo subscriptions
* wip
* remove repo ops
* setup notify/listen for db
* end pool to fix hanging test
* small comment in test
* basic sequencer
* some refactoring
* switch to event emitter
* reconnect on listener error
* rename notifyClient
* remove payload on channels
* pr feedback
* subscribeRepo outbox
* some cleanup
* wip
* wip
* bugfixin
* only send msgs after tx is committed
* better handle event-emitter -> generator
* max buffer size
* cleanup
* Sync-up xrpc subscriptions with current iteration of the spec
* Allow missing encoding for subscriptions
* track sequencedAt & eventType as well
* Resolve streaming type codes, streaming tests
* Fix interface for hooking into http server for streaming, fix stream routing
* Minor reorg how streaming is enabled in xrpc-server
* Server codegen for xrpc subscriptions, supporting types in xrpc-server
* fix up buffer overloading
* Rename data frame to message frame, rename subscription lex output to message
* Move body param first for streaming frames
* Tidy
* clean up evt types
* buff up tests
* missed merge conflict
* new schema
* blobs on subscriptions
* rm genned client subscription methods
* backfill limits
* testing subscription route & quick outbox bugfix
* fix up migration
* cascade on delete
* comments & naming
* fix dev env
* delete seqs on account deletion
* tidy
* fixing things up with db notify system for schemas
* fix duplicates in outbox
* tidy
* Break out of stream handler when socket closes
* fixing up some timing issues
* tidy
* terminate ws after using
* bump up timer on async reader
* fixing up NOTIFY in txns
* pr feedback
* pr bugfixes
* make order asc explicit
* bringing tests up to speed w atpagent
* bump up max listeners on sequencer
* increase timeouts for reading from generators
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Refactor @atproto/api to use the simplified AtpAgent API
* xrpc package: Export the defaultFetchHandler to reuse in api
* api package: Use the defaultFetchHandler defined in xrpc
* Update all usages of the api for the new AtpAgent
* Clear promise on thrown codepath
* Avoid updating the atpagent session until ready to return
* Lexicon updates for moderating blobs
* Add tracking of blob takedowns to moderation system
* Handle blobs in record takedown reversal
* Apply blob takedowns w/ image invalidation
* Test blob takedowns
* Implement cloudfront image invalidator
* Update lexicons for current moderation action on records and blobs
* Fix migration for postgres
* Enforce single current action per repo and blob, present current action on repo and blob
* Test single active mod action per repo, record, and blob
* Continue to resolve handles for moderated repos
* setup notify/listen for db
* end pool to fix hanging test
* small comment in test
* switch to event emitter
* reconnect on listener error
* rename notifyClient
* remove payload on channels
* pr feedback
* poor guy cant spell