Skip to content

Commit

Permalink
refactor: did doc default context list to did utils object
Browse files Browse the repository at this point in the history
  • Loading branch information
cpatsonakis committed Sep 16, 2024
1 parent 29612da commit 8cc9956
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@ import kotlin.js.JsExport
@OptIn(ExperimentalJsExport::class)
@JsExport
object DidUtils {

val DEFAULT_CONTEXT =
listOf("https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1")

private const val PATTERN = "^did:([^:]+):(.+)"

fun methodFromDid(did: String) = did.removePrefix("did:").substringBefore(":")

fun identifierFromDid(did: String): String? = pathFromDid(did)?.substringBefore('#')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package id.walt.did.dids.document

import id.walt.did.dids.DidUtils
import id.walt.did.dids.registrar.local.cheqd.models.job.didstates.finished.DidDocument
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.ExperimentalSerializationApi
Expand All @@ -17,7 +18,7 @@ import kotlin.js.JsName
@OptIn(ExperimentalSerializationApi::class, ExperimentalJsExport::class)
@Serializable
data class DidCheqdDocument(
@EncodeDefault @SerialName("@context") val context: List<String> = DEFAULT_CONTEXT,
@EncodeDefault @SerialName("@context") val context: List<String> = DidUtils.DEFAULT_CONTEXT,
val id: String, // did:cheqd:

val verificationMethod: List<VerificationMethod>?,
Expand All @@ -27,10 +28,6 @@ data class DidCheqdDocument(
val capabilityDelegation: List<String>?,
val keyAgreement: List<String>?,
) {
companion object {
private val DEFAULT_CONTEXT =
listOf("https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1")
}

@Serializable
data class VerificationMethod(
Expand All @@ -44,7 +41,7 @@ data class DidCheqdDocument(

@JsName("secondaryConstructor")
constructor(didDoc: DidDocument, jwk: JsonObject? = null) : this(
context = DEFAULT_CONTEXT,
context = DidUtils.DEFAULT_CONTEXT,
id = didDoc.id,
//TODO: publicKeyMultibase
verificationMethod = jwk?.let { key ->
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package id.walt.did.dids.document

import id.walt.did.dids.DidUtils
import kotlinx.serialization.*
import kotlinx.serialization.json.*
import kotlin.js.ExperimentalJsExport
Expand All @@ -10,7 +11,7 @@ import kotlin.js.JsName
@OptIn(ExperimentalSerializationApi::class, ExperimentalJsExport::class)
@Serializable
data class DidEbsiDocument(
@EncodeDefault @SerialName("@context") val context: List<String> = DEFAULT_CONTEXT,
@EncodeDefault @SerialName("@context") val context: List<String> = DidUtils.DEFAULT_CONTEXT,
val id: String, // did:ebsi:
val controller: List<String>?,
val verificationMethod: List<VerificationMethod>?,
Expand All @@ -21,8 +22,6 @@ data class DidEbsiDocument(
val keyAgreement: List<String>?,
) {
companion object {
private val DEFAULT_CONTEXT =
listOf("https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1")
private val json = Json {
explicitNulls = false
}
Expand All @@ -40,7 +39,7 @@ data class DidEbsiDocument(

@JsName("secondaryConstructor")
constructor(didDoc: DidDocument) : this(
context = DEFAULT_CONTEXT,
context = DidUtils.DEFAULT_CONTEXT,
id = didDoc["id"]!!.jsonPrimitive.content,
controller = didDoc["controller"]?.jsonArray?.map {
it.jsonPrimitive.content
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package id.walt.did.dids.document


import id.walt.did.dids.DidUtils
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.SerialName
Expand Down Expand Up @@ -28,7 +29,7 @@ import kotlin.js.JsName
@Serializable
data class DidJwkDocument(
@EncodeDefault @SerialName("@context")
val context: List<String> = DEFAULT_CONTEXT,
val context: List<String> = DidUtils.DEFAULT_CONTEXT,
val id: String, // did:jwk:${base64url-value}

val verificationMethod: List<VerificationMethod>?,
Expand All @@ -38,9 +39,6 @@ data class DidJwkDocument(
val capabilityDelegation: List<String>?,
val keyAgreement: List<String>?,
) {
companion object {
private val DEFAULT_CONTEXT = listOf("https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1")
}

@Serializable
data class VerificationMethod(
Expand All @@ -54,7 +52,7 @@ data class DidJwkDocument(

@JsName("secondaryConstructor")
constructor(did: String, didJwk: JsonObject) : this(
context = DEFAULT_CONTEXT,
context = DidUtils.DEFAULT_CONTEXT,
id = did,
verificationMethod = listOf(VerificationMethod("$did#0", "JsonWebKey2020", did, didJwk)),

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package id.walt.did.dids.document

import id.walt.did.dids.DidUtils
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.SerialName
Expand All @@ -16,7 +17,7 @@ import kotlin.js.JsName
@OptIn(ExperimentalSerializationApi::class, ExperimentalJsExport::class)
@Serializable
data class DidKeyDocument(
@EncodeDefault @SerialName("@context") val context: List<String> = DEFAULT_CONTEXT,
@EncodeDefault @SerialName("@context") val context: List<String> = DidUtils.DEFAULT_CONTEXT,
val id: String, // did:key:

val verificationMethod: List<VerificationMethod>?,
Expand All @@ -26,10 +27,6 @@ data class DidKeyDocument(
val capabilityDelegation: List<String>?,
val keyAgreement: List<String>?,
) {
companion object {
private val DEFAULT_CONTEXT =
listOf("https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1")
}

@Serializable
data class VerificationMethod(
Expand All @@ -43,7 +40,7 @@ data class DidKeyDocument(

@JsName("secondaryConstructor")
constructor(did: String, identifier: String, didKey: JsonObject) : this(
context = DEFAULT_CONTEXT,
context = DidUtils.DEFAULT_CONTEXT,
id = did,
verificationMethod = listOf(VerificationMethod("$did#$identifier", "JsonWebKey2020", did, didKey)),

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package id.walt.did.dids.document

import id.walt.did.dids.DidUtils
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.SerialName
Expand All @@ -16,7 +17,7 @@ import kotlin.js.JsName
@OptIn(ExperimentalSerializationApi::class, ExperimentalJsExport::class)
@Serializable
data class DidWebDocument(
@EncodeDefault @SerialName("@context") val context: List<String> = DEFAULT_CONTEXT,
@EncodeDefault @SerialName("@context") val context: List<String> = DidUtils.DEFAULT_CONTEXT,
val id: String, // did:web:

val verificationMethod: List<VerificationMethod>?,
Expand All @@ -26,10 +27,6 @@ data class DidWebDocument(
val capabilityDelegation: List<String>?,
val keyAgreement: List<String>?,
) {
companion object {
private val DEFAULT_CONTEXT =
listOf("https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1")
}

@Serializable
data class VerificationMethod(
Expand All @@ -43,7 +40,7 @@ data class DidWebDocument(

@JsName("secondaryConstructor")
constructor(did: String, keyId: String, didKey: JsonObject) : this(
context = DEFAULT_CONTEXT,
context = DidUtils.DEFAULT_CONTEXT,
id = did,
verificationMethod = listOf(VerificationMethod("$did#$keyId", "JsonWebKey2020", did, didKey)),

Expand Down

0 comments on commit 8cc9956

Please sign in to comment.