@pagopa/io-react-native-wallet 0.28.0 → 0.28.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/lib/commonjs/credential/issuance/03-start-user-authorization.js +3 -0
  2. package/lib/commonjs/credential/issuance/03-start-user-authorization.js.map +1 -1
  3. package/lib/commonjs/credential/issuance/04-complete-user-authorization.js +5 -3
  4. package/lib/commonjs/credential/issuance/04-complete-user-authorization.js.map +1 -1
  5. package/lib/commonjs/credential/presentation/01-start-flow.js +12 -23
  6. package/lib/commonjs/credential/presentation/01-start-flow.js.map +1 -1
  7. package/lib/commonjs/credential/presentation/02-evaluate-rp-trust.js +4 -2
  8. package/lib/commonjs/credential/presentation/02-evaluate-rp-trust.js.map +1 -1
  9. package/lib/commonjs/credential/presentation/03-get-request-object.js +31 -43
  10. package/lib/commonjs/credential/presentation/03-get-request-object.js.map +1 -1
  11. package/lib/commonjs/credential/presentation/04-retrieve-rp-jwks.js +32 -0
  12. package/lib/commonjs/credential/presentation/04-retrieve-rp-jwks.js.map +1 -0
  13. package/lib/commonjs/credential/presentation/05-verify-request-object.js +60 -0
  14. package/lib/commonjs/credential/presentation/05-verify-request-object.js.map +1 -0
  15. package/lib/commonjs/credential/presentation/06-fetch-presentation-definition.js +39 -0
  16. package/lib/commonjs/credential/presentation/06-fetch-presentation-definition.js.map +1 -0
  17. package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js +134 -0
  18. package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js.map +1 -0
  19. package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +296 -0
  20. package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js.map +1 -0
  21. package/lib/commonjs/credential/presentation/08-send-authorization-response.js +170 -0
  22. package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -0
  23. package/lib/commonjs/credential/presentation/README.md +88 -2
  24. package/lib/commonjs/credential/presentation/errors.js +68 -1
  25. package/lib/commonjs/credential/presentation/errors.js.map +1 -1
  26. package/lib/commonjs/credential/presentation/index.js +54 -1
  27. package/lib/commonjs/credential/presentation/index.js.map +1 -1
  28. package/lib/commonjs/credential/presentation/types.js +125 -4
  29. package/lib/commonjs/credential/presentation/types.js.map +1 -1
  30. package/lib/commonjs/sd-jwt/index.js +41 -1
  31. package/lib/commonjs/sd-jwt/index.js.map +1 -1
  32. package/lib/commonjs/trust/chain.js.map +1 -1
  33. package/lib/commonjs/trust/types.js +26 -6
  34. package/lib/commonjs/trust/types.js.map +1 -1
  35. package/lib/commonjs/trust/utils.js +5 -0
  36. package/lib/commonjs/trust/utils.js.map +1 -1
  37. package/lib/commonjs/utils/jwk.js +5 -1
  38. package/lib/commonjs/utils/jwk.js.map +1 -1
  39. package/lib/module/credential/issuance/03-start-user-authorization.js +3 -0
  40. package/lib/module/credential/issuance/03-start-user-authorization.js.map +1 -1
  41. package/lib/module/credential/issuance/04-complete-user-authorization.js +5 -3
  42. package/lib/module/credential/issuance/04-complete-user-authorization.js.map +1 -1
  43. package/lib/module/credential/presentation/01-start-flow.js +13 -24
  44. package/lib/module/credential/presentation/01-start-flow.js.map +1 -1
  45. package/lib/module/credential/presentation/02-evaluate-rp-trust.js +4 -2
  46. package/lib/module/credential/presentation/02-evaluate-rp-trust.js.map +1 -1
  47. package/lib/module/credential/presentation/03-get-request-object.js +32 -44
  48. package/lib/module/credential/presentation/03-get-request-object.js.map +1 -1
  49. package/lib/module/credential/presentation/04-retrieve-rp-jwks.js +25 -0
  50. package/lib/module/credential/presentation/04-retrieve-rp-jwks.js.map +1 -0
  51. package/lib/module/credential/presentation/05-verify-request-object.js +53 -0
  52. package/lib/module/credential/presentation/05-verify-request-object.js.map +1 -0
  53. package/lib/module/credential/presentation/06-fetch-presentation-definition.js +32 -0
  54. package/lib/module/credential/presentation/06-fetch-presentation-definition.js.map +1 -0
  55. package/lib/module/credential/presentation/07-evaluate-dcql-query.js +127 -0
  56. package/lib/module/credential/presentation/07-evaluate-dcql-query.js.map +1 -0
  57. package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +285 -0
  58. package/lib/module/credential/presentation/07-evaluate-input-descriptor.js.map +1 -0
  59. package/lib/module/credential/presentation/08-send-authorization-response.js +158 -0
  60. package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -0
  61. package/lib/module/credential/presentation/README.md +88 -2
  62. package/lib/module/credential/presentation/errors.js +63 -0
  63. package/lib/module/credential/presentation/errors.js.map +1 -1
  64. package/lib/module/credential/presentation/index.js +7 -2
  65. package/lib/module/credential/presentation/index.js.map +1 -1
  66. package/lib/module/credential/presentation/types.js +122 -3
  67. package/lib/module/credential/presentation/types.js.map +1 -1
  68. package/lib/module/sd-jwt/index.js +40 -1
  69. package/lib/module/sd-jwt/index.js.map +1 -1
  70. package/lib/module/trust/chain.js.map +1 -1
  71. package/lib/module/trust/types.js +26 -6
  72. package/lib/module/trust/types.js.map +1 -1
  73. package/lib/module/trust/utils.js +5 -0
  74. package/lib/module/trust/utils.js.map +1 -1
  75. package/lib/module/utils/jwk.js +3 -0
  76. package/lib/module/utils/jwk.js.map +1 -1
  77. package/lib/typescript/credential/issuance/03-start-user-authorization.d.ts.map +1 -1
  78. package/lib/typescript/credential/issuance/04-complete-user-authorization.d.ts +2 -2
  79. package/lib/typescript/credential/issuance/04-complete-user-authorization.d.ts.map +1 -1
  80. package/lib/typescript/credential/presentation/01-start-flow.d.ts +23 -7
  81. package/lib/typescript/credential/presentation/01-start-flow.d.ts.map +1 -1
  82. package/lib/typescript/credential/presentation/02-evaluate-rp-trust.d.ts +1 -0
  83. package/lib/typescript/credential/presentation/02-evaluate-rp-trust.d.ts.map +1 -1
  84. package/lib/typescript/credential/presentation/03-get-request-object.d.ts +7 -11
  85. package/lib/typescript/credential/presentation/03-get-request-object.d.ts.map +1 -1
  86. package/lib/typescript/credential/presentation/04-retrieve-rp-jwks.d.ts +23 -0
  87. package/lib/typescript/credential/presentation/04-retrieve-rp-jwks.d.ts.map +1 -0
  88. package/lib/typescript/credential/presentation/05-verify-request-object.d.ts +20 -0
  89. package/lib/typescript/credential/presentation/05-verify-request-object.d.ts.map +1 -0
  90. package/lib/typescript/credential/presentation/06-fetch-presentation-definition.d.ts +21 -0
  91. package/lib/typescript/credential/presentation/06-fetch-presentation-definition.d.ts.map +1 -0
  92. package/lib/typescript/credential/presentation/07-evaluate-dcql-query.d.ts +28 -0
  93. package/lib/typescript/credential/presentation/07-evaluate-dcql-query.d.ts.map +1 -0
  94. package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts +93 -0
  95. package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts.map +1 -0
  96. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +70 -0
  97. package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -0
  98. package/lib/typescript/credential/presentation/errors.d.ts +43 -0
  99. package/lib/typescript/credential/presentation/errors.d.ts.map +1 -1
  100. package/lib/typescript/credential/presentation/index.d.ts +8 -3
  101. package/lib/typescript/credential/presentation/index.d.ts.map +1 -1
  102. package/lib/typescript/credential/presentation/types.d.ts +750 -13
  103. package/lib/typescript/credential/presentation/types.d.ts.map +1 -1
  104. package/lib/typescript/sd-jwt/index.d.ts +19 -0
  105. package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
  106. package/lib/typescript/trust/index.d.ts +236 -8
  107. package/lib/typescript/trust/index.d.ts.map +1 -1
  108. package/lib/typescript/trust/types.d.ts +3046 -76
  109. package/lib/typescript/trust/types.d.ts.map +1 -1
  110. package/lib/typescript/trust/utils.d.ts +6 -6
  111. package/lib/typescript/trust/utils.d.ts.map +1 -1
  112. package/lib/typescript/utils/decoder.d.ts +1 -1
  113. package/lib/typescript/utils/decoder.d.ts.map +1 -1
  114. package/lib/typescript/utils/errors.d.ts.map +1 -1
  115. package/lib/typescript/utils/jwk.d.ts +137 -0
  116. package/lib/typescript/utils/jwk.d.ts.map +1 -1
  117. package/lib/typescript/utils/misc.d.ts.map +1 -1
  118. package/lib/typescript/wallet-instance-attestation/types.d.ts +16 -16
  119. package/package.json +15 -11
  120. package/src/credential/issuance/03-start-user-authorization.ts +3 -0
  121. package/src/credential/issuance/04-complete-user-authorization.ts +6 -3
  122. package/src/credential/presentation/01-start-flow.ts +18 -28
  123. package/src/credential/presentation/02-evaluate-rp-trust.ts +3 -2
  124. package/src/credential/presentation/03-get-request-object.ts +36 -60
  125. package/src/credential/presentation/04-retrieve-rp-jwks.ts +34 -0
  126. package/src/credential/presentation/05-verify-request-object.ts +63 -0
  127. package/src/credential/presentation/06-fetch-presentation-definition.ts +48 -0
  128. package/src/credential/presentation/07-evaluate-dcql-query.ts +174 -0
  129. package/src/credential/presentation/07-evaluate-input-descriptor.ts +393 -0
  130. package/src/credential/presentation/08-send-authorization-response.ts +222 -0
  131. package/src/credential/presentation/README.md +88 -2
  132. package/src/credential/presentation/errors.ts +64 -0
  133. package/src/credential/presentation/index.ts +40 -1
  134. package/src/credential/presentation/types.ts +135 -4
  135. package/src/sd-jwt/index.ts +49 -1
  136. package/src/trust/chain.ts +2 -2
  137. package/src/trust/types.ts +25 -5
  138. package/src/trust/utils.ts +6 -3
  139. package/src/utils/decoder.ts +1 -1
  140. package/src/utils/errors.ts +2 -2
  141. package/src/utils/jwk.ts +8 -1
  142. package/src/utils/misc.ts +2 -2
  143. package/lib/commonjs/credential/presentation/04-send-authorization-response.js +0 -138
  144. package/lib/commonjs/credential/presentation/04-send-authorization-response.js.map +0 -1
  145. package/lib/module/credential/presentation/04-send-authorization-response.js +0 -128
  146. package/lib/module/credential/presentation/04-send-authorization-response.js.map +0 -1
  147. package/lib/typescript/credential/presentation/04-send-authorization-response.d.ts +0 -34
  148. package/lib/typescript/credential/presentation/04-send-authorization-response.d.ts.map +0 -1
  149. package/src/credential/presentation/04-send-authorization-response.ts +0 -168
@@ -72,6 +72,9 @@ const startUserAuthorization = async (issuerConf, credentialType, ctx) => {
72
72
  appFetch = fetch
73
73
  } = ctx;
74
74
  const clientId = await wiaCryptoContext.getPublicKey().then(_ => _.kid);
75
+ if (!clientId) {
76
+ throw new Error("No public key found");
77
+ }
75
78
  const codeVerifier = (0, _misc.generateRandomAlphaNumericString)(64);
76
79
  const parEndpoint = issuerConf.oauth_authorization_server.pushed_authorization_request_endpoint;
77
80
  const credentialDefinition = selectCredentialDefinition(issuerConf, credentialType);
@@ -1 +1 @@
1
- {"version":3,"names":["_misc","require","_par","_const","selectCredentialDefinition","issuerConf","credentialType","credential_configurations_supported","openid_credential_issuer","result","Object","keys","filter","e","includes","map","credential_configuration_id","format","type","Error","selectResponseMode","responseModeSupported","oauth_authorization_server","response_modes_supported","responseMode","startUserAuthorization","ctx","wiaCryptoContext","walletInstanceAttestation","redirectUri","appFetch","fetch","clientId","getPublicKey","then","_","kid","codeVerifier","generateRandomAlphaNumericString","parEndpoint","pushed_authorization_request_endpoint","credentialDefinition","getPar","makeParRequest","issuerRequestUri","ASSERTION_TYPE","exports"],"sourceRoot":"../../../../src","sources":["credential/issuance/03-start-user-authorization.ts"],"mappings":";;;;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,0BAA0B,GAAGA,CACjCC,UAAkD,EAClDC,cAAgD,KACxB;EACxB,MAAMC,mCAAmC,GACvCF,UAAU,CAACG,wBAAwB,CAACD,mCAAmC;EAEzE,MAAM,CAACE,MAAM,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACJ,mCAAmC,CAAC,CAC9DK,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAACR,cAAc,CAAC,CAAC,CACzCS,GAAG,CAAEF,CAAC,KAAM;IACXG,2BAA2B,EAAEV,cAAc;IAC3CW,MAAM,EAAEV,mCAAmC,CAACM,CAAC,CAAC,CAAEI,MAAM;IACtDC,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEL,IAAI,CAACT,MAAM,EAAE;IACX,MAAM,IAAIU,KAAK,CAAE,mCAAkCb,cAAe,GAAE,CAAC;EACvE;EACA,OAAOG,MAAM;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMW,kBAAkB,GAAGA,CACzBf,UAAkD,EAClDC,cAAgD,KAC/B;EACjB,MAAMe,qBAAqB,GACzBhB,UAAU,CAACiB,0BAA0B,CAACC,wBAAwB;EAEhE,MAAMC,YAAY,GAChBlB,cAAc,KAAK,0BAA0B,GAAG,OAAO,GAAG,eAAe;EAE3E,IAAI,CAACe,qBAAqB,CAACP,QAAQ,CAACU,YAAY,CAAC,EAAE;IACjD,MAAM,IAAIL,KAAK,CAAE,sCAAqCb,cAAe,GAAE,CAAC;EAC1E;EAEA,OAAOkB,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,sBAA8C,GAAG,MAAAA,CAC5DpB,UAAU,EACVC,cAAc,EACdoB,GAAG,KACA;EACH,MAAM;IACJC,gBAAgB;IAChBC,yBAAyB;IACzBC,WAAW;IACXC,QAAQ,GAAGC;EACb,CAAC,GAAGL,GAAG;EAEP,MAAMM,QAAQ,GAAG,MAAML,gBAAgB,CAACM,YAAY,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,CAAC;EACzE,MAAMC,YAAY,GAAG,IAAAC,sCAAgC,EAAC,EAAE,CAAC;EACzD,MAAMC,WAAW,GACflC,UAAU,CAACiB,0BAA0B,CAACkB,qCAAqC;EAC7E,MAAMC,oBAAoB,GAAGrC,0BAA0B,CACrDC,UAAU,EACVC,cACF,CAAC;EACD,MAAMkB,YAAY,GAAGJ,kBAAkB,CAACf,UAAU,EAAEC,cAAc,CAAC;EAEnE,MAAMoC,MAAM,GAAG,IAAAC,mBAAc,EAAC;IAAEhB,gBAAgB;IAAEG;EAAS,CAAC,CAAC;EAC7D,MAAMc,gBAAgB,GAAG,MAAMF,MAAM,CACnCV,QAAQ,EACRK,YAAY,EACZR,WAAW,EACXL,YAAY,EACZe,WAAW,EACXX,yBAAyB,EACzB,CAACa,oBAAoB,CAAC,EACtBI,qBACF,CAAC;EAED,OAAO;IAAED,gBAAgB;IAAEZ,QAAQ;IAAEK,YAAY;IAAEI;EAAqB,CAAC;AAC3E,CAAC;AAACK,OAAA,CAAArB,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_misc","require","_par","_const","selectCredentialDefinition","issuerConf","credentialType","credential_configurations_supported","openid_credential_issuer","result","Object","keys","filter","e","includes","map","credential_configuration_id","format","type","Error","selectResponseMode","responseModeSupported","oauth_authorization_server","response_modes_supported","responseMode","startUserAuthorization","ctx","wiaCryptoContext","walletInstanceAttestation","redirectUri","appFetch","fetch","clientId","getPublicKey","then","_","kid","codeVerifier","generateRandomAlphaNumericString","parEndpoint","pushed_authorization_request_endpoint","credentialDefinition","getPar","makeParRequest","issuerRequestUri","ASSERTION_TYPE","exports"],"sourceRoot":"../../../../src","sources":["credential/issuance/03-start-user-authorization.ts"],"mappings":";;;;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,0BAA0B,GAAGA,CACjCC,UAAkD,EAClDC,cAAgD,KACxB;EACxB,MAAMC,mCAAmC,GACvCF,UAAU,CAACG,wBAAwB,CAACD,mCAAmC;EAEzE,MAAM,CAACE,MAAM,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACJ,mCAAmC,CAAC,CAC9DK,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAACR,cAAc,CAAC,CAAC,CACzCS,GAAG,CAAEF,CAAC,KAAM;IACXG,2BAA2B,EAAEV,cAAc;IAC3CW,MAAM,EAAEV,mCAAmC,CAACM,CAAC,CAAC,CAAEI,MAAM;IACtDC,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEL,IAAI,CAACT,MAAM,EAAE;IACX,MAAM,IAAIU,KAAK,CAAE,mCAAkCb,cAAe,GAAE,CAAC;EACvE;EACA,OAAOG,MAAM;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMW,kBAAkB,GAAGA,CACzBf,UAAkD,EAClDC,cAAgD,KAC/B;EACjB,MAAMe,qBAAqB,GACzBhB,UAAU,CAACiB,0BAA0B,CAACC,wBAAwB;EAEhE,MAAMC,YAAY,GAChBlB,cAAc,KAAK,0BAA0B,GAAG,OAAO,GAAG,eAAe;EAE3E,IAAI,CAACe,qBAAqB,CAACP,QAAQ,CAACU,YAAY,CAAC,EAAE;IACjD,MAAM,IAAIL,KAAK,CAAE,sCAAqCb,cAAe,GAAE,CAAC;EAC1E;EAEA,OAAOkB,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,sBAA8C,GAAG,MAAAA,CAC5DpB,UAAU,EACVC,cAAc,EACdoB,GAAG,KACA;EACH,MAAM;IACJC,gBAAgB;IAChBC,yBAAyB;IACzBC,WAAW;IACXC,QAAQ,GAAGC;EACb,CAAC,GAAGL,GAAG;EAEP,MAAMM,QAAQ,GAAG,MAAML,gBAAgB,CAACM,YAAY,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,CAAC;EACzE,IAAI,CAACJ,QAAQ,EAAE;IACb,MAAM,IAAIb,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA,MAAMkB,YAAY,GAAG,IAAAC,sCAAgC,EAAC,EAAE,CAAC;EACzD,MAAMC,WAAW,GACflC,UAAU,CAACiB,0BAA0B,CAACkB,qCAAqC;EAC7E,MAAMC,oBAAoB,GAAGrC,0BAA0B,CACrDC,UAAU,EACVC,cACF,CAAC;EACD,MAAMkB,YAAY,GAAGJ,kBAAkB,CAACf,UAAU,EAAEC,cAAc,CAAC;EAEnE,MAAMoC,MAAM,GAAG,IAAAC,mBAAc,EAAC;IAAEhB,gBAAgB;IAAEG;EAAS,CAAC,CAAC;EAC7D,MAAMc,gBAAgB,GAAG,MAAMF,MAAM,CACnCV,QAAQ,EACRK,YAAY,EACZR,WAAW,EACXL,YAAY,EACZe,WAAW,EACXX,yBAAyB,EACzB,CAACa,oBAAoB,CAAC,EACtBI,qBACF,CAAC;EAED,OAAO;IAAED,gBAAgB;IAAEZ,QAAQ;IAAEK,YAAY;IAAEI;EAAqB,CAAC;AAC3E,CAAC;AAACK,OAAA,CAAArB,sBAAA,GAAAA,sBAAA"}
@@ -25,16 +25,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
25
25
  * @param issuerRequestUri the URI of the issuer where the request is sent
26
26
  * @param clientId Identifies the current client across all the requests of the issuing flow returned by {@link startUserAuthorization}
27
27
  * @param issuerConf The issuer configuration returned by {@link evaluateIssuerTrust}
28
- * @param idpHint Unique identifier of the IDP selected by the user
28
+ * @param idpHint Unique identifier of the IDP selected by the user (optional)
29
29
  * @returns An object containing the authorization URL
30
30
  */
31
31
  const buildAuthorizationUrl = async (issuerRequestUri, clientId, issuerConf, idpHint) => {
32
32
  const authzRequestEndpoint = issuerConf.oauth_authorization_server.authorization_endpoint;
33
33
  const params = new URLSearchParams({
34
34
  client_id: clientId,
35
- request_uri: issuerRequestUri,
36
- idphint: idpHint
35
+ request_uri: issuerRequestUri
37
36
  });
37
+ if (idpHint) {
38
+ params.append("idphint", idpHint);
39
+ }
38
40
  const authUrl = `${authzRequestEndpoint}?${params}`;
39
41
  return {
40
42
  authUrl
@@ -1 +1 @@
1
- {"version":3,"names":["_auth","require","_misc","_parseUrl","_interopRequireDefault","_errors","_ioReactNativeJwt","_types","_uuid","_types2","_decoder","_errors2","obj","__esModule","default","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","oauth_authorization_server","authorization_endpoint","params","URLSearchParams","client_id","request_uri","idphint","authUrl","exports","completeUserAuthorizationWithQueryMode","authRedirectUrl","query","parseUrl","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","requestObject","toString","method","then","hasStatusOrThrow","IssuerResponseError","res","text","jws","decode","reqObj","RequestObject","safeParse","payload","success","ValidationFailed","message","reason","error","data","completeUserAuthorizationWithFormPostJwtMode","ctx","wiaCryptoContext","pidCryptoContext","pid","walletInstanceAttestation","wiaWpToken","SignJWT","setProtectedHeader","alg","typ","setPayload","vp","jti","uuidv4","nonce","setIssuedAt","setExpirationTime","setAudience","response_uri","sign","pidWpToken","presentationSubmission","definition_id","id","descriptor_map","path","format","authzResponsePayload","encodeBase64","JSON","stringify","state","presentation_submission","vp_token","body","response","resUriRes","headers","reqUri","json","responseUri","ResponseUriResultShape","redirect_uri","getJwtFromFormPost","cbRes","decodedJwt","authRes","authResParsed","AuthorizationResultShape","authErr","AuthorizationErrorShape","AuthorizationError","AuthorizationIdpError","error_description"],"sourceRoot":"../../../../src","sources":["credential/issuance/04-complete-user-authorization.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_auth","require","_misc","_parseUrl","_interopRequireDefault","_errors","_ioReactNativeJwt","_types","_uuid","_types2","_decoder","_errors2","obj","__esModule","default","buildAuthorizationUrl","issuerRequestUri","clientId","issuerConf","idpHint","authzRequestEndpoint","oauth_authorization_server","authorization_endpoint","params","URLSearchParams","client_id","request_uri","append","authUrl","exports","completeUserAuthorizationWithQueryMode","authRedirectUrl","query","parseUrl","parseAuthorizationResponse","getRequestedCredentialToBePresented","appFetch","arguments","length","undefined","fetch","requestObject","toString","method","then","hasStatusOrThrow","IssuerResponseError","res","text","jws","decode","reqObj","RequestObject","safeParse","payload","success","ValidationFailed","message","reason","error","data","completeUserAuthorizationWithFormPostJwtMode","ctx","wiaCryptoContext","pidCryptoContext","pid","walletInstanceAttestation","wiaWpToken","SignJWT","setProtectedHeader","alg","typ","setPayload","vp","jti","uuidv4","nonce","setIssuedAt","setExpirationTime","setAudience","response_uri","sign","pidWpToken","presentationSubmission","definition_id","id","descriptor_map","path","format","authzResponsePayload","encodeBase64","JSON","stringify","state","presentation_submission","vp_token","body","response","resUriRes","headers","reqUri","json","responseUri","ResponseUriResultShape","redirect_uri","getJwtFromFormPost","cbRes","decodedJwt","authRes","authResParsed","AuthorizationResultShape","authErr","AuthorizationErrorShape","AuthorizationError","AuthorizationIdpError","error_description"],"sourceRoot":"../../../../src","sources":["credential/issuance/04-complete-user-authorization.ts"],"mappings":"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"}
@@ -5,51 +5,40 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.startFlowFromQR = void 0;
7
7
  var z = _interopRequireWildcard(require("zod"));
8
- var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
9
8
  var _errors = require("./errors");
10
9
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
10
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
- const QRCodePayload = z.object({
13
- protocol: z.string(),
14
- resource: z.string(),
15
- // TODO: refine to known paths using literals
16
- clientId: z.string(),
17
- requestURI: z.string()
11
+ const PresentationParams = z.object({
12
+ clientId: z.string().nonempty(),
13
+ requestUri: z.string().url(),
14
+ requestUriMethod: z.enum(["get", "post"]),
15
+ state: z.string().optional()
18
16
  });
19
17
 
20
18
  /**
21
19
  * The beginning of the presentation flow.
22
20
  * To be implemented accordind to the user touchpoint
23
21
  *
24
- * @param Optional parameters, depending on the starting touchoint
22
+ * @param params Presentation parameters, depending on the starting touchoint
25
23
  * @returns The url for the Relying Party to connect with
26
24
  */
27
25
 
28
26
  /**
29
27
  * Start a presentation flow by decoding an incoming QR-code
30
28
  *
31
- * @param qrcode The encoded QR-code content
29
+ * @param params The encoded QR-code content
32
30
  * @returns The url for the Relying Party to connect with
33
31
  * @throws If the provided qr code fails to be decoded
34
32
  */
35
- const startFlowFromQR = qrcode => {
36
- const decoded = (0, _ioReactNativeJwt.decodeBase64)(qrcode);
37
- const decodedUrl = new URL(decoded);
38
- const protocol = decodedUrl.protocol;
39
- const resource = decodedUrl.hostname;
40
- const requestURI = decodedUrl.searchParams.get("request_uri");
41
- const clientId = decodedUrl.searchParams.get("client_id");
42
- const result = QRCodePayload.safeParse({
43
- protocol,
44
- resource,
45
- requestURI,
46
- clientId
33
+ const startFlowFromQR = params => {
34
+ const result = PresentationParams.safeParse({
35
+ ...params,
36
+ requestUriMethod: params.requestUriMethod ?? "get"
47
37
  });
48
38
  if (result.success) {
49
39
  return result.data;
50
- } else {
51
- throw new _errors.AuthRequestDecodeError(result.error.message, `${decodedUrl}`);
52
40
  }
41
+ throw new _errors.InvalidQRCodeError(result.error.message);
53
42
  };
54
43
  exports.startFlowFromQR = startFlowFromQR;
55
44
  //# sourceMappingURL=01-start-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["z","_interopRequireWildcard","require","_ioReactNativeJwt","_errors","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","QRCodePayload","object","protocol","string","resource","clientId","requestURI","startFlowFromQR","qrcode","decoded","decodeBase64","decodedUrl","URL","hostname","searchParams","result","safeParse","success","data","AuthRequestDecodeError","error","message","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/01-start-flow.ts"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAAkD,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAL,wBAAAS,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAElD,MAAMW,aAAa,GAAG3B,CAAC,CAAC4B,MAAM,CAAC;EAC7BC,QAAQ,EAAE7B,CAAC,CAAC8B,MAAM,CAAC,CAAC;EACpBC,QAAQ,EAAE/B,CAAC,CAAC8B,MAAM,CAAC,CAAC;EAAE;EACtBE,QAAQ,EAAEhC,CAAC,CAAC8B,MAAM,CAAC,CAAC;EACpBG,UAAU,EAAEjC,CAAC,CAAC8B,MAAM,CAAC;AACvB,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,eAAoC,GAAIC,MAAM,IAAK;EAC9D,MAAMC,OAAO,GAAG,IAAAC,8BAAY,EAACF,MAAM,CAAC;EACpC,MAAMG,UAAU,GAAG,IAAIC,GAAG,CAACH,OAAO,CAAC;EACnC,MAAMP,QAAQ,GAAGS,UAAU,CAACT,QAAQ;EACpC,MAAME,QAAQ,GAAGO,UAAU,CAACE,QAAQ;EACpC,MAAMP,UAAU,GAAGK,UAAU,CAACG,YAAY,CAAC1B,GAAG,CAAC,aAAa,CAAC;EAC7D,MAAMiB,QAAQ,GAAGM,UAAU,CAACG,YAAY,CAAC1B,GAAG,CAAC,WAAW,CAAC;EAEzD,MAAM2B,MAAM,GAAGf,aAAa,CAACgB,SAAS,CAAC;IACrCd,QAAQ;IACRE,QAAQ;IACRE,UAAU;IACVD;EACF,CAAC,CAAC;EAEF,IAAIU,MAAM,CAACE,OAAO,EAAE;IAClB,OAAOF,MAAM,CAACG,IAAI;EACpB,CAAC,MAAM;IACL,MAAM,IAAIC,8BAAsB,CAACJ,MAAM,CAACK,KAAK,CAACC,OAAO,EAAG,GAAEV,UAAW,EAAC,CAAC;EACzE;AACF,CAAC;AAACW,OAAA,CAAAf,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["z","_interopRequireWildcard","require","_errors","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","PresentationParams","object","clientId","string","nonempty","requestUri","url","requestUriMethod","enum","state","optional","startFlowFromQR","params","result","safeParse","success","data","InvalidQRCodeError","error","message","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/01-start-flow.ts"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAA8C,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAE9C,MAAMW,kBAAkB,GAAG1B,CAAC,CAAC2B,MAAM,CAAC;EAClCC,QAAQ,EAAE5B,CAAC,CAAC6B,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC/BC,UAAU,EAAE/B,CAAC,CAAC6B,MAAM,CAAC,CAAC,CAACG,GAAG,CAAC,CAAC;EAC5BC,gBAAgB,EAAEjC,CAAC,CAACkC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;EACzCC,KAAK,EAAEnC,CAAC,CAAC6B,MAAM,CAAC,CAAC,CAACO,QAAQ,CAAC;AAC7B,CAAC,CAAC;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAA0B,GAAIC,MAAM,IAAK;EACpD,MAAMC,MAAM,GAAGb,kBAAkB,CAACc,SAAS,CAAC;IAC1C,GAAGF,MAAM;IACTL,gBAAgB,EAAEK,MAAM,CAACL,gBAAgB,IAAI;EAC/C,CAAC,CAAC;EAEF,IAAIM,MAAM,CAACE,OAAO,EAAE;IAClB,OAAOF,MAAM,CAACG,IAAI;EACpB;EAEA,MAAM,IAAIC,0BAAkB,CAACJ,MAAM,CAACK,KAAK,CAACC,OAAO,CAAC;AACpD,CAAC;AAACC,OAAA,CAAAT,eAAA,GAAAA,eAAA"}
@@ -19,13 +19,15 @@ const evaluateRelyingPartyTrust = async function (rpUrl) {
19
19
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
20
20
  const {
21
21
  payload: {
22
- metadata: rpConf
22
+ metadata: rpConf,
23
+ sub
23
24
  }
24
25
  } = await (0, _trust.getRelyingPartyEntityConfiguration)(rpUrl, {
25
26
  appFetch
26
27
  });
27
28
  return {
28
- rpConf
29
+ rpConf,
30
+ subject: sub
29
31
  };
30
32
  };
31
33
  exports.evaluateRelyingPartyTrust = evaluateRelyingPartyTrust;
@@ -1 +1 @@
1
- {"version":3,"names":["_trust","require","evaluateRelyingPartyTrust","rpUrl","appFetch","fetch","arguments","length","undefined","payload","metadata","rpConf","getRelyingPartyEntityConfiguration","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/02-evaluate-rp-trust.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAoD,GAAG,eAAAA,CAClEC,KAAK,EAEF;EAAA,IADH;IAAEC,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB,MAAM;IACJG,OAAO,EAAE;MAAEC,QAAQ,EAAEC;IAAO;EAC9B,CAAC,GAAG,MAAM,IAAAC,yCAAkC,EAACT,KAAK,EAAE;IAClDC;EACF,CAAC,CAAC;EACF,OAAO;IAAEO;EAAO,CAAC;AACnB,CAAC;AAACE,OAAA,CAAAX,yBAAA,GAAAA,yBAAA"}
1
+ {"version":3,"names":["_trust","require","evaluateRelyingPartyTrust","rpUrl","appFetch","fetch","arguments","length","undefined","payload","metadata","rpConf","sub","getRelyingPartyEntityConfiguration","subject","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/02-evaluate-rp-trust.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAoD,GAAG,eAAAA,CAClEC,KAAK,EAEF;EAAA,IADH;IAAEC,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB,MAAM;IACJG,OAAO,EAAE;MAAEC,QAAQ,EAAEC,MAAM;MAAEC;IAAI;EACnC,CAAC,GAAG,MAAM,IAAAC,yCAAkC,EAACV,KAAK,EAAE;IAClDC;EACF,CAAC,CAAC;EACF,OAAO;IAAEO,MAAM;IAAEG,OAAO,EAAEF;EAAI,CAAC;AACjC,CAAC;AAACG,OAAA,CAAAb,yBAAA,GAAAA,yBAAA"}
@@ -4,63 +4,51 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getRequestObject = void 0;
7
- var _uuid = require("uuid");
8
- var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
9
- var _dpop = require("../../utils/dpop");
10
- var _errors = require("./errors");
11
7
  var _misc = require("../../utils/misc");
12
8
  var _types = require("./types");
13
9
  /**
14
- * Obtain the Request Object for RP authentication
10
+ * Obtain the Request Object for RP authentication. Both the GET and POST `request_uri_method` are supported.
15
11
  * @see https://italia.github.io/eudi-wallet-it-docs/versione-corrente/en/relying-party-solution.html
16
12
  *
17
13
  * @param requestUri The url for the Relying Party to connect with
18
- * @param rpConf The Relying Party's configuration
19
- * @param context.wiaCryptoContext The context to access the key associated with the Wallet Instance Attestation
20
- * @param context.walletInstanceAttestation The Wallet Instance Attestation token
14
+ * @param rpConf The Relying Party's configuration * @param context.walletInstanceAttestation The Wallet Instance Attestation token
15
+ * @param context.walletCapabilities (optional) An object containing the wallet technical capabilities that will be sent with a POST request
21
16
  * @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
22
17
  * @returns The Request Object that describes the presentation
23
18
  */
24
- const getRequestObject = async (requestUri, rpConf, _ref) => {
19
+ const getRequestObject = async function (requestUri) {
25
20
  let {
26
- wiaCryptoContext,
27
21
  appFetch = fetch,
28
- walletInstanceAttestation
29
- } = _ref;
30
- const signedWalletInstanceDPoP = await (0, _dpop.createDPopToken)({
31
- jti: `${(0, _uuid.v4)()}`,
32
- htm: "GET",
33
- htu: requestUri,
34
- ath: await (0, _ioReactNativeJwt.sha256ToBase64)(walletInstanceAttestation)
35
- }, wiaCryptoContext);
36
- const responseEncodedJwt = await appFetch(requestUri, {
37
- method: "GET",
38
- headers: {
39
- Authorization: `DPoP ${walletInstanceAttestation}`,
40
- DPoP: signedWalletInstanceDPoP
41
- }
42
- }).then((0, _misc.hasStatusOrThrow)(200)).then(res => res.json()).then(responseJson => responseJson.response);
43
- const responseJwt = (0, _ioReactNativeJwt.decode)(responseEncodedJwt);
44
-
45
- // verify token signature according to RP's entity configuration
46
- // to ensure the request object is authentic
47
- {
48
- const pubKey = rpConf.wallet_relying_party.jwks.keys.find(_ref2 => {
49
- let {
50
- kid
51
- } = _ref2;
52
- return kid === responseJwt.protectedHeader.kid;
22
+ walletCapabilities
23
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
24
+ if (walletCapabilities) {
25
+ // Validate external input
26
+ const {
27
+ wallet_metadata,
28
+ wallet_nonce
29
+ } = _types.RequestObjectWalletCapabilities.parse(walletCapabilities);
30
+ const formUrlEncodedBody = new URLSearchParams({
31
+ wallet_metadata: JSON.stringify(wallet_metadata),
32
+ ...(wallet_nonce && {
33
+ wallet_nonce
34
+ })
53
35
  });
54
- if (!pubKey) {
55
- throw new _errors.NoSuitableKeysFoundInEntityConfiguration("Request Object signature verification");
56
- }
57
- await (0, _ioReactNativeJwt.verify)(responseEncodedJwt, pubKey);
36
+ const requestObjectEncodedJwt = await appFetch(requestUri, {
37
+ method: "POST",
38
+ headers: {
39
+ "Content-Type": "application/x-www-form-urlencoded"
40
+ },
41
+ body: formUrlEncodedBody.toString()
42
+ }).then((0, _misc.hasStatusOrThrow)(200)).then(res => res.text());
43
+ return {
44
+ requestObjectEncodedJwt
45
+ };
58
46
  }
59
-
60
- // Ensure that the request object conforms to the expected specification.
61
- const requestObject = _types.RequestObject.parse(responseJwt.payload);
47
+ const requestObjectEncodedJwt = await appFetch(requestUri, {
48
+ method: "GET"
49
+ }).then((0, _misc.hasStatusOrThrow)(200)).then(res => res.text());
62
50
  return {
63
- requestObject
51
+ requestObjectEncodedJwt
64
52
  };
65
53
  };
66
54
  exports.getRequestObject = getRequestObject;
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_ioReactNativeJwt","_dpop","_errors","_misc","_types","getRequestObject","requestUri","rpConf","_ref","wiaCryptoContext","appFetch","fetch","walletInstanceAttestation","signedWalletInstanceDPoP","createDPopToken","jti","uuidv4","htm","htu","ath","sha256ToBase64","responseEncodedJwt","method","headers","Authorization","DPoP","then","hasStatusOrThrow","res","json","responseJson","response","responseJwt","decodeJwt","pubKey","wallet_relying_party","jwks","keys","find","_ref2","kid","protectedHeader","NoSuitableKeysFoundInEntityConfiguration","verify","requestObject","RequestObject","parse","payload","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/03-get-request-object.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAOA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAEA,IAAAK,MAAA,GAAAL,OAAA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,gBAAkC,GAAG,MAAAA,CAChDC,UAAU,EACVC,MAAM,EAAAC,IAAA,KAEH;EAAA,IADH;IAAEC,gBAAgB;IAAEC,QAAQ,GAAGC,KAAK;IAAEC;EAA0B,CAAC,GAAAJ,IAAA;EAEjE,MAAMK,wBAAwB,GAAG,MAAM,IAAAC,qBAAe,EACpD;IACEC,GAAG,EAAG,GAAE,IAAAC,QAAM,EAAC,CAAE,EAAC;IAClBC,GAAG,EAAE,KAAK;IACVC,GAAG,EAAEZ,UAAU;IACfa,GAAG,EAAE,MAAM,IAAAC,gCAAc,EAACR,yBAAyB;EACrD,CAAC,EACDH,gBACF,CAAC;EAED,MAAMY,kBAAkB,GAAG,MAAMX,QAAQ,CAACJ,UAAU,EAAE;IACpDgB,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MACPC,aAAa,EAAG,QAAOZ,yBAA0B,EAAC;MAClDa,IAAI,EAAEZ;IACR;EACF,CAAC,CAAC,CACCa,IAAI,CAAC,IAAAC,sBAAgB,EAAC,GAAG,CAAC,CAAC,CAC3BD,IAAI,CAAEE,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACzBH,IAAI,CAAEI,YAAY,IAAKA,YAAY,CAACC,QAAQ,CAAC;EAEhD,MAAMC,WAAW,GAAG,IAAAC,wBAAS,EAACZ,kBAAkB,CAAC;;EAEjD;EACA;EACA;IACE,MAAMa,MAAM,GAAG3B,MAAM,CAAC4B,oBAAoB,CAACC,IAAI,CAACC,IAAI,CAACC,IAAI,CACvDC,KAAA;MAAA,IAAC;QAAEC;MAAI,CAAC,GAAAD,KAAA;MAAA,OAAKC,GAAG,KAAKR,WAAW,CAACS,eAAe,CAACD,GAAG;IAAA,CACtD,CAAC;IACD,IAAI,CAACN,MAAM,EAAE;MACX,MAAM,IAAIQ,gDAAwC,CAChD,uCACF,CAAC;IACH;IACA,MAAM,IAAAC,wBAAM,EAACtB,kBAAkB,EAAEa,MAAM,CAAC;EAC1C;;EAEA;EACA,MAAMU,aAAa,GAAGC,oBAAa,CAACC,KAAK,CAACd,WAAW,CAACe,OAAO,CAAC;EAE9D,OAAO;IACLH;EACF,CAAC;AACH,CAAC;AAACI,OAAA,CAAA3C,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"names":["_misc","require","_types","getRequestObject","requestUri","appFetch","fetch","walletCapabilities","arguments","length","undefined","wallet_metadata","wallet_nonce","RequestObjectWalletCapabilities","parse","formUrlEncodedBody","URLSearchParams","JSON","stringify","requestObjectEncodedJwt","method","headers","body","toString","then","hasStatusOrThrow","res","text","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/03-get-request-object.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,gBAAkC,GAAG,eAAAA,CAChDC,UAAU,EAEP;EAAA,IADH;IAAEC,QAAQ,GAAGC,KAAK;IAAEC;EAAmB,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE7C,IAAID,kBAAkB,EAAE;IACtB;IACA,MAAM;MAAEI,eAAe;MAAEC;IAAa,CAAC,GACrCC,sCAA+B,CAACC,KAAK,CAACP,kBAAkB,CAAC;IAE3D,MAAMQ,kBAAkB,GAAG,IAAIC,eAAe,CAAC;MAC7CL,eAAe,EAAEM,IAAI,CAACC,SAAS,CAACP,eAAe,CAAC;MAChD,IAAIC,YAAY,IAAI;QAAEA;MAAa,CAAC;IACtC,CAAC,CAAC;IAEF,MAAMO,uBAAuB,GAAG,MAAMd,QAAQ,CAACD,UAAU,EAAE;MACzDgB,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACP,cAAc,EAAE;MAClB,CAAC;MACDC,IAAI,EAAEP,kBAAkB,CAACQ,QAAQ,CAAC;IACpC,CAAC,CAAC,CACCC,IAAI,CAAC,IAAAC,sBAAgB,EAAC,GAAG,CAAC,CAAC,CAC3BD,IAAI,CAAEE,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC;IAE5B,OAAO;MACLR;IACF,CAAC;EACH;EAEA,MAAMA,uBAAuB,GAAG,MAAMd,QAAQ,CAACD,UAAU,EAAE;IACzDgB,MAAM,EAAE;EACV,CAAC,CAAC,CACCI,IAAI,CAAC,IAAAC,sBAAgB,EAAC,GAAG,CAAC,CAAC,CAC3BD,IAAI,CAAEE,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC;EAE5B,OAAO;IACLR;EACF,CAAC;AACH,CAAC;AAACS,OAAA,CAAAzB,gBAAA,GAAAA,gBAAA"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getJwksFromConfig = void 0;
7
+ /**
8
+ * Defines the signature for a function that retrieves JSON Web Key Sets (JWKS) from a client.
9
+ *
10
+ * @template T - The tuple type representing the function arguments.
11
+ * @param args - The arguments passed to the function.
12
+ * @returns A promise resolving to an object containing an array of JWKs.
13
+ */
14
+
15
+ /**
16
+ * Retrieves the JSON Web Key Set (JWKS) from a Relying Party's entity configuration.
17
+ *
18
+ * @param rpConfig - The configuration object of the Relying Party entity.
19
+ * @returns An object containing an array of JWKs.
20
+ * @throws Will throw an error if the configuration is invalid or if JWKS is not found.
21
+ */
22
+ const getJwksFromConfig = rpConfig => {
23
+ const jwks = rpConfig.openid_credential_verifier.jwks;
24
+ if (!jwks || !Array.isArray(jwks.keys)) {
25
+ throw new Error("JWKS not found in Relying Party configuration.");
26
+ }
27
+ return {
28
+ keys: jwks.keys
29
+ };
30
+ };
31
+ exports.getJwksFromConfig = getJwksFromConfig;
32
+ //# sourceMappingURL=04-retrieve-rp-jwks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getJwksFromConfig","rpConfig","jwks","openid_credential_verifier","Array","isArray","keys","Error","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/04-retrieve-rp-jwks.ts"],"mappings":";;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAEZ,GAAIC,QAAQ,IAAK;EAChB,MAAMC,IAAI,GAAGD,QAAQ,CAACE,0BAA0B,CAACD,IAAI;EAErD,IAAI,CAACA,IAAI,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,IAAI,CAACI,IAAI,CAAC,EAAE;IACtC,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;EACnE;EAEA,OAAO;IACLD,IAAI,EAAEJ,IAAI,CAACI;EACb,CAAC;AACH,CAAC;AAACE,OAAA,CAAAR,iBAAA,GAAAA,iBAAA"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.verifyRequestObject = void 0;
7
+ var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
8
+ var _errors = require("./errors");
9
+ var _types = require("./types");
10
+ var _retrieveRpJwks = require("./04-retrieve-rp-jwks");
11
+ /**
12
+ * Function to verify the Request Object's signature and the client ID.
13
+ * @param requestObjectEncodedJwt The Request Object in JWT format
14
+ * @param context.clientId The client ID to verify
15
+ * @param context.rpConf The Entity Configuration of the Relying Party
16
+ * @param context.state Optional state
17
+ * @returns The verified Request Object
18
+ */
19
+ const verifyRequestObject = async (requestObjectEncodedJwt, _ref) => {
20
+ let {
21
+ clientId,
22
+ rpConf,
23
+ rpSubject,
24
+ state
25
+ } = _ref;
26
+ const requestObjectJwt = (0, _ioReactNativeJwt.decode)(requestObjectEncodedJwt);
27
+ const {
28
+ keys
29
+ } = (0, _retrieveRpJwks.getJwksFromConfig)(rpConf);
30
+
31
+ // Verify token signature to ensure the request object is authentic
32
+ const pubKey = keys === null || keys === void 0 ? void 0 : keys.find(_ref2 => {
33
+ let {
34
+ kid
35
+ } = _ref2;
36
+ return kid === requestObjectJwt.protectedHeader.kid;
37
+ });
38
+ if (!pubKey) {
39
+ throw new _errors.UnverifiedEntityError("Request Object signature verification!");
40
+ }
41
+
42
+ // Standard claims are verified within `verify`
43
+ await (0, _ioReactNativeJwt.verify)(requestObjectEncodedJwt, pubKey, {
44
+ issuer: clientId
45
+ });
46
+ const requestObject = _types.RequestObject.parse(requestObjectJwt.payload);
47
+ const isClientIdMatch = clientId === requestObject.client_id && clientId === rpSubject;
48
+ if (!isClientIdMatch) {
49
+ throw new _errors.UnverifiedEntityError("Client ID does not match Request Object or Entity Configuration");
50
+ }
51
+ const isStateMatch = state && requestObject.state ? state === requestObject.state : true;
52
+ if (!isStateMatch) {
53
+ throw new _errors.UnverifiedEntityError("State does not match Request Object");
54
+ }
55
+ return {
56
+ requestObject
57
+ };
58
+ };
59
+ exports.verifyRequestObject = verifyRequestObject;
60
+ //# sourceMappingURL=05-verify-request-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ioReactNativeJwt","require","_errors","_types","_retrieveRpJwks","verifyRequestObject","requestObjectEncodedJwt","_ref","clientId","rpConf","rpSubject","state","requestObjectJwt","decodeJwt","keys","getJwksFromConfig","pubKey","find","_ref2","kid","protectedHeader","UnverifiedEntityError","verify","issuer","requestObject","RequestObject","parse","payload","isClientIdMatch","client_id","isStateMatch","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/05-verify-request-object.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,mBAAwC,GAAG,MAAAA,CACtDC,uBAAuB,EAAAC,IAAA,KAEpB;EAAA,IADH;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAAJ,IAAA;EAEtC,MAAMK,gBAAgB,GAAG,IAAAC,wBAAS,EAACP,uBAAuB,CAAC;EAC3D,MAAM;IAAEQ;EAAK,CAAC,GAAG,IAAAC,iCAAiB,EAACN,MAAM,CAAC;;EAE1C;EACA,MAAMO,MAAM,GAAGF,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,IAAI,CACvBC,KAAA;IAAA,IAAC;MAAEC;IAAI,CAAC,GAAAD,KAAA;IAAA,OAAKC,GAAG,KAAKP,gBAAgB,CAACQ,eAAe,CAACD,GAAG;EAAA,CAC3D,CAAC;EAED,IAAI,CAACH,MAAM,EAAE;IACX,MAAM,IAAIK,6BAAqB,CAAC,wCAAwC,CAAC;EAC3E;;EAEA;EACA,MAAM,IAAAC,wBAAM,EAAChB,uBAAuB,EAAEU,MAAM,EAAE;IAAEO,MAAM,EAAEf;EAAS,CAAC,CAAC;EAEnE,MAAMgB,aAAa,GAAGC,oBAAa,CAACC,KAAK,CAACd,gBAAgB,CAACe,OAAO,CAAC;EAEnE,MAAMC,eAAe,GACnBpB,QAAQ,KAAKgB,aAAa,CAACK,SAAS,IAAIrB,QAAQ,KAAKE,SAAS;EAEhE,IAAI,CAACkB,eAAe,EAAE;IACpB,MAAM,IAAIP,6BAAqB,CAC7B,iEACF,CAAC;EACH;EAEA,MAAMS,YAAY,GAChBnB,KAAK,IAAIa,aAAa,CAACb,KAAK,GAAGA,KAAK,KAAKa,aAAa,CAACb,KAAK,GAAG,IAAI;EAErE,IAAI,CAACmB,YAAY,EAAE;IACjB,MAAM,IAAIT,6BAAqB,CAAC,qCAAqC,CAAC;EACxE;EAEA,OAAO;IAAEG;EAAc,CAAC;AAC1B,CAAC;AAACO,OAAA,CAAA1B,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchPresentDefinition = void 0;
7
+ /**
8
+ * Retrieves a PresentationDefinition based on the given parameters.
9
+ *
10
+ * The method attempts the following strategies in order:
11
+ * 1. Checks if `presentation_definition` is directly available in the request object.
12
+ * 2. Uses a pre-configured `presentation_definition` from the relying party configuration if the `scope` is present in the request object.
13
+ *
14
+ * If none of the above conditions are met, the function throws an error indicating the definition could not be found. Note that `presentation_definition_uri` is not supported in 0.9.x.
15
+ *
16
+ * @param {RequestObject} requestObject - The request object containing the presentation definition or references to it.
17
+ * @param {RelyingPartyEntityConfiguration["payload"]["metadata"]} [rpConf] - Optional relying party configuration.
18
+ * @returns {Promise<{ presentationDefinition: PresentationDefinition }>} - Resolves with the presentation definition.
19
+ * @throws {Error} - Throws if the presentation definition cannot be found or fetched.
20
+ */
21
+ const fetchPresentDefinition = async (requestObject, rpConf) => {
22
+ var _rpConf$openid_creden;
23
+ // Check if `presentation_definition` is directly available in the request object
24
+ if (requestObject.presentation_definition) {
25
+ return {
26
+ presentationDefinition: requestObject.presentation_definition
27
+ };
28
+ }
29
+
30
+ // Check if `scope` is present in the request object and a pre-configured presentation definition exists
31
+ if (requestObject.scope && rpConf !== null && rpConf !== void 0 && (_rpConf$openid_creden = rpConf.openid_credential_verifier) !== null && _rpConf$openid_creden !== void 0 && _rpConf$openid_creden.presentation_definition) {
32
+ return {
33
+ presentationDefinition: rpConf.openid_credential_verifier.presentation_definition
34
+ };
35
+ }
36
+ throw new Error("Presentation definition not found");
37
+ };
38
+ exports.fetchPresentDefinition = fetchPresentDefinition;
39
+ //# sourceMappingURL=06-fetch-presentation-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fetchPresentDefinition","requestObject","rpConf","_rpConf$openid_creden","presentation_definition","presentationDefinition","scope","openid_credential_verifier","Error","exports"],"sourceRoot":"../../../../src","sources":["credential/presentation/06-fetch-presentation-definition.ts"],"mappings":";;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,sBAAmD,GAAG,MAAAA,CACjEC,aAAa,EACbC,MAAM,KACH;EAAA,IAAAC,qBAAA;EACH;EACA,IAAIF,aAAa,CAACG,uBAAuB,EAAE;IACzC,OAAO;MACLC,sBAAsB,EAAEJ,aAAa,CAACG;IACxC,CAAC;EACH;;EAEA;EACA,IACEH,aAAa,CAACK,KAAK,IACnBJ,MAAM,aAANA,MAAM,gBAAAC,qBAAA,GAAND,MAAM,CAAEK,0BAA0B,cAAAJ,qBAAA,eAAlCA,qBAAA,CAAoCC,uBAAuB,EAC3D;IACA,OAAO;MACLC,sBAAsB,EACpBH,MAAM,CAACK,0BAA0B,CAACH;IACtC,CAAC;EACH;EAEA,MAAM,IAAII,KAAK,CAAC,mCAAmC,CAAC;AACtD,CAAC;AAACC,OAAA,CAAAT,sBAAA,GAAAA,sBAAA"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.prepareRemotePresentations = exports.evaluateDcqlQuery = void 0;
7
+ var _dcql = require("dcql");
8
+ var _valibot = require("valibot");
9
+ var _sdJwt = require("../../sd-jwt");
10
+ var _errors = require("../../utils/errors");
11
+ var _crypto = require("../../utils/crypto");
12
+ /**
13
+ * The purpose for the credential request by the RP.
14
+ */
15
+
16
+ /**
17
+ * Convert a credential in JWT format to an object with claims
18
+ * for correct parsing by the `dcql` library.
19
+ */
20
+ const mapCredentialToObject = jwt => {
21
+ const {
22
+ sdJwt,
23
+ disclosures
24
+ } = (0, _sdJwt.decode)(jwt);
25
+ const credentialFormat = sdJwt.header.typ;
26
+
27
+ // TODO [SIW-2082]: support MDOC credentials
28
+ if (credentialFormat !== "vc+sd-jwt") {
29
+ throw new Error(`Unsupported credential format: ${credentialFormat}`);
30
+ }
31
+ return {
32
+ vct: sdJwt.payload.vct,
33
+ credential_format: credentialFormat,
34
+ claims: disclosures.reduce((acc, disclosure) => ({
35
+ ...acc,
36
+ [disclosure.decoded[1]]: disclosure.decoded
37
+ }), {})
38
+ };
39
+ };
40
+
41
+ /**
42
+ * Extract only successful matches from the DCQL query result.
43
+ */
44
+ const getDcqlQueryMatches = result => Object.entries(result.credential_matches).filter(_ref => {
45
+ let [, match] = _ref;
46
+ return match.success === true;
47
+ });
48
+ const evaluateDcqlQuery = (credentialsSdJwt, query) => {
49
+ const credentials = credentialsSdJwt.map(_ref2 => {
50
+ let [, credential] = _ref2;
51
+ return mapCredentialToObject(credential);
52
+ });
53
+ try {
54
+ // Validate the query
55
+ const parsedQuery = _dcql.DcqlQuery.parse(query);
56
+ _dcql.DcqlQuery.validate(parsedQuery);
57
+ const queryResult = _dcql.DcqlQuery.query(parsedQuery, credentials);
58
+ if (!queryResult.canBeSatisfied) {
59
+ throw new Error("No credential can satisfy the provided DCQL query");
60
+ }
61
+ // Build an object vct:credentialJwt to map matched credentials to their JWT
62
+ const credentialsSdJwtByVct = credentials.reduce((acc, c, i) => ({
63
+ ...acc,
64
+ [c.vct]: credentialsSdJwt[i]
65
+ }), {});
66
+ return getDcqlQueryMatches(queryResult).map(_ref3 => {
67
+ var _queryResult$credenti;
68
+ let [id, match] = _ref3;
69
+ if (match.output.credential_format !== "vc+sd-jwt") {
70
+ throw new Error("Unsupported format"); // TODO [SIW-2082]: support MDOC credentials
71
+ }
72
+
73
+ const {
74
+ vct,
75
+ claims
76
+ } = match.output;
77
+ const purposes = (_queryResult$credenti = queryResult.credential_sets) === null || _queryResult$credenti === void 0 || (_queryResult$credenti = _queryResult$credenti.filter(set => {
78
+ var _set$matching_options;
79
+ return (_set$matching_options = set.matching_options) === null || _set$matching_options === void 0 ? void 0 : _set$matching_options.flat().includes(id);
80
+ })) === null || _queryResult$credenti === void 0 ? void 0 : _queryResult$credenti.map(credentialSet => {
81
+ var _credentialSet$purpos;
82
+ return {
83
+ description: (_credentialSet$purpos = credentialSet.purpose) === null || _credentialSet$purpos === void 0 ? void 0 : _credentialSet$purpos.toString(),
84
+ required: Boolean(credentialSet.required)
85
+ };
86
+ });
87
+ const [keyTag, credential] = credentialsSdJwtByVct[vct];
88
+ const requiredDisclosures = Object.values(claims);
89
+ return {
90
+ id,
91
+ vct,
92
+ keyTag,
93
+ credential,
94
+ requiredDisclosures,
95
+ // When it is a match but no credential_sets are found, the credential is required by default
96
+ // See https://openid.net/specs/openid-4-verifiable-presentations-1_0-24.html#section-6.3.1.2-2.1
97
+ purposes: purposes ?? [{
98
+ required: true
99
+ }]
100
+ };
101
+ });
102
+ } catch (error) {
103
+ // Invalid DCQL query structure
104
+ if ((0, _valibot.isValiError)(error)) {
105
+ throw new _errors.ValidationFailed({
106
+ message: "Invalid DCQL query",
107
+ reason: error.issues.map(issue => issue.message).join(", ")
108
+ });
109
+ }
110
+ if (error instanceof _dcql.DcqlError) {
111
+ // TODO [SIW-2110]: handle invalid DQCL query or let the error propagate
112
+ }
113
+ if (error instanceof _dcql.DcqlCredentialSetError) {
114
+ // TODO [SIW-2110]: handle missing credentials or let the error propagate
115
+ }
116
+ throw error;
117
+ }
118
+ };
119
+ exports.evaluateDcqlQuery = evaluateDcqlQuery;
120
+ const prepareRemotePresentations = async (credentials, nonce, clientId) => {
121
+ return Promise.all(credentials.map(async item => {
122
+ const {
123
+ vp_token
124
+ } = await (0, _sdJwt.prepareVpToken)(nonce, clientId, [item.credential, item.requestedClaims, (0, _crypto.createCryptoContextFor)(item.keyTag)]);
125
+ return {
126
+ credentialId: item.id,
127
+ requestedClaims: item.requestedClaims,
128
+ vpToken: vp_token,
129
+ format: "vc+sd-jwt"
130
+ };
131
+ }));
132
+ };
133
+ exports.prepareRemotePresentations = prepareRemotePresentations;
134
+ //# sourceMappingURL=07-evaluate-dcql-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_dcql","require","_valibot","_sdJwt","_errors","_crypto","mapCredentialToObject","jwt","sdJwt","disclosures","decode","credentialFormat","header","typ","Error","vct","payload","credential_format","claims","reduce","acc","disclosure","decoded","getDcqlQueryMatches","result","Object","entries","credential_matches","filter","_ref","match","success","evaluateDcqlQuery","credentialsSdJwt","query","credentials","map","_ref2","credential","parsedQuery","DcqlQuery","parse","validate","queryResult","canBeSatisfied","credentialsSdJwtByVct","c","i","_ref3","_queryResult$credenti","id","output","purposes","credential_sets","set","_set$matching_options","matching_options","flat","includes","credentialSet","_credentialSet$purpos","description","purpose","toString","required","Boolean","keyTag","requiredDisclosures","values","error","isValiError","ValidationFailed","message","reason","issues","issue","join","DcqlError","DcqlCredentialSetError","exports","prepareRemotePresentations","nonce","clientId","Promise","all","item","vp_token","prepareVpToken","requestedClaims","createCryptoContextFor","credentialId","vpToken","format"],"sourceRoot":"../../../../src","sources":["credential/presentation/07-evaluate-dcql-query.ts"],"mappings":"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"}