|
1 | 1 | package at.asitplus.wallet.lib.openid |
2 | 2 |
|
3 | 3 | import at.asitplus.data.NonEmptyList.Companion.toNonEmptyList |
4 | | -import at.asitplus.dif.* |
| 4 | +import at.asitplus.dif.Constraint |
| 5 | +import at.asitplus.dif.ConstraintField |
| 6 | +import at.asitplus.dif.ConstraintFilter |
| 7 | +import at.asitplus.dif.DifInputDescriptor |
| 8 | +import at.asitplus.dif.FormatContainerJwt |
| 9 | +import at.asitplus.dif.FormatContainerSdJwt |
| 10 | +import at.asitplus.dif.FormatHolder |
| 11 | +import at.asitplus.dif.InputDescriptor |
| 12 | +import at.asitplus.dif.PresentationDefinition |
| 13 | +import at.asitplus.dif.RequirementEnum |
5 | 14 | import at.asitplus.jsonpath.core.NormalizedJsonPath |
6 | | -import at.asitplus.jsonpath.core.NormalizedJsonPathSegment |
7 | | -import at.asitplus.jsonpath.core.NormalizedJsonPathSegment.IndexSegment |
8 | 15 | import at.asitplus.jsonpath.core.NormalizedJsonPathSegment.NameSegment |
9 | | -import at.asitplus.openid.* |
| 16 | +import at.asitplus.openid.AuthenticationRequestParameters |
| 17 | +import at.asitplus.openid.CredentialFormatEnum |
| 18 | +import at.asitplus.openid.OpenIdConstants |
10 | 19 | import at.asitplus.openid.OpenIdConstants.SCOPE_OPENID |
11 | 20 | import at.asitplus.openid.OpenIdConstants.SCOPE_PROFILE |
12 | 21 | import at.asitplus.openid.OpenIdConstants.VP_TOKEN |
13 | | -import at.asitplus.openid.dcql.* |
| 22 | +import at.asitplus.openid.TransactionData |
| 23 | +import at.asitplus.openid.dcql.DCQLClaimsPathPointer |
| 24 | +import at.asitplus.openid.dcql.DCQLClaimsPathPointerSegment |
| 25 | +import at.asitplus.openid.dcql.DCQLClaimsQueryList |
| 26 | +import at.asitplus.openid.dcql.DCQLCredentialQueryIdentifier |
| 27 | +import at.asitplus.openid.dcql.DCQLCredentialQueryInstance |
| 28 | +import at.asitplus.openid.dcql.DCQLCredentialQueryList |
| 29 | +import at.asitplus.openid.dcql.DCQLIsoMdocClaimsQuery |
| 30 | +import at.asitplus.openid.dcql.DCQLIsoMdocCredentialMetadataAndValidityConstraints |
| 31 | +import at.asitplus.openid.dcql.DCQLJsonClaimsQuery |
| 32 | +import at.asitplus.openid.dcql.DCQLQuery |
| 33 | +import at.asitplus.openid.dcql.DCQLSdJwtCredentialMetadataAndValidityConstraints |
14 | 34 | import at.asitplus.wallet.lib.agent.PresentationRequestParameters.Flow |
15 | | -import at.asitplus.wallet.lib.data.* |
| 35 | +import at.asitplus.wallet.lib.data.ConstantIndex |
16 | 36 | import at.asitplus.wallet.lib.data.ConstantIndex.CredentialRepresentation |
17 | 37 | import at.asitplus.wallet.lib.data.ConstantIndex.supportsSdJwt |
18 | 38 | import at.asitplus.wallet.lib.data.ConstantIndex.supportsVcJwt |
@@ -282,22 +302,7 @@ data class RequestOptionsCredential( |
282 | 302 |
|
283 | 303 | // EUDIW Reference Implementation only supports dot notation for JSONPath |
284 | 304 | private fun String.splitByDotToJsonPath(): String = |
285 | | - NormalizedJsonPath(split(".").map { NameSegment(it) }).toDotNotation() |
286 | | - |
287 | | - private fun NormalizedJsonPath.toDotNotation(): String = |
288 | | - "$" + segments.joinToString("") { it.toDotNotation() } |
289 | | - |
290 | | - private fun NormalizedJsonPathSegment.toDotNotation(): CharSequence = when (this) { |
291 | | - is IndexSegment -> toString() |
292 | | - is NameSegment -> if (memberName.isValidForDotNotation()) ".$memberName" else toString() |
293 | | - } |
294 | | - |
295 | | - private fun String.isValidForDotNotation(): Boolean = |
296 | | - firstOrNull().isLetterOrUnderscore() && all { it.isLetterOrDigit() || it.isUnderscore() } |
297 | | - |
298 | | - private fun Char?.isLetterOrUnderscore(): Boolean = if (this == null) false else (isLetter() || this.isUnderscore()) |
299 | | - |
300 | | - private fun Char.isUnderscore(): Boolean = this == '_' |
| 305 | + NormalizedJsonPath(split(".").map { NameSegment(it) }).toShorthandNameSegmentNotation() |
301 | 306 |
|
302 | 307 | private fun ConstantIndex.CredentialScheme?.prefixWithIsoNamespace(attribute: String): String = NormalizedJsonPath( |
303 | 308 | NameSegment(this?.isoNamespace ?: "mdoc"), |
|
0 commit comments