* Log emails to stdout if no smtp mailer is set (useful for debugging)
* Fancier reset-password email template
* Update reset password flow to use a human-enterable OTP
* Tidy
* Run the email template through prettier
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Begin to decouple message queue consumers from the queue itself
* Tidy
* Reorganize pds message queue code out of db
* Decouple message queue, repo, and actor functionality from db instance w/ services
* Move repo processing into repo service
* Tidy
* Move repo blobs functionality into service
* Tidy
* Ensure to close message queue in all pds tests
* Fix typo
* Force specifying a db when using a service
* Reorg pds record plugins into record service
* Rename pds stream/ to event-stream/
* Tidy and fixes
* Fix typo
* Add failing test for attaching image to a post
* Tidy failing test
* Fix
* Expand the available image resize fit modes
* Add proper validation of glob-prefixed mimes (eg image/*)
* Detect and handle blobs in post embeds
* evert "Expand the available image resize fit modes"
This reverts commit 3390fbe4d091a04f9b67a2885eae19d025747fc4.
* Use fit: inside for post media
* Update tests
* Make the thumbnail optional in external embeds
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Support compression in requests to xrpc-server
* Check payload streaming payload sizes in xrpc-server
* Tidy tests
* Move MaxSizeChecker into common stream utils
* adding in banners & some lex codegen improvements for server
* fix up spacing
* couple small fixes
* client codegen & remove media embed schemas
* hook up banners
* missed a couple of lexicons
* Setup interface for image processing
* Implement getInfo() on SharpImageProcessor
* Reorganize pds image processing code
* Implement initial resize() on SharpImageProcessor
* Test sharp image processor, apply a couple fixes
* Tidy
* Implement initial pds image uri builder/signer/verifier
* Initial implementation of image processing server
* Update node types for node v18
* Add disk caching to pds image service
* Test pds image process caching, tidy
* Move pds image processor away from an interface
* Add sharp to pds build externals
* Move away from xrpc-server errors to http-errors for pds image server
* Tidy pds image exports
* Tidy
* Add auth to xrpc-server, refactor to use per-route middleware stack
* Add xrpc-server error middleware, tidy
* Tests in xrpc for for catchall errors and auth
* Tidy
* Update lex-cli for new xrpc-server auth interface
* Update pds lexicon w/ codegen for xrpc auth
* Use xrpc-server auth in pds
* Update tests for newly-required auth
* Update LexXrpcBody encoding to always be a single string with comma-separated values
* Update lexicon union-type to use as a discriminator, and add closed flag to establish if new union members may be added
* Fix to generated code for open unions
* Implement types and validation for new NIH lexicon DSL
* Update xprc and xrpc-server to use new NIH lexicon DSL
* Simplification: dont allow lexicon definitions to be refs or ref arrays
* Add 'unknown' primitive type to NIH lexicon
* Implement client codegen for NIH Lexicon
* Implement server codegen for NIH Lexicon
* Add the 'datetime' primitive type to the NIH Lexicon
* Rework lexicons to use new NIH Lexicon DSL
* Readd tokens to code generation
* Update all code to use new NIH Lexicon (all tests passing!)
* Add imports from external files to lex-cli codegen
* Do not allow records, queries, or procedures outside of the main def
* Update packages/lex-cli/src/util.ts
Co-authored-by: devin ivy <devinivy@gmail.com>
* Linter pass
* Add knownValue output to codegen
* Add comments to codegen
* Use enum and const in codegen
* Rework lexicon 'properties' structure
* Treat falsy query params as undefined
Co-authored-by: devin ivy <devinivy@gmail.com>
* Remove now-redundant param presence validation
Co-authored-by: devin ivy <devinivy@gmail.com>
* Sketching out max payload size in xrpc-server
* Fixes and testing for external payload parsing
* Apply max json payload limit to pds and plc
* Move parsing middleware into xrpc-server w/ options
* Implement tuple keyset cursor to break pagination ties, apply to feeds and assertions
* Tuple keyset cursor on rest of views
* Tidy keysets for postgres
* Add default implementation to Keyset to remove some boilerplate
* Simplify Keyset interface
* Remove dead code
* Move to new Keyset interface, incl. TimeCidKeyset
* Make pds assertion view tests deterministic
* Apply pds keyset interface to user search
* record processor
* moving records to new processor
* plugins finished
* hook up to db
* migration
* yay tests working
* Tx migration (#355)
* migrations in txs
* fix tx issue
* testing
* test deduping
* test assertions
* rm types on migrations
* dont do migrations in txs, fixes pg issue
* Include scene trends in feeds
* Tidy
* Tidy
* Sweep app.bsky schemas for standard actor declarations, remove reference from com.atproto
* Replace declarationCid on follow, assertion, confirmation records
* Sweep pds for standard app.bsky actor declarations
* Fix dev-env
* Tidy after merge
* Add a scene to the dev-env mock data
* Add 'member' to myState output of getProfile
* Await db writes in dev env mock data
Co-authored-by: devin ivy <devinivy@gmail.com>
Co-authored-by: devin ivy <devinivy@gmail.com>
* Model votes in lexicon, remove likes
* Model votes in db, setup notifs, fix schema
* Update pds logic, move likes to votes
* Codegen
* Update tests for votes
* Test vote filter by direction
* Fix dev-env
* scene creation w unique handles
* wip
* user_dids -> did_handle
* invites -> assertion/confirmation
* do all the ops on scene create
* start tests + bug fixin
* user can make requests on behalf of scene
* accepting invites
* fix schema names
* get scene profiles
* return actor type in getProfile
* scene views test
* notifications test
* patch up a few db things
* rework handle & email noramlization
* codegen createscene errors
* Add plc healthcheck, unify plc server interface with pds
* Add pds healthcheck
* Make plc test util file consistent with other packages
* Fix types in dev-env
* Type fixes
* Tidy
* Rename healthcheck routes, place pds's under /xrpc
* Segment lexicons into more specific namespaces and tighten up some naming conventions
* Update API to use new lexicons
* Update pds and dev-env to use new lexicons