* 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
* Enable all modules to be built shallowly, externalizing their deps
* Setup shallow builds to modify package.json main
* Hoist update-main-to-dist to separate call, fix lex-cli and plc shallow builds
* Generate sourcemaps during build
* Tidy
* Hoist new build deps up to root
* Model procedure for setting a vote on a post
* Implement app.bsky.feed.setVote() method
* Support json schema subset for parameters in lexicon and lex-cli
* Update lexicons w/ json schema parameters
* Use enum in getVotes parameters
* Support json schema subset for parameters in xrpc-server, ajv validation
* Include parameter enums in generated markdown
* Tidy
* Unify xrpc parameter md docs with inputs and outputs: show ts interfaces
* Tidy
* Rename ADX to ATP
* Remove old docs (now in atproto website repo)
* Update readme
* Update README.md
Co-authored-by: devin ivy <devinivy@gmail.com>
* A couple of @ -> AT
Co-authored-by: devin ivy <devinivy@gmail.com>
* Add lexicon doc
* Update error-handling spec
* Implement new error-behaviors in xrpc and xrpc-server packages
* Update lexicon and lex-cli packages to add xrpc error behaviors
* Generate new API and test an error behavior
* Add xrpc-cli package; implement 'new' and 'gen-md' commands
* Add gen-ts-obj to xrpc-cli
* Add gen-api command to xrpc-cli
* Add gen-server to xrpc-cli
* Update codegen from xrpc-cli to run prettier and include a banner comment
* Use 'void' instead of 'undefined' for return type
* Skip invalid schemas when generating code
* Rewrite schemas package to use new simplified schema
* Output type definitions in nested folders
* Add record schema code-generation
* Change xrcp client call() signature to be easier to use
* Update client codegen to match new xrpc call signature
* Fixes and improvements to generated record APIs
* Update generated api to use per-service instances
* Add xrpc-cli readme
* Rename fedrpc to xrpc; implement xrpc and xrpc-server packages
* Add json-schema validation to xrpc
* Add xrpc and xrpc-server to base tsconfig.json
* Fix type signature