+34
-4
Cargo.lock
+34
-4
Cargo.lock
························
+84
-3
crates/jacquard-common/src/cowstr.rs
+84
-3
crates/jacquard-common/src/cowstr.rs
···············
+18
-1
crates/jacquard-common/src/ident_resolver.rs
+18
-1
crates/jacquard-common/src/ident_resolver.rs
······
-6
crates/jacquard-common/src/types/datetime.rs
-6
crates/jacquard-common/src/types/datetime.rs
+4
crates/jacquard-oauth/Cargo.toml
+4
crates/jacquard-oauth/Cargo.toml
+103
-100
crates/jacquard-oauth/src/atproto.rs
+103
-100
crates/jacquard-oauth/src/atproto.rs
···························
+33
crates/jacquard-oauth/src/authstore.rs
+33
crates/jacquard-oauth/src/authstore.rs
···
+186
crates/jacquard-oauth/src/client.rs
+186
crates/jacquard-oauth/src/client.rs
···+pub async fn callback(&self, params: CallbackParams<'_>) -> Result<ClientSessionData<'static>> {
+179
-179
crates/jacquard-oauth/src/dpop.rs
+179
-179
crates/jacquard-oauth/src/dpop.rs
···············
+18
-2
crates/jacquard-oauth/src/error.rs
+18
-2
crates/jacquard-oauth/src/error.rs
······
+6
-7
crates/jacquard-oauth/src/keyset.rs
+6
-7
crates/jacquard-oauth/src/keyset.rs
············
+4
crates/jacquard-oauth/src/lib.rs
+4
crates/jacquard-oauth/src/lib.rs
···
+536
crates/jacquard-oauth/src/request.rs
+536
crates/jacquard-oauth/src/request.rs
···+// Unlike https://datatracker.ietf.org/doc/html/rfc7009#section-2.2, oauth-provider seems to return `204`.+// since an empty body cannot be deserialized, use “null” temporarily to allow deserialization to `()`.
+17
crates/jacquard-oauth/src/resolver.rs
+17
crates/jacquard-oauth/src/resolver.rs
·········
+41
-1
crates/jacquard-oauth/src/scopes.rs
+41
-1
crates/jacquard-oauth/src/scopes.rs
·········
+326
-8
crates/jacquard-oauth/src/session.rs
+326
-8
crates/jacquard-oauth/src/session.rs
···+// Account DID for this session. Assuming only one active session per account, this can be used as "primary key" for storing and retrieving this information.+// Identifier to distinguish this particular session for the account. Server backends generally support multiple sessions for the same account. This package will re-use the random 'state' token from the auth flow as the session ID.+// Base URL of the "resource server" (eg, PDS). Should include scheme, hostname, port; no path or auth info.+// Base URL of the "auth server" (eg, PDS or entryway). Should include scheme, hostname, port; no path or auth info.+// The random identifier generated by the client for the auth request flow. Can be used as "primary key" for storing and retrieving this information.+// If the flow started with an account identifier (DID or handle), it should be persisted, to verify against the initial token response.
+3
-2
crates/jacquard-oauth/src/types.rs
+3
-2
crates/jacquard-oauth/src/types.rs
······
+3
-3
crates/jacquard-oauth/src/types/request.rs
+3
-3
crates/jacquard-oauth/src/types/request.rs
······
+8
-36
crates/jacquard-oauth/src/types/response.rs
+8
-36
crates/jacquard-oauth/src/types/response.rs
······
+95
crates/jacquard-oauth/src/utils.rs
+95
crates/jacquard-oauth/src/utils.rs
···+// 256K > ES (256 > 384 > 512) > PS (256 > 384 > 512) > RS (256 > 384 > 512) > other (in original order)
+1
crates/jacquard/src/client/at_client.rs
+1
crates/jacquard/src/client/at_client.rs
···