> [!WARNING] > This is currently a WIP 🚧 Under Construction 🚧 - Unsure about the "No peer dependencies" requirement - At a minimum DX cannot include determining version compatibility - Add package dependencies - Can we make `jws_signer` work? - No circular dependencies requirement # Web5 API Design <!-- omit in toc --> # Terminology - *Package*: deliverable artifact. - *Interface*: contract definition, excluding implementation. - *Class*: composition of data members, instance methods, and static methods. # Packages - `credentials` - ... # `credentials` ## Interfaces N/A ## Classes ### `VerifiableCredential` #### Data Members ...todo #### Instance Methods - `sign(bearer_did: BearerDid, key_selector?: KeySelector) -> string` 1. create JWT claims 2. call `Jwt::sign(bearer_did, key_selector, claims)` #### Static Methods - `decode_vcjwt(vcjwt string) -> DecodedVcJwt` - `verify_vcjwt(vcjwt string) -> DecodedVcJwt` ### `DecodedVcJwt` #### Data Members ...todo #### Instance Methods - `verify()` #### Static Methods ...todo ## Functions N/A # `dids` ## Interfaces todo... ## Classes ### `Document` #### Data Members todo... #### Instance Methods - `select_key(key_selector?: KeySelector) -> VerificationMethod` #### Static Methods todo... ### `VerificationMethod` ## Functions todo... # `jwt` ## Classes ### `Jwt` #### Static Methods - `sign(bearer_did, key_selector, claims)`