* make lint
* Update packages/api/tests/rich-text-detection.test.ts
Co-authored-by: Eric Bailey <git@esb.lol>
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* rm tables
* rm event-stream & proxied
* Remove appview services, move label service to pds
* only proxy appview stuff
* delete more tables
* Start removing message dispatched from pds
* more syncing-up removal of message dispatcher in pds
* merged
* remove feedgens from pds, remove getPopular
* remove unused image helper from pds
* fixing compiler errors
* clean up sharp
* rm label service
* first pass on cleaning up tests
* fix up a bunch of tests
* moderation view tests
* last admin tests
* got a lil overzealous in deletes
* clean up unused cfg
* clean up label table
* simplify admin repo search query/logic
* tidy pds entrypoint
* in-progress pds config changes
* cfg fiddling
* finish cleaning up cfg/ctx
* comments
* building
* pds prefix on env
* test env
* collapse pds migrations down into a single migration
* fix up dev-env
* tidy
* cleanup
* fix pds admin tests
* fix handle test
* fix pds proxy tests
* fix subscribe repos test
* fix sqlite config in pds tests
* add sqlite clause in sequencer-leader
* fix actor search w/ sqlite on pds
* fixes
* fix dev env build
* update pds service entrypoint
* simple env example
* make takedown ids opaque identifiers in the pds
* use pds routes for api tests
* update pds dockerfile with volume and correct port env var
* add a couple env vars to example
* add comments to env example
* @atproto/pds 0.2.0-beta.0
* @atproto/aws 0.0.1-beta.0
* appview did
* @atproto/aws 0.0.1
* enable logs by default
* update env example
* bugfixing sandbox issues
* consistency in pds env var name for appview url
* log on pds start and stop, configure version at runtime
* @atproto/pds 0.2.0-beta.1
* fix semver matching for pds beta version
* v0.2.0-beta.2
* default invites to being not required
* fix flaky test
* limit db connections in tests
* publish 0.2.0-beta.d3
* fix invite required parsing
* @atproto/pds 0.2.0-beta.5
* Proxy getPopularFeedGenerators on simplified pds (#1222)
proxy getPopularFeedGenerators on pds
Co-authored-by: dholms <dtholmgren@gmail.com>
* tidy migrations
* fix service entry
* bump version
* change auth order
* bump version
* bump version
* add upgradeRepoVersion & fallback url for cdn
* bump version
* merging
* merge pds
* building dev-env
* merging tests
* merge service entry
* test fixing
* tidy
* fix admin search
* tidy
* tidy
* add snap for getListFeed
* add backup nameserver cfg
* tidy + pr feedback
* tidy
* tidy env
* bit more
* re-add dotenv to root package.json
* fix dep
* build branch
* fix tests
* Refactor tests to make better use of dev-env (#1690)
* refactor pds tests to use dev env
* refactor bsky tests
* fix pds test
* tidy bsky tests
* build pds correctly
* fix entry point
* default logging to false (for now)
* format service entry
* Switch takedown ids back to ints on pds distribution (#1694)
* switch takedown ids back to ints, consistent with live pds
* tidy/fix migration
* update migration for sqlite
* export moderation action reversal
* takedown tests
* dont build branch
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* lexicons
* codegen
* email templates
* request routes
* impl
* migration
* tidy
* tests
* tidy & bugfixes
* format
* fix api test
* fix auth test
* codegen
* add unique constraint
* Add email confirmed to AtpSessionData
* interop test files (#1529)
* initial interop-test-files
* crypto: switch signature-fixtures.json to a symlink
* syntax: test against interop files
* prettier
* Update interop-test-files/README.md
Co-authored-by: Eric Bailey <git@esb.lol>
* disable prettier on test vectors
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: dholms <dtholmgren@gmail.com>
* add getSuggestedFollowsByActor (#1553)
* add getSuggestedFollowsByActor lex
* remove pagination
* codegen
* add pds route
* add app view route
* first pass at likes-based suggested actors, plus tests
* format
* backfill with suggested_follow table
* combine actors queries
* fall back to popular follows, handle backfill differently
* revert seed change, update test
* lower likes threshold
* cleanup
* remove todo
* format
* optimize queries
* cover mute lists
* clean up into pipeline steps
* add changeset
* List feeds (#1557)
* lexicons for block lists
* reorg blockset functionality into graph service, impl block/mute filtering
* apply filterBlocksAndMutes() throughout appview except feeds
* update local feeds to pass through cleanFeedSkeleton(), offload block/mute application
* impl for grabbing block/mute details by did pair
* refactor getActorInfos away, use actor service
* experiment with moving getFeedGenerators over to a pipeline
* move getPostThread over to a pipeline
* move feeds over to pipelines
* move suggestions and likes over to pipelines
* move reposted-by, follows, followers over to pipelines, tidy author feed and post thread
* remove old block/mute checks
* unify post presentation logic
* move profiles endpoints over to pipelines
* tidy
* tidy
* misc fixes
* unify some profile hydration/presentation in appview
* profile detail, split hydration and presentation, misc fixes
* unify feed hydration w/ profile hydration
* unify hydration step for embeds, tidy application of labels
* setup indexing of list-blocks in bsky appview
* apply list-blocks, impl getListBlocks, tidy getList, tests
* tidy
* update pds proxy snaps
* update pds proxy snaps
* fix snap
* make algos return feed items, save work in getFeed
* misc changes, tidy
* tidy
* fix aturi import
* lex
* list purpose
* lex gen
* add route
* add proxy route
* seed client helpers
* tests
* mutes and blocks
* proxy test
* snapshot
* hoist actors out of composeThread()
* tidy
* tidy
* run ci on all prs
* format
* format
* fix snap name
* fix snapsh
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Improve xrpc server error handling (#1597)
improve xrpc server error handling
* Remove appview proxy runtime flags (#1590)
* remove appview proxy runtime flags
* clean up proxy tests
* getPopular hotfix (#1599)
dont pass all params
* Interaction Gating (#1561)
* lexicons for block lists
* reorg blockset functionality into graph service, impl block/mute filtering
* apply filterBlocksAndMutes() throughout appview except feeds
* update local feeds to pass through cleanFeedSkeleton(), offload block/mute application
* impl for grabbing block/mute details by did pair
* refactor getActorInfos away, use actor service
* experiment with moving getFeedGenerators over to a pipeline
* move getPostThread over to a pipeline
* move feeds over to pipelines
* move suggestions and likes over to pipelines
* move reposted-by, follows, followers over to pipelines, tidy author feed and post thread
* remove old block/mute checks
* unify post presentation logic
* move profiles endpoints over to pipelines
* tidy
* tidy
* misc fixes
* unify some profile hydration/presentation in appview
* profile detail, split hydration and presentation, misc fixes
* unify feed hydration w/ profile hydration
* unify hydration step for embeds, tidy application of labels
* setup indexing of list-blocks in bsky appview
* apply list-blocks, impl getListBlocks, tidy getList, tests
* tidy
* update pds proxy snaps
* update pds proxy snaps
* fix snap
* make algos return feed items, save work in getFeed
* misc changes, tidy
* tidy
* fix aturi import
* initial lexicons for interaction-gating
* add interactions view to post views
* codegen
* model bad reply/interaction check state on posts
* initial impl for checking bad reply or interaction on write
* omit invalid interactions from post thread
* support not-found list in interaction view
* hydrate can-reply state on threads
* present interaction views on posts
* misc fixes, update snaps
* tidy/reorg
* tidy
* split interaction gating into separate record in lexicon
* switch interaction-gating impl to use separate record type
* allow checking reply gate w/ root post deletion
* fix
* initial gating tests
* tighten gated reply views, tests
* reply-gating list rule tests
* allow custom post rkeys within window
* hoist actors out of composeThread()
* tidy
* update thread gate lexicons, codegen
* lex fix
* rename gate to threadgate in bsky, update views
* lex fix
* improve terminology around reply validation
* fix down migration
* remove thread gates on actor unindexing
* add back .prettierignore
* tidy
* run ci on all prs
* syntax
* run ci on all prs
* format
* fix snap
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* order by `like.indexedAt` in app view (#1592)
* order by like.indexedAt
* use keyset for ordering
* simplify
* ok ok ok I get it now
* Update packages/bsky/src/api/app/bsky/feed/getActorLikes.ts
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>
---------
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>
* Remove default value for post table invalid attrs (#1601)
remove default value for post table attrs
* Version packages (#1602)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* update Bluesky PBLLC to PBC (Public Benefit Corporation) (#1600)
* Temporarily disable filtering `invalidReplyRoot`s (#1609)
temporarily disable invalidReplyRoot check
* fix syntax docs (#1611)
* Version packages (#1612)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Allow bypass on ratelimit ip (#1613)
allow bypass on ratelimit ip
* Write rate limits (#1578)
* get rate limit ip correctly
* add write rate-limits
* Tweak createSession rate limit key (#1614)
tweak create session rl key
* Filter preferences for app passwords (#1626)
filter preferences for app passwords
* Tweak rate limit setup for multi rate limit routes (#1627)
tweak rate limit setup for multi rate limit routes
* Remove zod from xrpc-server error handling (#1631)
remove zod from xrpc-server error handling check
* Enforce properties field on lexicon object schemas (#1628)
* add empty properites to thread gate schema fragments
* tweak lexicon type
* Add feed-vew and thread-view preferences (#1638)
* Add feed and thread preference lexicons
* Add feed-view and thread-view preference APIs
* Add changeset for new preferences (#1639)
Add changeset
* Version packages (#1640)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Disable getAccountInviteCodes for app passwords (#1642)
disable getAccountInviteCodes for app passwords
* remove cruft packages (uri, nsid, identifier) (#1606)
* remove @atproto/nsid (previously moved to syntax)
* remove @atproto/uri (previously moved to syntax)
* remove @atproto/identifier (previously moved to syntax)
* bump lockfile to remove old packages
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* api: update login/resumeSession examples in README (#1634)
* api: update login/resumeSession examples in README
* Update packages/api/README.md
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>
---------
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>
* small syntax lints (#1646)
* lint: remove unused imports and variables
* lint: prefix unused args with '_'
* eslint: skip no-explicit-any; ignore unused _var (prefix)
* eslint: explicitly mark ignores for tricky cases
* indicate that getPopular is deprecated (#1647)
* indicate that getPopular is deprecated
* codegen for deprecating getPopular
* tidy up package.json and READMEs (#1649)
* identity: README example and tidy
* tidy up package metadata (package.json files)
* updated README headers/stubs for several packages
* crypto: longer README, with usage
* syntax: tweak README
* Apply suggestions from code review
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: devin ivy <devinivy@gmail.com>
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: devin ivy <devinivy@gmail.com>
* Improve the types of the thread and feed preferences APIs (#1653)
* Improve the types of the thread and feed preferences APIs
* Remove unused import
* Add changeset
* Version packages (#1654)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Disable pds appview routes (#1644)
* wip
* remove all canProxyReadc
* finish cleanup
* clean up tests
* fix up tests
* fix api tests
* fix build
* fix compression test
* update image tests
* fix dev envs
* build branch
* fix service file
* re-enable getPopular
* format
* rm unused sharp code
* dont build branch
* auto-moderator tweaks: pass along record URI, create report for takedown action (#1643)
* auto-moderator: include record URI in abyss requests
* auto-moderator: log attempt at hard takedown; create report as well
The motivation is to flag the event to mod team, and to make it easier
to confirm that takedown took place.
* auto-mod: typo fix
* auto-mod: bugfixes
* bsky: always create auto-mod report locally, not pushAgent (if possible)
* bsky: fix auto-mod build
* bsky: URL-encode scanBlob call
* Clear follow viewer state when blocking (#1659)
* clear follow viewer state when blocking
* tidy
* add `tags` to posts (#1637)
* add tags to post lex
* kiss
* add richtext facet and validation attrs
* add tag validation attrs to post
* codegen
* add maxLength for tags, add description
* validate post tags on write
* add test
* handle tags in indexer
* add tags to postView, codegen
* return tags on post thread view
* format
* revert formatting change to docs
* use establish validation pattern
* add changeset
(cherry picked from commit fcb6fe7c26144662f791c7900afcd84c7bf1be6b)
* remove tags from postView, codegen
* remove tags from thread view
* revert unused changes
* Version packages (#1664)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* merge
* Reverse order of blocks from sync.getRepo (#1665)
* reverse order of blocks from sync.getRepo
* write to car while fetching next page
* Add hashtag detection to richtext (#1651)
* add tag detection to richtext
* fix duplicate tag index error
* add utils
* fix leading space index failures, test for them
* add changeset
* Version packages (#1669)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* proposed new search lexicons (#1594)
* proposed new search lexicons
* lexicons: lint
* lexicons: fix actors typo
* lexicons: camelCase bites again, ssssss
* lexicons: add 'q' and mark 'term' as deprecated for search endpoints
* codegen for search lexicon updates
* bsky: prefer 'q' over 'term' in existing search endpoints
* search: bugfix
* lexicons: make unspecced search endpoints return skeleton obj
* re-codegen for search skeleton obj
* Disable pds appview indexing (#1645)
* rm indexing service
* remove message queue & refactor background queue
* wip
* remove all canProxyReadc
* finish cleanup
* clean up tests
* fix up tests
* fix api tests
* fix build
* fix compression test
* update image tests
* fix dev envs
* build branch
* wip - removing labeler
* fix service file
* remove kysely tables
* re-enable getPopular
* format
* cleaning up tests
* rm unused sharp code
* rm pds build
* clean up tests
* fix build
* fix build
* migration
* tidy
* build branch
* tidy
* build branch
* small tidy
* dont build
* Refactor PDS appview routes (#1673)
move routes around
* Strip leading `#` from from detected tag facets (#1674)
ensure # is removed from facets
* Version packages (#1675)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Proxy search queries (#1676)
* proxy search
* tweak profile resp
* fix admin.searchRepos
* add mock mailer
* Fix to daniel's MOCKERY of a mock mailer
* Don't allow non-verified email updates until app feature is out (#1682)
stricter updating email until app feature is out
* changesets
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: bnewbold <bnewbold@robocracy.org>
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Fix to handle duplicate preference key entries
* Add personal details preference API to sdk
* Add Array.prototype.findLast() type declaration
* Move interface declaration to ensure it's included in other package builds
* Add self-label schemas
* switch around array and union for self-labels
* apply self-labels to post and profile views
* test for self labels in pds
* apply self-labels to post and profile views in bsky appview
* test for self labels in bsky appview
* update pds proxied test snapshots
* Add support for self-labels to the mdoeration sdk
* Disable unknown-labeler filtering until 3P support is added
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* First pass on label definitions and reference-doc generation for them
* Tune labels
* Drop the 'csam' label in favor of using !hide
CSAM is an extremely delicate issue. Moderators must be careful to
remove it from the system without calling direct attention to it.
Using the generic !hide achieves the same effect while obscuring
the reason for the removal. Server and AppView bans will then be
employed (along with any other needed mechanisms) to strip the
content from the network.
There is also a 'false accusation' concern with using the csam
label. Fingerprinting techniques and AI are used to scan for csam.
These are capable of producing false positives which will then be
reverted after human review. The reputational damage caused by a
false positive could be severe, so we want to be careful about any
system which might publicize a false positive.
* Add label definition code generation
* Implement all type signatures for moderation
* Complete a first pass on the labeling sdk
* Add post-moderation test suite
* Add post moderation behavior documentation
* Add self-post behaviors
* Improve post moderation doc
* Tune up the post moderation doc
* Tune up the post moderation doc
* Tune up the post moderation doc
* Simplify the post moderation behavior descriptions
* More behavior description tuneup
* Add profile moderation final behaviors and tests
* Improve generated post-moderation-behaviors doc
* Add profile moderation behaviors doc
* Test muted-by-list specifically
* Fixes to label descriptions
* Fix to muted-by-list behavior
* Dont blur account in moderateProfile() when muting
* Tune label copy
* Apply post embed blurring when account is marked with blurmedia label
* Fix output signature
* Fixes to blocking behavior
* Rename LabelDefinitionPreference to LabelPreference
* Update docs
* Fix test
* Fix: self-harm should blur media only
* Fixes to tests
* Improve label copy
* Remove all labels that do not have a specific policy
Communicating moderation policies with active users is important.
This PR originally included labels which were proposed but did not
yet have policies. While we didn't intend to use them until a
policy was established, I decided it's better to hold off putting
them in the code until we're sure about them. They can be found in
backup files prefixed with "proposed-".
* remove return in test
* couple of fixups in other pacakges
* Add dummy checks to declaration and follow app migrations, remove paranoid join
* update db nsid migration
* Ensure there are writes in follow app migration
* Add dumy check to votes-to-likes app migration, tidy
* Ensure there are writes in vote-to-like app migration
* update migration name
* pr feedback
* count utf8 & grapheme length
* add maxUtf8
* siwtch max semantics
* plural
* update post schema
* added bytes & cid refs
* add ipld<>json
* fixin up a could tings
* Add app.bsky.richtext.facet, replace post entities with facets
* plural actors
* wip
* Setup backlinks table on pds
* wip
* send & recieve cids/bytes with xrpc
* Track backlinks when indexing records on pds
* handle ipld vals in xrpc server
* added cids & bytes to codegen
* In createRecord, add deletions to avoid duplicate likes/follows/reposts
* Tests and fixes for prevention of dupe follows, likes, reposts
* Backlink migration tidy
* cleanup dag json parser
* Fix dupe backlink inserts
* Tidy
* blob refs + codegen
* Make profile displayName optional
* Test view and updateProfile for empty display name
* working into pds
* Make aggregate counts optional on post and profile views
* Make viewer state optional on post view for consistency
* Remove deprecated myState field on profile view
* Tidy repo method descriptions
* tests & types & fixes
* Implementation and tests for putRecord
* Remove updateProfile method
* Update repo service so that head can be taken for update externally
* Lex updates for compare-and-swap records/commits
* Add error to lex for bad repo compare-and-swaps
* Improve update-at-head thru repo service
* common package
* Implement and test compare-and-swaps on repo write methods
* Use lex discriminator for applyWrites
* Remove post entity/facet index
* Update lex descriptions to clarify repo write semantics
* Make deleteRecord idempotent w/ tests
* cleanup
* fix things up
* adding more formats
* tests
* updating schema
* Only generate tid rkeys on pds, support literal rkeys on client
* Add backlink indexes
* Update format of post embed views, fix external uri validation
* fixing up tests
* Include embeds on record embeds
* cleanup
* Notify users when they are quoted
* Remove determineRkey indirection
* fix api tests
* support concatenated cbor
* integrating to server
* re-enable tests
* fix up tests
* Thread compare-and-swaps down into repo service rather than use pinned storage
* Tidy
* Update packages/common/tests/ipld-multi.test.ts
Co-authored-by: devin ivy <devinivy@gmail.com>
* Update packages/lexicon/src/validators/formats.ts
Co-authored-by: devin ivy <devinivy@gmail.com>
* pr feedback
* pr feedback
* Add postgres-specific migration path for missing profile display names
* Tidy/clarify deep embeds
* Tidy
* rm unused escape
* decrease crud race count
* update subscribeRepos lexicon
* Fix applyWrite lexicon re: collection fields
* sign post event type
* update cids & bytes json encoding
* update lex blob & cid-link types
* updated codegen & pds
* number -> float
* missed a couple
* remove old image constraints
* pr feedback + descripts
* no hardcoded port numbers
* remove separate tooLarge evt
* fix dumb build error
* fixin gup lex + xrpc server
* better parsing of message types
* dont mutate body in subscription
* bugfix in subscription
* rm commented out code
* init feature branch
* undo
* Remove old lexicons
* Remove creator from profile view
* wip
* rework seqs
* fixed up tests
* bug fixing
* sequence handles & notify in dbTxn
* tidy
* update lex to include times
* test syncing handle changes
* one more fix
* handle too big evts
* dont thread sequencer through everything
* Split common into server vs web-friendly versions
* Make lexicon, identifier web-safe using common-web
* Switch api package to be a browser build, fix identifier package for browser bundling
* Fix pds and repo for lexicon package changes, tidy
* Make common-web a browser build, tidy
* fixing up deps
* fix up test
* turn off caching in actions
* Standardize repo write interfaces around repo input
* Update repo write endpoints for repo input field
* Remove scene follows during app migration
* API package updates (#712)
* Add bsky agent and various sugars to the api package
* Add richtext library to api package
* Update richtext to use facets and deprecate entities
* Update richtext to use utf8 indices
* Richtext converts deprecated entity indices from utf16 locations to utf8 locations
* Add note about encodings in the lexicon
* Add RichText facet detection
* Remove dead code
* Add deprecation notices to lexicons
* Usability improvements to RichText
* Update the api package readme
* Add RichText#detectFacetsWithoutResolution
* Add upsertProfile to bsky-agent
* Update packages/pds/src/api/com/atproto/repo/applyWrites.ts
Co-authored-by: devin ivy <devinivy@gmail.com>
* pr feedback
* fix flaky timing streaming tests
* simplify emptyPromise
* fixed up open handles
* fix missed repo syntax
* fix error in test from fkey constraint
* fix another api agent bug
* Embed consistency, add complex record embed
* Tidy embed lex descriptions
* rename pg schemas
* use swc for jest
* fix up deps
* cleanup
* Update pds indexing, views, tests for complex record embeds
* fixing up profile view semantics
* wip
* update snaps
* Rename embed.complexRecord to embed.recordWithMedia
* Tidy aroud record w/ media embeds
* Add grapheme utilities to api RichText (#720)
Co-authored-by: dholms <dtholmgren@gmail.com>
* Fix: app.bsky.feed.getPostThread#... to app.bsky.feed.defs#... (#726)
* Update bskyagent to use repo param
* Minor typing fix
* Add exports to api package: blobref & lex/json converters (#727)
* Add exports to api package: BlobRef & lex/json converters
* Add an example react-native fetch handler
* Switch all lingering references of recordRef to strongRef
* Update lexicon for richtext facets to have multiple features, byte slice rather than text slice
* Implement multi-feature richtext facets on pds
* Update api package to use updated richtext facets
* Minor fixes to admin repo/record views
* Fix app migration exports, remove old app migration
* Fix: sort richtext facets so they can render correctly
* Disable app migration dummy checks that don't work on live deploy
* Optimize lex de/serialization using simple checks
* Tidy comment typos
* App migration to cleanup notifications for likes, follows, old scene notifs
* Fix notification reason for change from vote to like
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: Paul Frazee <pfrazee@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
* introducing appcontext & pds class
* revamp rest of server + auth
* revamp tests
* add to dev-env
* fix api test
* add start method to pds
* hook up terminator before
* PLC AppContext (#425)
* convert plc server to app context
* add start method to plc
* hooke up terminator on server setup
* fix test
* cleanup & pr feedback
* fix up one more test
* Fix the generated type for encoding when the value is */* (close#391)
* Add 'toKnownError' test and fix named error for updateProfile
* Improve blob errors
* 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
* Update lexicons of xprc procedures to avoid using query params when possible
* Update code generated by lex-cli to reduce param counts
* Update all API usages to new signatures
* Fix readme
* Remove params from postNotifiactionsSeen lexicon schema
* Move codegen api client into its own directory
* Implement session-aware client for pds
* Test pds session client, fixes
* Use pds lexicon rather than api types where possible
* Tidy