* nsid: reduce 'name' length from 128 chars to 63 chars
* nsid: remove 'nsid-ns' (glob pattern) from main NSID syntax validation
This special variant syntax should be handled separately. Eg, an
"nsid-ns" should not be accepted as an NSID in Lexicons looking for a
regular NSID.
* nsid: update syntax check to match domain rules
This is to be closer to actual underlying specification needs. For
example, domains are allowed to start with a digit (like 4chan.org), and
can't start *or* end with a hyphen.
Restricts the "name" part further, to be alphabetic only.
Note that starts-with-digit domains could break some lang
auto-generation variable name rules. The docs/spec strongly recommend
against such domains for use with NSID, but it seems incorrect to
restrict at the standard/lexicon level without a clear pan-language
consistent set of rules.
* did-resolver: disallow did:web with path segments
* identifier: reduce max length of DID from 8 KB to 2 KB
* identifier: add DID test with escaped ':' in identifier
* did-resolver: have prettier run on tests/
* identifier: add additional punycode test cases
* identifiers: small tweaks from review
- type in did:web comment
- include actual max DID string length in error message
* xrpc-server tests: remove digits from NSIDs
* identity: fix import and function errors
* xrpc-server tests: remove digits from NSIDs
* xrpc-server: include tests/ in prettier:fix
* xrpc-server: lint fix
* Rename getLabelsForSubjects to getLabelsForUris
* Generic method for getting profiles organized by did or aturi subject
* Batch label fetching for posts and authors in feeds and threads
* Tidy
* To avoid performing many view refreshes in a row w/ different leaders, schedule them upfront
* Apply feed threshold to with-friends and mutuals algos
* Revert increase to getRepo commit chunk size
* Alter feed threshold approach to be tighter and relative to cursor
* ✨ Allow ignoring moderation reports by subject
* 🔧 Remove unwanted package.json change
* ✨ Remove subject format specifier
* ✨ Port over ignore subject implementation to bsky package
* Revert "✨ Port over ignore subject implementation to bsky package"
This reverts commit 3c782c1805548d1ebdbbd08b68b6e92ac97fdee5.
* 🚧 Port over ignore subject implementation to bsky package
* ✨ Generate lexicons for bsky
* Temporarily skip online/valid checks for feedgens while external feedgens catch-up
* tweak algos
* hook up did resolver with cache
* Re-enable whats-hot w/ materialization
* pulling a fast one on the query optimizer
* clean up
* disable branch build
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Setup whats-hot materialized view w/ params, run view maintainer in service entrypoint
* Update whats-hot to use new materialized view, tidy
* Update migration to create with no data
* Revert whats-hot migration change for no data
* Bump refresh rate for view down to 1min
* Better feedgen errors in getFeed and getFeedGenerator
* Support handler output headers in codegen
* Support handler output headers in xrpc-server
* Implement server-timing helpers and apply them to getFeed
* fix codegen issue
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
This makes the whole type of bugs like #1080 impossible,
Also fixes `app.bsky.feed.defs` in the bsky package as it was now throwing errors
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>
* move handle resolution to .well-known
* required handle on resolveHandle
* rm test
* tidy
* tidy
* fix up appview
* missing await
* atproto-handle -> atproto-did
* shift did & handle resolution to new identity package
* fix up network mocks
* fix up another test
* one more
* drop lex comment
* rm handle param
* Update packages/identity/src/handle/index.ts
Co-authored-by: devin ivy <devinivy@gmail.com>
* still temporarily support xrpc handle resolution
* typo
* ensure return value is a string
---------
Co-authored-by: devin ivy <devinivy@gmail.com>
Lexicon required properties check wasn't rebased onto main
which introduced invalid lexicon(creator field was not defined despite being in the required fields list)
* Normalize http headers before sending xrpc requests
This isn't fully upto HTTP Spec, but it solves #1029.
The `normalizeHeaders` function deduplicates HTTP headers,
but it doesn't take into account the rules from the rfc*
When using `AtpAgent` the `authorization` header supplied
to the xrpc call will take precedence over the internal one
Mentioned Rfc: https://www.rfc-editor.org/rfc/rfc9110#appendix-A
* Fix xrpc call headers double normalization
* Add lexicon LexXrpcParameters, Object required properties check
Now schemas like the one below won't validate
```
...
{
"type": "object",
"required": ["foo"],
"properties": {}
}
...
````
* Fix lexicons with missing required fields
* Improve lexicon user type error messages and document why it needs to be `z.custom`
* actor type in profiles
* skeleton lex
* more schemas
* first pass at feed composition
* cleanup services
* more tidying
* fix up tests
* bookmarking schemas
* make feeds records instead of actors
* some cleanup
* fleshing out feeds as records
* wip
* working into cfg & dev-env
* fix appview test util
* bookmarking + views
* tidy
* add displayName
* db migration
* wip test
* blob processing
* first test working!
* Sync-up snapshots
* wip
* Fix pds ctx type
* Sync lexicons on pds and api
* wip
* fully refactor
* Prep for open union in reply data in bsky appview, sync-up snapshots
* msgs & ports
* Make pds did cache sqlite-friendly
* Start scaffolding more feedgen tests
* revamp appview tests
* revamp pds tests
* merge in dev env utils
* ensure plc close
* add feed gen to dev-env
* second feed gen
* named feeds in mock
* fix issue with dev-env pds appview
* update bsky snaps
* Flesh-out some feed gen tests
* Fix feed gen reply test
* Test feed bookmarking
* update skeleton defs
* merge
* Sync-up pds with updated feed skeleton contract
* Fix feed bookmark viewer state
* add feed embeds
* Test inaccurate feed gen repost
* Tighten some error behaviors around feed gens
* generator view in record embed
* test
* bookmarked/subscribed -> saved
* updated snaps
* name & descript on alices feed
* add like counts
* proposed lex
* tweak
* fetch feed generator details
* add describeFeedGen to dev-env
* adds tests for getFeedGenerator
* Update lexicons/app/bsky/feed/getFeedGenerator.json
Co-authored-by: devin ivy <devinivy@gmail.com>
* update describe
* add cid to feed gen view
* add alice feed gen avatar
* generator displayName required
* update snaps
* Fix dev env public url (#1058)
* Fix the public url used by dev-env
* move publicUrl location
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
* add defs for feed gen prefs & decrease displayName length
* build branch
* updated how saved feeds works
* cleanup lex
* mount route
* Starter bsky algos (#1046)
* implement some starter bsky algos
* add team dids
* tidy
* add quotepost check to whats hot classic
* tests
* carve out feedgen section of pds
* apply limits
* add describeFeedGenerator route
* Whats hot new (#1060)
* map out new whats hot
* only available in postgres
* Fix dev env public url (#1058)
* Fix the public url used by dev-env
* move publicUrl location
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
* add defs for feed gen prefs & decrease displayName length
* build branch
* updated how saved feeds works
* build algos branch
* remove relative imports to @atproto/api
* update hot classic name
* rm build
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* v0.3.6
* v0.3.7
* v0.1.10
* update name of skyline
* build branch
* aws build
* getFeedGenerators test
* For now only use new replyRef union for custom feeds, for compat
* Don't use replyRef union on new feeds yet
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>