You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sendToExchanger now shares postToExchange: a 404 throws EphemeralExchangeGoneError, any other non-2xx status throws instead of
returning the error body as the peer's reply, malformed JSON is wrapped, and
an empty body yields {} (was null).
classifyWalletInput no longer throws when a URL's request parameter is a
JSON primitive; a non-JSON request parameter is logged at debug level
without the raw value.
isDIDAuthOnlyRequest returns false for a non-object verifiablePresentationRequest instead of throwing.
processRequest refuses a WalletOnboardingQuery (and any exclusive query
type it has no processor for) with ExclusiveQueryUnsupportedError (with a queryType property; dispatch on err.name) instead of returning {} or
answering the generic half of a mixed request. New exclusiveQueryTypeOf in queryPredicates.
createEphemeralExchange resolves a relative Location against the request
URL and builds the interaction URL with the URL API.
fetchInteractionProtocols reports a non-JSON or null body as an error
instead of throwing a raw TypeError / SyntaxError.
Changed
Breaking:handleWalletInput throws UnhandledWalletInputError (with a kind property; dispatch on err.name) for an input kind with no handler,
instead of a bare Error recognizable only by its message.
Breaking:deepLinkSchemes prefixes are matched at a URL delimiter, so a
bare-origin prefix no longer matches a lookalike host.
handleWalletInput warns when a wasLink / connectCode handler is wired
without its recognizer.
exclusiveQueryOf takes a type parameter for the extension query shape it
returns; the at-most-one-query rule lives in singleQueryOfType.
ARCHITECTURE.md documents the signing path's document loader as a network seam
outside the injected FetchLike.
New toArray in queryPredicates is the one single-or-array normalizer
behind queriesOf, credentialsOf, credentialQueriesOf, the zcap and App
Connect capabilityQuery readers, the matchers, and the VP @context.
New assertExchangeResponseOk in ephemeralExchange is the one 404 / non-2xx
status rule shared by postToExchange and fetchInteractionProtocols; the
latter's non-2xx message now reads The interaction URL at <url> responded <status> <text>.
New walletApiMessageObjectOf returns the parsed wallet API message object; isWalletApiMessage wraps it, and classifyWalletInput parses raw JSON input
once instead of twice.
Removed
Breaking: the legacy (pre-appUrl) app-key re-issue path: findLegacyAppKeyCredential, reissueAppKeyCredential, appKeyCandidates'
undefined-appUrl selection, and issueAppKeyCredential's description
option. No wallet called it; its only importer was a was-react counterpart
test.
Breaking: the deprecated composeVP alias, the IVpRequest / IVpOffer
/ IVprDetails / IVprQuery / IDidAuthenticationQuery type aliases, EPHEMERAL_EXCHANGE_INTERACTION_PATH, hasAppConnectQuery, isAppConnectQuery, isWalletOnboardingQuery, and the empty declarations.d.ts.