Skip to content

Commit 83884f0

Browse files
committed
Update to JSONPath4K 3.0.0
1 parent 83e825f commit 83884f0

6 files changed

Lines changed: 30 additions & 33 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ Release 5.8.0:
6868
* Coroutines 1.10.2
6969
* Ktor 3.2.2
7070
* Kotest 6.0.0.M6
71+
- Update JsonPath4K to 3.0.0
7172
- Disable bogus ios X64 test tasks
7273
- Help XCode to get its act together
7374
- Add a manual test workflow to try different kotlin/ksp/kotest versions

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ kotest= "6.0.0.M6"
77
signum="3.17.0"
88
supreme="0.9.0"
99
uuid="0.8.1"
10-
jsonpath="2.4.1"
10+
jsonpath="3.0.0"
1111
jvmJson="20230618"
1212
jvmCbor="1.18"
1313
eupid="3.1.1-SNAPSHOT"

openid-data-classes/src/commonMain/kotlin/at/asitplus/openid/dcql/DCQLClaimsPathPointerSegment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package at.asitplus.openid.dcql
33
import at.asitplus.catching
44
import at.asitplus.jsonpath.core.NodeList
55
import at.asitplus.jsonpath.core.NodeListEntry
6-
import at.asitplus.openid.third_party.at.asitplus.jsonpath.core.plus
76
import kotlinx.serialization.Serializable
87
import kotlinx.serialization.json.jsonArray
98
import kotlinx.serialization.json.jsonObject

openid-data-classes/src/commonMain/kotlin/at/asitplus/openid/third_party/at.asitplus/jsonpath/core/NormalizedJsonPath.kt

Lines changed: 0 additions & 7 deletions
This file was deleted.

vck-openid/src/commonMain/kotlin/at/asitplus/wallet/lib/openid/RequestOptions.kt

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,38 @@
11
package at.asitplus.wallet.lib.openid
22

33
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
514
import at.asitplus.jsonpath.core.NormalizedJsonPath
6-
import at.asitplus.jsonpath.core.NormalizedJsonPathSegment
7-
import at.asitplus.jsonpath.core.NormalizedJsonPathSegment.IndexSegment
815
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
1019
import at.asitplus.openid.OpenIdConstants.SCOPE_OPENID
1120
import at.asitplus.openid.OpenIdConstants.SCOPE_PROFILE
1221
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
1434
import at.asitplus.wallet.lib.agent.PresentationRequestParameters.Flow
15-
import at.asitplus.wallet.lib.data.*
35+
import at.asitplus.wallet.lib.data.ConstantIndex
1636
import at.asitplus.wallet.lib.data.ConstantIndex.CredentialRepresentation
1737
import at.asitplus.wallet.lib.data.ConstantIndex.supportsSdJwt
1838
import at.asitplus.wallet.lib.data.ConstantIndex.supportsVcJwt
@@ -282,22 +302,7 @@ data class RequestOptionsCredential(
282302

283303
// EUDIW Reference Implementation only supports dot notation for JSONPath
284304
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()
301306

302307
private fun ConstantIndex.CredentialScheme?.prefixWithIsoNamespace(attribute: String): String = NormalizedJsonPath(
303308
NameSegment(this?.isoNamespace ?: "mdoc"),

vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/VerifiablePresentationFactory.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import at.asitplus.jsonpath.core.NormalizedJsonPath
1313
import at.asitplus.jsonpath.core.NormalizedJsonPathSegment
1414
import at.asitplus.openid.dcql.DCQLClaimsQueryResult
1515
import at.asitplus.openid.dcql.DCQLCredentialQueryMatchingResult
16-
import at.asitplus.openid.third_party.at.asitplus.jsonpath.core.plus
1716
import at.asitplus.signum.indispensable.cosef.io.ByteStringWrapper
1817
import at.asitplus.signum.indispensable.josef.JwsSigned
1918
import at.asitplus.wallet.lib.agent.SdJwtCreator.NAME_SD
@@ -24,13 +23,13 @@ import at.asitplus.wallet.lib.data.SelectiveDisclosureItem.Companion.hashDisclos
2423
import at.asitplus.wallet.lib.data.VerifiablePresentation
2524
import at.asitplus.wallet.lib.data.VerifiablePresentationJws
2625
import at.asitplus.wallet.lib.data.vckJsonSerializer
26+
import at.asitplus.wallet.lib.extensions.sdHashInput
2727
import at.asitplus.wallet.lib.jws.JwsContentTypeConstants
2828
import at.asitplus.wallet.lib.jws.JwsHeaderKeyId
2929
import at.asitplus.wallet.lib.jws.JwsHeaderNone
3030
import at.asitplus.wallet.lib.jws.SdJwtSigned
3131
import at.asitplus.wallet.lib.jws.SignJwt
3232
import at.asitplus.wallet.lib.jws.SignJwtFun
33-
import at.asitplus.wallet.lib.extensions.sdHashInput
3433
import io.github.aakira.napier.Napier
3534
import kotlin.time.Clock
3635
import kotlinx.serialization.json.JsonArray

0 commit comments

Comments
 (0)