@pagopa/io-react-native-wallet 3.1.2 → 3.3.0
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.
- package/lib/commonjs/credential/issuance/README.md +44 -17
- package/lib/commonjs/credential/issuance/common/02-start-user-authorization.js +4 -3
- package/lib/commonjs/credential/issuance/common/02-start-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js +37 -8
- package/lib/commonjs/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js.map +1 -1
- package/lib/commonjs/credential/issuance/mrtd-pop/02-init-challenge.js +46 -38
- package/lib/commonjs/credential/issuance/mrtd-pop/02-init-challenge.js.map +1 -1
- package/lib/commonjs/credential/issuance/mrtd-pop/03-validate-challenge.js +58 -51
- package/lib/commonjs/credential/issuance/mrtd-pop/03-validate-challenge.js.map +1 -1
- package/lib/commonjs/credential/issuance/mrtd-pop/index.js +21 -5
- package/lib/commonjs/credential/issuance/mrtd-pop/index.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.0.0/02-start-user-authorization.js +3 -3
- package/lib/commonjs/credential/issuance/v1.0.0/02-start-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.0.0/03-complete-user-authorization.js +5 -2
- package/lib/commonjs/credential/issuance/v1.0.0/03-complete-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.0.0/05-obtain-credential.js +5 -1
- package/lib/commonjs/credential/issuance/v1.0.0/05-obtain-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.0.0/index.js +2 -1
- package/lib/commonjs/credential/issuance/v1.0.0/index.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.0.0/mappers.js +1 -1
- package/lib/commonjs/credential/issuance/v1.0.0/mappers.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js +0 -2
- package/lib/commonjs/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/02-start-user-authorization.js +20 -16
- package/lib/commonjs/credential/issuance/v1.3.3/02-start-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/04-authorize-access.js +20 -19
- package/lib/commonjs/credential/issuance/v1.3.3/04-authorize-access.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/05-obtain-credential.js +150 -57
- package/lib/commonjs/credential/issuance/v1.3.3/05-obtain-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/06-verify-and-parse-credential.js +4 -1
- package/lib/commonjs/credential/issuance/v1.3.3/06-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/index.js +2 -1
- package/lib/commonjs/credential/issuance/v1.3.3/index.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/mappers.js +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/mappers.js.map +1 -1
- package/lib/commonjs/credential/presentation/api/types.js.map +1 -1
- package/lib/commonjs/credential/presentation/{v1.3.3/utils.mdoc.js → common/utils/mdoc.js} +2 -2
- package/lib/commonjs/credential/presentation/common/utils/mdoc.js.map +1 -0
- package/lib/commonjs/credential/presentation/v1.0.0/05-verify-request-object.js +18 -12
- package/lib/commonjs/credential/presentation/v1.0.0/05-verify-request-object.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.0.0/07-send-authorization-response.js +3 -0
- package/lib/commonjs/credential/presentation/v1.0.0/07-send-authorization-response.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.0.0/index.js +0 -2
- package/lib/commonjs/credential/presentation/v1.0.0/index.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.0.0/mappers.js +23 -13
- package/lib/commonjs/credential/presentation/v1.0.0/mappers.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.0.0/types.js +25 -17
- package/lib/commonjs/credential/presentation/v1.0.0/types.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.3.3/05-verify-request-object.js +29 -6
- package/lib/commonjs/credential/presentation/v1.3.3/05-verify-request-object.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.3.3/06-evaluate-dcql-query.js +2 -2
- package/lib/commonjs/credential/presentation/v1.3.3/06-evaluate-dcql-query.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.3.3/07-send-authorization-response.js +9 -6
- package/lib/commonjs/credential/presentation/v1.3.3/07-send-authorization-response.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.3.3/mappers.js +25 -13
- package/lib/commonjs/credential/presentation/v1.3.3/mappers.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.3.3/types.js +6 -3
- package/lib/commonjs/credential/presentation/v1.3.3/types.js.map +1 -1
- package/lib/commonjs/credential/status/README.md +3 -2
- package/lib/commonjs/credential/status/v1.3.3/01-status-list.js +27 -5
- package/lib/commonjs/credential/status/v1.3.3/01-status-list.js.map +1 -1
- package/lib/commonjs/credential/status/v1.3.3/02-verify-and-parse-status-list.js +17 -6
- package/lib/commonjs/credential/status/v1.3.3/02-verify-and-parse-status-list.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/api/DigitalCredentialsCatalogue.js +26 -1
- package/lib/commonjs/credentials-catalogue/api/DigitalCredentialsCatalogue.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/fetch-and-parse-catalogue.js +4 -0
- package/lib/commonjs/credentials-catalogue/v1.3.3/fetch-and-parse-catalogue.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/fetch-translations.js +5 -3
- package/lib/commonjs/credentials-catalogue/v1.3.3/fetch-translations.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/mappers.js +9 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/mappers.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/types.js +49 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/types.js.map +1 -1
- package/lib/commonjs/mdoc/index.js +3 -24
- package/lib/commonjs/mdoc/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/__test__/types.test.js +2 -14
- package/lib/commonjs/sd-jwt/__test__/types.test.js.map +1 -1
- package/lib/commonjs/sd-jwt/__test__/utils.test.js +0 -12
- package/lib/commonjs/sd-jwt/__test__/utils.test.js.map +1 -1
- package/lib/commonjs/sd-jwt/types.js +1 -14
- package/lib/commonjs/sd-jwt/types.js.map +1 -1
- package/lib/commonjs/utils/callbacks.js +45 -7
- package/lib/commonjs/utils/callbacks.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +58 -5
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/x509.js +34 -0
- package/lib/commonjs/utils/x509.js.map +1 -0
- package/lib/commonjs/wallet-instance-attestation/api/types.js +0 -2
- package/lib/commonjs/wallet-instance-attestation/api/types.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/mappers.js +1 -14
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/mappers.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/types.js +2 -7
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/types.js.map +1 -1
- package/lib/commonjs/wallet-unit-attestation/api/types.js +0 -11
- package/lib/commonjs/wallet-unit-attestation/api/types.js.map +1 -1
- package/lib/module/credential/issuance/README.md +44 -17
- package/lib/module/credential/issuance/common/02-start-user-authorization.js +4 -3
- package/lib/module/credential/issuance/common/02-start-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js +39 -10
- package/lib/module/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js.map +1 -1
- package/lib/module/credential/issuance/mrtd-pop/02-init-challenge.js +47 -34
- package/lib/module/credential/issuance/mrtd-pop/02-init-challenge.js.map +1 -1
- package/lib/module/credential/issuance/mrtd-pop/03-validate-challenge.js +58 -47
- package/lib/module/credential/issuance/mrtd-pop/03-validate-challenge.js.map +1 -1
- package/lib/module/credential/issuance/mrtd-pop/index.js +20 -5
- package/lib/module/credential/issuance/mrtd-pop/index.js.map +1 -1
- package/lib/module/credential/issuance/v1.0.0/02-start-user-authorization.js +1 -1
- package/lib/module/credential/issuance/v1.0.0/02-start-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/v1.0.0/03-complete-user-authorization.js +6 -3
- package/lib/module/credential/issuance/v1.0.0/03-complete-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/v1.0.0/05-obtain-credential.js +4 -1
- package/lib/module/credential/issuance/v1.0.0/05-obtain-credential.js.map +1 -1
- package/lib/module/credential/issuance/v1.0.0/index.js +4 -3
- package/lib/module/credential/issuance/v1.0.0/index.js.map +1 -1
- package/lib/module/credential/issuance/v1.0.0/mappers.js +1 -1
- package/lib/module/credential/issuance/v1.0.0/mappers.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js +0 -2
- package/lib/module/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/02-start-user-authorization.js +20 -16
- package/lib/module/credential/issuance/v1.3.3/02-start-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js +1 -1
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/04-authorize-access.js +22 -19
- package/lib/module/credential/issuance/v1.3.3/04-authorize-access.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/05-obtain-credential.js +147 -55
- package/lib/module/credential/issuance/v1.3.3/05-obtain-credential.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/06-verify-and-parse-credential.js +4 -1
- package/lib/module/credential/issuance/v1.3.3/06-verify-and-parse-credential.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/index.js +4 -3
- package/lib/module/credential/issuance/v1.3.3/index.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/mappers.js +1 -1
- package/lib/module/credential/issuance/v1.3.3/mappers.js.map +1 -1
- package/lib/module/credential/presentation/api/types.js.map +1 -1
- package/lib/module/credential/presentation/{v1.3.3/utils.mdoc.js → common/utils/mdoc.js} +2 -2
- package/lib/module/credential/presentation/common/utils/mdoc.js.map +1 -0
- package/lib/module/credential/presentation/v1.0.0/05-verify-request-object.js +13 -7
- package/lib/module/credential/presentation/v1.0.0/05-verify-request-object.js.map +1 -1
- package/lib/module/credential/presentation/v1.0.0/07-send-authorization-response.js +4 -1
- package/lib/module/credential/presentation/v1.0.0/07-send-authorization-response.js.map +1 -1
- package/lib/module/credential/presentation/v1.0.0/index.js +0 -2
- package/lib/module/credential/presentation/v1.0.0/index.js.map +1 -1
- package/lib/module/credential/presentation/v1.0.0/mappers.js +23 -13
- package/lib/module/credential/presentation/v1.0.0/mappers.js.map +1 -1
- package/lib/module/credential/presentation/v1.0.0/types.js +23 -15
- package/lib/module/credential/presentation/v1.0.0/types.js.map +1 -1
- package/lib/module/credential/presentation/v1.3.3/05-verify-request-object.js +28 -6
- package/lib/module/credential/presentation/v1.3.3/05-verify-request-object.js.map +1 -1
- package/lib/module/credential/presentation/v1.3.3/06-evaluate-dcql-query.js +2 -3
- package/lib/module/credential/presentation/v1.3.3/06-evaluate-dcql-query.js.map +1 -1
- package/lib/module/credential/presentation/v1.3.3/07-send-authorization-response.js +9 -6
- package/lib/module/credential/presentation/v1.3.3/07-send-authorization-response.js.map +1 -1
- package/lib/module/credential/presentation/v1.3.3/mappers.js +25 -13
- package/lib/module/credential/presentation/v1.3.3/mappers.js.map +1 -1
- package/lib/module/credential/presentation/v1.3.3/types.js +5 -2
- package/lib/module/credential/presentation/v1.3.3/types.js.map +1 -1
- package/lib/module/credential/status/README.md +3 -2
- package/lib/module/credential/status/v1.3.3/01-status-list.js +27 -5
- package/lib/module/credential/status/v1.3.3/01-status-list.js.map +1 -1
- package/lib/module/credential/status/v1.3.3/02-verify-and-parse-status-list.js +17 -6
- package/lib/module/credential/status/v1.3.3/02-verify-and-parse-status-list.js.map +1 -1
- package/lib/module/credentials-catalogue/api/DigitalCredentialsCatalogue.js +24 -0
- package/lib/module/credentials-catalogue/api/DigitalCredentialsCatalogue.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.3.3/fetch-and-parse-catalogue.js +5 -1
- package/lib/module/credentials-catalogue/v1.3.3/fetch-and-parse-catalogue.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.3.3/fetch-translations.js +5 -3
- package/lib/module/credentials-catalogue/v1.3.3/fetch-translations.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.3.3/mappers.js +9 -1
- package/lib/module/credentials-catalogue/v1.3.3/mappers.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.3.3/types.js +47 -0
- package/lib/module/credentials-catalogue/v1.3.3/types.js.map +1 -1
- package/lib/module/mdoc/index.js +3 -24
- package/lib/module/mdoc/index.js.map +1 -1
- package/lib/module/sd-jwt/__test__/types.test.js +2 -14
- package/lib/module/sd-jwt/__test__/types.test.js.map +1 -1
- package/lib/module/sd-jwt/__test__/utils.test.js +0 -12
- package/lib/module/sd-jwt/__test__/utils.test.js.map +1 -1
- package/lib/module/sd-jwt/types.js +1 -14
- package/lib/module/sd-jwt/types.js.map +1 -1
- package/lib/module/utils/callbacks.js +45 -8
- package/lib/module/utils/callbacks.js.map +1 -1
- package/lib/module/utils/crypto.js +57 -6
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/x509.js +28 -0
- package/lib/module/utils/x509.js.map +1 -0
- package/lib/module/wallet-instance-attestation/api/types.js +0 -2
- package/lib/module/wallet-instance-attestation/api/types.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.3.3/mappers.js +1 -14
- package/lib/module/wallet-instance-attestation/v1.3.3/mappers.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.3.3/types.js +2 -7
- package/lib/module/wallet-instance-attestation/v1.3.3/types.js.map +1 -1
- package/lib/module/wallet-unit-attestation/api/types.js +0 -11
- package/lib/module/wallet-unit-attestation/api/types.js.map +1 -1
- package/lib/typescript/credential/issuance/api/05-obtain-credential.d.ts +20 -0
- package/lib/typescript/credential/issuance/api/05-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/api/06-verify-and-parse-credential.d.ts +4 -0
- package/lib/typescript/credential/issuance/api/06-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/common/02-start-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/common/06-verify-and-parse-credential.sdjwt.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/mrtd-pop/02-init-challenge.d.ts +12 -1
- package/lib/typescript/credential/issuance/mrtd-pop/02-init-challenge.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/mrtd-pop/03-validate-challenge.d.ts +12 -1
- package/lib/typescript/credential/issuance/mrtd-pop/03-validate-challenge.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/mrtd-pop/index.d.ts +2 -1
- package/lib/typescript/credential/issuance/mrtd-pop/index.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/03-complete-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/05-obtain-credential.d.ts +1 -0
- package/lib/typescript/credential/issuance/v1.0.0/05-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/index.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/01-evaluate-issuer-trust.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/02-start-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/04-authorize-access.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/05-obtain-credential.d.ts +23 -2
- package/lib/typescript/credential/issuance/v1.3.3/05-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/06-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/index.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/04-verify-certificate-chain.d.ts +9 -2
- package/lib/typescript/credential/presentation/api/04-verify-certificate-chain.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/05-verify-request-object.d.ts +2 -2
- package/lib/typescript/credential/presentation/api/05-verify-request-object.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/07-send-authorization-response.d.ts +2 -2
- package/lib/typescript/credential/presentation/api/07-send-authorization-response.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/types.d.ts +18 -0
- package/lib/typescript/credential/presentation/api/types.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/{v1.3.3/utils.mdoc.d.ts → common/utils/mdoc.d.ts} +2 -2
- package/lib/typescript/credential/presentation/common/utils/mdoc.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/v1.0.0/05-verify-request-object.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/07-send-authorization-response.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/index.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/mappers.d.ts +21 -13
- package/lib/typescript/credential/presentation/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/types.d.ts +23 -15
- package/lib/typescript/credential/presentation/v1.0.0/types.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/05-verify-request-object.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/06-evaluate-dcql-query.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/07-send-authorization-response.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/mappers.d.ts +89 -79
- package/lib/typescript/credential/presentation/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/types.d.ts +87 -79
- package/lib/typescript/credential/presentation/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/credential/status/api/status-list.d.ts +8 -4
- package/lib/typescript/credential/status/api/status-list.d.ts.map +1 -1
- package/lib/typescript/credential/status/v1.3.3/01-status-list.d.ts.map +1 -1
- package/lib/typescript/credential/status/v1.3.3/02-verify-and-parse-status-list.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/api/DigitalCredentialsCatalogue.d.ts +73 -0
- package/lib/typescript/credentials-catalogue/api/DigitalCredentialsCatalogue.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/api/index.d.ts +6 -5
- package/lib/typescript/credentials-catalogue/api/index.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.0.0/mappers.d.ts +25 -0
- package/lib/typescript/credentials-catalogue/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/fetch-and-parse-catalogue.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/fetch-translations.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/mappers.d.ts +51 -0
- package/lib/typescript/credentials-catalogue/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/types.d.ts +33 -0
- package/lib/typescript/credentials-catalogue/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/mdoc/index.d.ts +1 -1
- package/lib/typescript/mdoc/index.d.ts.map +1 -1
- package/lib/typescript/mdoc/utils.d.ts +0 -24
- package/lib/typescript/mdoc/utils.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/types.d.ts +0 -12
- package/lib/typescript/sd-jwt/types.d.ts.map +1 -1
- package/lib/typescript/utils/callbacks.d.ts +7 -0
- package/lib/typescript/utils/callbacks.d.ts.map +1 -1
- package/lib/typescript/utils/crypto.d.ts +32 -15
- package/lib/typescript/utils/crypto.d.ts.map +1 -1
- package/lib/typescript/utils/x509.d.ts +10 -0
- package/lib/typescript/utils/x509.d.ts.map +1 -0
- package/lib/typescript/wallet-instance-attestation/api/types.d.ts +0 -2
- package/lib/typescript/wallet-instance-attestation/api/types.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.0.0/mappers.d.ts +0 -2
- package/lib/typescript/wallet-instance-attestation/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.3.3/mappers.d.ts +2 -9
- package/lib/typescript/wallet-instance-attestation/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.3.3/types.d.ts +2 -7
- package/lib/typescript/wallet-instance-attestation/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/wallet-unit-attestation/api/types.d.ts +0 -11
- package/lib/typescript/wallet-unit-attestation/api/types.d.ts.map +1 -1
- package/lib/typescript/wallet-unit-attestation/v1.3.3/mappers.d.ts +0 -22
- package/lib/typescript/wallet-unit-attestation/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/wallet-unit-attestation/v1.3.3/types.d.ts +0 -11
- package/lib/typescript/wallet-unit-attestation/v1.3.3/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/credential/issuance/README.md +44 -17
- package/src/credential/issuance/api/05-obtain-credential.ts +24 -0
- package/src/credential/issuance/api/06-verify-and-parse-credential.ts +4 -0
- package/src/credential/issuance/common/02-start-user-authorization.ts +6 -3
- package/src/credential/issuance/common/06-verify-and-parse-credential.sdjwt.ts +42 -9
- package/src/credential/issuance/mrtd-pop/02-init-challenge.ts +69 -45
- package/src/credential/issuance/mrtd-pop/03-validate-challenge.ts +84 -62
- package/src/credential/issuance/mrtd-pop/index.ts +13 -5
- package/src/credential/issuance/v1.0.0/02-start-user-authorization.ts +1 -1
- package/src/credential/issuance/v1.0.0/03-complete-user-authorization.ts +8 -3
- package/src/credential/issuance/v1.0.0/05-obtain-credential.ts +6 -0
- package/src/credential/issuance/v1.0.0/index.ts +7 -3
- package/src/credential/issuance/v1.0.0/mappers.ts +4 -1
- package/src/credential/issuance/v1.3.3/01-evaluate-issuer-trust.ts +0 -2
- package/src/credential/issuance/v1.3.3/02-start-user-authorization.ts +24 -20
- package/src/credential/issuance/v1.3.3/03-complete-user-authorization.ts +1 -1
- package/src/credential/issuance/v1.3.3/04-authorize-access.ts +28 -23
- package/src/credential/issuance/v1.3.3/05-obtain-credential.ts +182 -87
- package/src/credential/issuance/v1.3.3/06-verify-and-parse-credential.ts +2 -1
- package/src/credential/issuance/v1.3.3/index.ts +7 -3
- package/src/credential/issuance/v1.3.3/mappers.ts +4 -1
- package/src/credential/presentation/api/04-verify-certificate-chain.ts +9 -2
- package/src/credential/presentation/api/05-verify-request-object.ts +2 -2
- package/src/credential/presentation/api/07-send-authorization-response.ts +2 -2
- package/src/credential/presentation/api/types.ts +16 -0
- package/src/credential/presentation/{v1.3.3/utils.mdoc.ts → common/utils/mdoc.ts} +2 -2
- package/src/credential/presentation/v1.0.0/05-verify-request-object.ts +21 -10
- package/src/credential/presentation/v1.0.0/07-send-authorization-response.ts +7 -0
- package/src/credential/presentation/v1.0.0/index.ts +0 -2
- package/src/credential/presentation/v1.0.0/mappers.ts +17 -17
- package/src/credential/presentation/v1.0.0/types.ts +23 -15
- package/src/credential/presentation/v1.3.3/05-verify-request-object.ts +63 -10
- package/src/credential/presentation/v1.3.3/06-evaluate-dcql-query.ts +3 -3
- package/src/credential/presentation/v1.3.3/07-send-authorization-response.ts +13 -4
- package/src/credential/presentation/v1.3.3/mappers.ts +19 -17
- package/src/credential/presentation/v1.3.3/types.ts +9 -3
- package/src/credential/status/README.md +3 -2
- package/src/credential/status/api/status-list.ts +10 -7
- package/src/credential/status/v1.3.3/01-status-list.ts +21 -7
- package/src/credential/status/v1.3.3/02-verify-and-parse-status-list.ts +19 -5
- package/src/credentials-catalogue/api/DigitalCredentialsCatalogue.ts +32 -0
- package/src/credentials-catalogue/api/index.ts +6 -3
- package/src/credentials-catalogue/v1.3.3/fetch-and-parse-catalogue.ts +6 -0
- package/src/credentials-catalogue/v1.3.3/fetch-translations.ts +6 -3
- package/src/credentials-catalogue/v1.3.3/mappers.ts +17 -1
- package/src/credentials-catalogue/v1.3.3/types.ts +51 -0
- package/src/mdoc/index.ts +5 -41
- package/src/sd-jwt/__test__/types.test.ts +1 -13
- package/src/sd-jwt/__test__/utils.test.ts +0 -12
- package/src/sd-jwt/types.ts +0 -13
- package/src/utils/callbacks.ts +57 -9
- package/src/utils/crypto.ts +86 -15
- package/src/utils/x509.ts +43 -0
- package/src/wallet-instance-attestation/api/types.ts +0 -2
- package/src/wallet-instance-attestation/v1.3.3/mappers.ts +3 -11
- package/src/wallet-instance-attestation/v1.3.3/types.ts +2 -7
- package/src/wallet-unit-attestation/api/types.ts +0 -11
- package/lib/commonjs/credential/issuance/common/authorization.js +0 -56
- package/lib/commonjs/credential/issuance/common/authorization.js.map +0 -1
- package/lib/commonjs/credential/presentation/v1.0.0/04-verify-certificate-chain.js +0 -12
- package/lib/commonjs/credential/presentation/v1.0.0/04-verify-certificate-chain.js.map +0 -1
- package/lib/commonjs/credential/presentation/v1.3.3/utils.mdoc.js.map +0 -1
- package/lib/module/credential/issuance/common/authorization.js +0 -48
- package/lib/module/credential/issuance/common/authorization.js.map +0 -1
- package/lib/module/credential/presentation/v1.0.0/04-verify-certificate-chain.js +0 -5
- package/lib/module/credential/presentation/v1.0.0/04-verify-certificate-chain.js.map +0 -1
- package/lib/module/credential/presentation/v1.3.3/utils.mdoc.js.map +0 -1
- package/lib/typescript/credential/issuance/common/authorization.d.ts +0 -21
- package/lib/typescript/credential/issuance/common/authorization.d.ts.map +0 -1
- package/lib/typescript/credential/presentation/v1.0.0/04-verify-certificate-chain.d.ts +0 -3
- package/lib/typescript/credential/presentation/v1.0.0/04-verify-certificate-chain.d.ts.map +0 -1
- package/lib/typescript/credential/presentation/v1.3.3/utils.mdoc.d.ts.map +0 -1
- package/src/credential/issuance/common/authorization.ts +0 -89
- package/src/credential/presentation/v1.0.0/04-verify-certificate-chain.ts +0 -10
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { decode as decodeJwt, verify } from "@pagopa/io-react-native-jwt";
|
|
2
|
+
import { IoWalletError } from "../../../utils/errors";
|
|
2
3
|
import { InvalidRequestObjectError } from "../common/errors";
|
|
3
|
-
import {
|
|
4
|
+
import { RawRequestObject } from "./types";
|
|
4
5
|
import { mapToRequestObject } from "./mappers";
|
|
5
6
|
import { getJwksFromRpConfig } from "./utils.jwks";
|
|
6
7
|
export const verifyRequestObject = async (requestObjectEncodedJwt, _ref) => {
|
|
@@ -9,6 +10,9 @@ export const verifyRequestObject = async (requestObjectEncodedJwt, _ref) => {
|
|
|
9
10
|
rpConf,
|
|
10
11
|
state
|
|
11
12
|
} = _ref;
|
|
13
|
+
if (!rpConf) {
|
|
14
|
+
throw new IoWalletError("Relying Party Configuration is required for OpenID Federation clients");
|
|
15
|
+
}
|
|
12
16
|
const requestObjectJwt = decodeJwt(requestObjectEncodedJwt);
|
|
13
17
|
const pubKey = getSigPublicKey(rpConf, requestObjectJwt.protectedHeader.kid);
|
|
14
18
|
try {
|
|
@@ -19,17 +23,19 @@ export const verifyRequestObject = async (requestObjectEncodedJwt, _ref) => {
|
|
|
19
23
|
} catch (_) {
|
|
20
24
|
throw new InvalidRequestObjectError("The Request Object signature verification failed");
|
|
21
25
|
}
|
|
22
|
-
const
|
|
23
|
-
|
|
26
|
+
const rawRequestObject = validateRequestObjectShape({
|
|
27
|
+
header: requestObjectJwt.protectedHeader,
|
|
28
|
+
payload: requestObjectJwt.payload
|
|
29
|
+
});
|
|
30
|
+
const isClientIdMatch = clientId === rawRequestObject.payload.client_id && clientId === rpConf.subject;
|
|
24
31
|
if (!isClientIdMatch) {
|
|
25
32
|
throw new InvalidRequestObjectError("Client ID does not match Request Object or Entity Configuration");
|
|
26
33
|
}
|
|
27
|
-
|
|
28
|
-
if (!isStateMatch) {
|
|
34
|
+
if (state && state !== rawRequestObject.payload.state) {
|
|
29
35
|
throw new InvalidRequestObjectError("The provided state does not match the Request Object's");
|
|
30
36
|
}
|
|
31
37
|
return {
|
|
32
|
-
requestObject: mapToRequestObject(
|
|
38
|
+
requestObject: mapToRequestObject(rawRequestObject)
|
|
33
39
|
};
|
|
34
40
|
};
|
|
35
41
|
|
|
@@ -41,7 +47,7 @@ export const verifyRequestObject = async (requestObjectEncodedJwt, _ref) => {
|
|
|
41
47
|
* @throws {InvalidRequestObjectError} when the Request Object cannot be parsed
|
|
42
48
|
*/
|
|
43
49
|
const validateRequestObjectShape = payload => {
|
|
44
|
-
const requestObjectParse =
|
|
50
|
+
const requestObjectParse = RawRequestObject.safeParse(payload);
|
|
45
51
|
if (requestObjectParse.success) {
|
|
46
52
|
return requestObjectParse.data;
|
|
47
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["decode","decodeJwt","verify","InvalidRequestObjectError","
|
|
1
|
+
{"version":3,"names":["decode","decodeJwt","verify","IoWalletError","InvalidRequestObjectError","RawRequestObject","mapToRequestObject","getJwksFromRpConfig","verifyRequestObject","requestObjectEncodedJwt","_ref","clientId","rpConf","state","requestObjectJwt","pubKey","getSigPublicKey","protectedHeader","kid","issuer","_","rawRequestObject","validateRequestObjectShape","header","payload","isClientIdMatch","client_id","subject","requestObject","requestObjectParse","safeParse","success","data","formatFlattenedZodErrors","error","flatten","keys","find","k","Error","errors","Object","entries","fieldErrors","map","_ref2","key","join"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.0.0/05-verify-request-object.ts"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EncryptJwe } from "@pagopa/io-react-native-jwt";
|
|
2
2
|
import { NoSuitableKeysFoundInEntityConfiguration } from "../common/errors";
|
|
3
3
|
import { hasStatusOrThrow } from "../../../utils/misc";
|
|
4
|
-
import { RelyingPartyResponseError, RelyingPartyResponseErrorCodes, ResponseErrorBuilder, UnexpectedStatusCodeError } from "../../../utils/errors";
|
|
4
|
+
import { IoWalletError, RelyingPartyResponseError, RelyingPartyResponseErrorCodes, ResponseErrorBuilder, UnexpectedStatusCodeError } from "../../../utils/errors";
|
|
5
5
|
import { prepareVpToken } from "../../../sd-jwt";
|
|
6
6
|
import { AuthorizationResponse } from "./types";
|
|
7
7
|
import { getJwksFromRpConfig } from "./utils.jwks";
|
|
@@ -90,6 +90,9 @@ export const sendAuthorizationResponse = async function (requestObject, remotePr
|
|
|
90
90
|
let {
|
|
91
91
|
appFetch = fetch
|
|
92
92
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
93
|
+
if (!rpConf) {
|
|
94
|
+
throw new IoWalletError("Relying Party Configuration is required for OpenID Federation clients");
|
|
95
|
+
}
|
|
93
96
|
const {
|
|
94
97
|
presentations
|
|
95
98
|
} = remotePresentation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EncryptJwe","NoSuitableKeysFoundInEntityConfiguration","hasStatusOrThrow","RelyingPartyResponseError","RelyingPartyResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","prepareVpToken","AuthorizationResponse","getJwksFromRpConfig","buildDirectPostBody","createCryptoContextFor","choosePublicKeyToEncrypt","rpJwkKeys","encKey","find","jwk","use","buildDirectPostJwtBody","requestObject","rpConf","payload","authzResponsePayload","JSON","stringify","state","keys","encPublicJwk","authorization_encrypted_response_alg","authorization_encrypted_response_enc","defaultAlg","kty","encryptedResponse","alg","enc","kid","encrypt","formBody","URLSearchParams","response","toString","prepareRemotePresentations","credentials","authRequestObject","presentations","Promise","all","map","item","vp_token","nonce","clientId","credential","presentationFrame","keyTag","requestedClaims","requiredDisclosures","_ref","name","credentialId","id","vpToken","format","sendAuthorizationResponse","remotePresentation","appFetch","fetch","arguments","length","undefined","requestBody","reduce","acc","presentation","response_uri","method","headers","body","then","res","json","parse","catch","handleAuthorizationResponseError","sendAuthorizationErrorResponse","_ref2","error","errorDescription","error_description","e","handle","code","InvalidAuthorizationResponse","message","RelyingPartyGenericError","buildFrom"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.0.0/07-send-authorization-response.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,6BAA6B;AACxD,SAASC,wCAAwC,QAAQ,kBAAkB;AAC3E,SAASC,gBAAgB,QAAQ,qBAAqB;AAEtD,SACEC,yBAAyB,EACzBC,8BAA8B,EAC9BC,oBAAoB,EACpBC,yBAAyB,QACpB,uBAAuB;AAC9B,SAASC,cAAc,QAAQ,iBAAiB;AAGhD,SAASC,qBAAqB,QAAwC,SAAS;AAC/E,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,sBAAsB,QAAQ,uBAAuB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAIC,SAAgB,IAAU;EACjE,MAAMC,MAAM,GAAGD,SAAS,CAACE,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,GAAG,KAAK,KAAK,CAAC;EAEzD,IAAIH,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;;EAEA;EACA,MAAM,
|
|
1
|
+
{"version":3,"names":["EncryptJwe","NoSuitableKeysFoundInEntityConfiguration","hasStatusOrThrow","IoWalletError","RelyingPartyResponseError","RelyingPartyResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","prepareVpToken","AuthorizationResponse","getJwksFromRpConfig","buildDirectPostBody","createCryptoContextFor","choosePublicKeyToEncrypt","rpJwkKeys","encKey","find","jwk","use","buildDirectPostJwtBody","requestObject","rpConf","payload","authzResponsePayload","JSON","stringify","state","keys","encPublicJwk","authorization_encrypted_response_alg","authorization_encrypted_response_enc","defaultAlg","kty","encryptedResponse","alg","enc","kid","encrypt","formBody","URLSearchParams","response","toString","prepareRemotePresentations","credentials","authRequestObject","presentations","Promise","all","map","item","vp_token","nonce","clientId","credential","presentationFrame","keyTag","requestedClaims","requiredDisclosures","_ref","name","credentialId","id","vpToken","format","sendAuthorizationResponse","remotePresentation","appFetch","fetch","arguments","length","undefined","requestBody","reduce","acc","presentation","response_uri","method","headers","body","then","res","json","parse","catch","handleAuthorizationResponseError","sendAuthorizationErrorResponse","_ref2","error","errorDescription","error_description","e","handle","code","InvalidAuthorizationResponse","message","RelyingPartyGenericError","buildFrom"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.0.0/07-send-authorization-response.ts"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { startFlowFromQR } from "./01-start-flow";
|
|
2
2
|
import { evaluateRelyingPartyTrust } from "./02-evaluate-rp-trust";
|
|
3
3
|
import { getRequestObject } from "./03-get-request-object";
|
|
4
|
-
import { verifyAuthRequestCertificateChain } from "./04-verify-certificate-chain";
|
|
5
4
|
import { verifyRequestObject } from "./05-verify-request-object";
|
|
6
5
|
import { evaluateDcqlQuery } from "./06-evaluate-dcql-query";
|
|
7
6
|
import { prepareRemotePresentations, sendAuthorizationResponse, sendAuthorizationErrorResponse } from "./07-send-authorization-response";
|
|
@@ -9,7 +8,6 @@ export const RemotePresentation = {
|
|
|
9
8
|
startFlowFromQR,
|
|
10
9
|
evaluateRelyingPartyTrust,
|
|
11
10
|
getRequestObject,
|
|
12
|
-
verifyAuthRequestCertificateChain,
|
|
13
11
|
verifyRequestObject,
|
|
14
12
|
evaluateDcqlQuery,
|
|
15
13
|
prepareRemotePresentations,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["startFlowFromQR","evaluateRelyingPartyTrust","getRequestObject","
|
|
1
|
+
{"version":3,"names":["startFlowFromQR","evaluateRelyingPartyTrust","getRequestObject","verifyRequestObject","evaluateDcqlQuery","prepareRemotePresentations","sendAuthorizationResponse","sendAuthorizationErrorResponse","RemotePresentation"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.0.0/index.ts"],"mappings":"AACA,SAASA,eAAe,QAAQ,iBAAiB;AACjD,SAASC,yBAAyB,QAAQ,wBAAwB;AAClE,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SACEC,0BAA0B,EAC1BC,yBAAyB,EACzBC,8BAA8B,QACzB,kCAAkC;AAEzC,OAAO,MAAMC,kBAAyC,GAAG;EACvDR,eAAe;EACfC,yBAAyB;EACzBC,gBAAgB;EAChBC,mBAAmB;EACnBC,iBAAiB;EACjBC,0BAA0B;EAC1BC,yBAAyB;EACzBC;AACF,CAAC"}
|
|
@@ -1,25 +1,35 @@
|
|
|
1
1
|
import { createMapper } from "../../../utils/mappers";
|
|
2
|
-
export const mapToRelyingPartyConfig = createMapper(
|
|
2
|
+
export const mapToRelyingPartyConfig = createMapper(_ref => {
|
|
3
|
+
let {
|
|
4
|
+
payload
|
|
5
|
+
} = _ref;
|
|
3
6
|
const {
|
|
4
7
|
federation_entity,
|
|
5
8
|
openid_credential_verifier
|
|
6
|
-
} =
|
|
9
|
+
} = payload.metadata;
|
|
7
10
|
return {
|
|
8
|
-
subject:
|
|
11
|
+
subject: payload.sub,
|
|
9
12
|
jwks: openid_credential_verifier.jwks,
|
|
10
13
|
authorization_encrypted_response_alg: openid_credential_verifier.authorization_encrypted_response_alg,
|
|
11
14
|
authorization_encrypted_response_enc: openid_credential_verifier.authorization_encrypted_response_enc,
|
|
12
15
|
federation_entity
|
|
13
16
|
};
|
|
14
17
|
});
|
|
15
|
-
export const mapToRequestObject = createMapper(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
export const mapToRequestObject = createMapper(_ref2 => {
|
|
19
|
+
let {
|
|
20
|
+
header,
|
|
21
|
+
payload
|
|
22
|
+
} = _ref2;
|
|
23
|
+
return {
|
|
24
|
+
iss: payload.iss,
|
|
25
|
+
client_id: payload.client_id,
|
|
26
|
+
dcql_query: payload.dcql_query,
|
|
27
|
+
nonce: payload.nonce,
|
|
28
|
+
response_uri: payload.response_uri,
|
|
29
|
+
state: payload.state,
|
|
30
|
+
response_mode: payload.response_mode,
|
|
31
|
+
response_type: payload.response_type,
|
|
32
|
+
trust_chain: header.trust_chain
|
|
33
|
+
};
|
|
34
|
+
});
|
|
25
35
|
//# sourceMappingURL=mappers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMapper","mapToRelyingPartyConfig","
|
|
1
|
+
{"version":3,"names":["createMapper","mapToRelyingPartyConfig","_ref","payload","federation_entity","openid_credential_verifier","metadata","subject","sub","jwks","authorization_encrypted_response_alg","authorization_encrypted_response_enc","mapToRequestObject","_ref2","header","iss","client_id","dcql_query","nonce","response_uri","state","response_mode","response_type","trust_chain"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.0.0/mappers.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,wBAAwB;AAMrD,OAAO,MAAMC,uBAAuB,GAAGD,YAAY,CAGjDE,IAAA,IAAiB;EAAA,IAAhB;IAAEC;EAAQ,CAAC,GAAAD,IAAA;EACZ,MAAM;IAAEE,iBAAiB;IAAEC;EAA2B,CAAC,GAAGF,OAAO,CAACG,QAAQ;EAC1E,OAAO;IACLC,OAAO,EAAEJ,OAAO,CAACK,GAAG;IACpBC,IAAI,EAAEJ,0BAA0B,CAACI,IAAI;IACrCC,oCAAoC,EAClCL,0BAA0B,CAACK,oCAAoC;IACjEC,oCAAoC,EAClCN,0BAA0B,CAACM,oCAAoC;IACjEP;EACF,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,MAAMQ,kBAAkB,GAAGZ,YAAY,CAC5Ca,KAAA;EAAA,IAAC;IAAEC,MAAM;IAAEX;EAAQ,CAAC,GAAAU,KAAA;EAAA,OAAM;IACxBE,GAAG,EAAEZ,OAAO,CAACY,GAAG;IAChBC,SAAS,EAAEb,OAAO,CAACa,SAAS;IAC5BC,UAAU,EAAEd,OAAO,CAACc,UAAU;IAC9BC,KAAK,EAAEf,OAAO,CAACe,KAAK;IACpBC,YAAY,EAAEhB,OAAO,CAACgB,YAAY;IAClCC,KAAK,EAAEjB,OAAO,CAACiB,KAAK;IACpBC,aAAa,EAAElB,OAAO,CAACkB,aAAa;IACpCC,aAAa,EAAEnB,OAAO,CAACmB,aAAa;IACpCC,WAAW,EAAET,MAAM,CAACS;EACtB,CAAC;AAAA,CACH,CAAC"}
|
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
2
|
import { UnixTime } from "../../../utils/zod";
|
|
3
3
|
import { ErrorResponse } from "../api/types";
|
|
4
|
-
export const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
4
|
+
export const RawRequestObject = z.object({
|
|
5
|
+
header: z.object({
|
|
6
|
+
alg: z.string(),
|
|
7
|
+
kid: z.string(),
|
|
8
|
+
typ: z.literal("oauth-authz-req+jwt"),
|
|
9
|
+
trust_chain: z.array(z.string()).optional()
|
|
10
|
+
}),
|
|
11
|
+
payload: z.object({
|
|
12
|
+
iss: z.string(),
|
|
13
|
+
iat: UnixTime,
|
|
14
|
+
exp: UnixTime,
|
|
15
|
+
state: z.string(),
|
|
16
|
+
nonce: z.string(),
|
|
17
|
+
response_uri: z.string(),
|
|
18
|
+
request_uri_method: z.string().optional(),
|
|
19
|
+
response_type: z.literal("vp_token"),
|
|
20
|
+
response_mode: z.literal("direct_post.jwt"),
|
|
21
|
+
client_id: z.string(),
|
|
22
|
+
dcql_query: z.record(z.string(), z.any()),
|
|
23
|
+
// Validation happens within the `dcql` library, no need to duplicate it here
|
|
24
|
+
scope: z.string().optional(),
|
|
25
|
+
wallet_nonce: z.string().optional()
|
|
26
|
+
})
|
|
19
27
|
});
|
|
20
28
|
|
|
21
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","UnixTime","ErrorResponse","
|
|
1
|
+
{"version":3,"names":["z","UnixTime","ErrorResponse","RawRequestObject","object","header","alg","string","kid","typ","literal","trust_chain","array","optional","payload","iss","iat","exp","state","nonce","response_uri","request_uri_method","response_type","response_mode","client_id","dcql_query","record","any","scope","wallet_nonce","DirectAuthorizationBodyPayload","union","vp_token","error","error_description","AuthorizationResponse","status","response_code","redirect_uri"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.0.0/types.ts"],"mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,KAAK;AACxB,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,aAAa,QAAQ,cAAc;AAG5C,OAAO,MAAMC,gBAAgB,GAAGH,CAAC,CAACI,MAAM,CAAC;EACvCC,MAAM,EAAEL,CAAC,CAACI,MAAM,CAAC;IACfE,GAAG,EAAEN,CAAC,CAACO,MAAM,CAAC,CAAC;IACfC,GAAG,EAAER,CAAC,CAACO,MAAM,CAAC,CAAC;IACfE,GAAG,EAAET,CAAC,CAACU,OAAO,CAAC,qBAAqB,CAAC;IACrCC,WAAW,EAAEX,CAAC,CAACY,KAAK,CAACZ,CAAC,CAACO,MAAM,CAAC,CAAC,CAAC,CAACM,QAAQ,CAAC;EAC5C,CAAC,CAAC;EACFC,OAAO,EAAEd,CAAC,CAACI,MAAM,CAAC;IAChBW,GAAG,EAAEf,CAAC,CAACO,MAAM,CAAC,CAAC;IACfS,GAAG,EAAEf,QAAQ;IACbgB,GAAG,EAAEhB,QAAQ;IACbiB,KAAK,EAAElB,CAAC,CAACO,MAAM,CAAC,CAAC;IACjBY,KAAK,EAAEnB,CAAC,CAACO,MAAM,CAAC,CAAC;IACjBa,YAAY,EAAEpB,CAAC,CAACO,MAAM,CAAC,CAAC;IACxBc,kBAAkB,EAAErB,CAAC,CAACO,MAAM,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;IACzCS,aAAa,EAAEtB,CAAC,CAACU,OAAO,CAAC,UAAU,CAAC;IACpCa,aAAa,EAAEvB,CAAC,CAACU,OAAO,CAAC,iBAAiB,CAAC;IAC3Cc,SAAS,EAAExB,CAAC,CAACO,MAAM,CAAC,CAAC;IACrBkB,UAAU,EAAEzB,CAAC,CAAC0B,MAAM,CAAC1B,CAAC,CAACO,MAAM,CAAC,CAAC,EAAEP,CAAC,CAAC2B,GAAG,CAAC,CAAC,CAAC;IAAE;IAC3CC,KAAK,EAAE5B,CAAC,CAACO,MAAM,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;IAC5BgB,YAAY,EAAE7B,CAAC,CAACO,MAAM,CAAC,CAAC,CAACM,QAAQ,CAAC;EACpC,CAAC;AACH,CAAC,CAAC;;AAEF;AACA;AACA;;AAIA,OAAO,MAAMiB,8BAA8B,GAAG9B,CAAC,CAAC+B,KAAK,CAAC,CACpD/B,CAAC,CAACI,MAAM,CAAC;EACP4B,QAAQ,EAAEhC,CAAC,CAAC0B,MAAM,CAAC1B,CAAC,CAACO,MAAM,CAAC,CAAC,EAAEP,CAAC,CAACO,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC,EACFP,CAAC,CAACI,MAAM,CAAC;EAAE6B,KAAK,EAAE/B,aAAa;EAAEgC,iBAAiB,EAAElC,CAAC,CAACO,MAAM,CAAC;AAAE,CAAC,CAAC,CAClE,CAAC;AAGF,OAAO,MAAM4B,qBAAqB,GAAGnC,CAAC,CAACI,MAAM,CAAC;EAC5CgC,MAAM,EAAEpC,CAAC,CAACO,MAAM,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EAC7BwB,aAAa,EAAErC,CAAC,CAACO,MAAM,CAAC,CAAC,CAACM,QAAQ,CAAC,CAAC;EACpCyB,YAAY,EAAEtC,CAAC,CAACO,MAAM,CAAC,CAAC,CAACM,QAAQ,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { parseAuthorizeRequest as sdkParseAuthorizeRequest } from "@pagopa/io-wallet-oid4vp";
|
|
1
|
+
import { parseAuthorizeRequest as sdkParseAuthorizeRequest, ClientIdPrefix, extractClientIdPrefix } from "@pagopa/io-wallet-oid4vp";
|
|
2
|
+
import QuickCrypto from "react-native-quick-crypto";
|
|
2
3
|
import { partialCallbacks } from "../../../utils/callbacks";
|
|
3
4
|
import { sdkConfigV1_3 } from "../../../utils/config";
|
|
5
|
+
import { IoWalletError } from "../../../utils/errors";
|
|
4
6
|
import { InvalidRequestObjectError } from "../common/errors";
|
|
5
7
|
import { mapSdkRequestObjectError } from "./sdkErrorMapper";
|
|
6
8
|
import { mapToRequestObject } from "./mappers";
|
|
@@ -16,13 +18,33 @@ export const verifyRequestObject = async (requestObjectEncodedJwt, _ref) => {
|
|
|
16
18
|
verifyJwt: partialCallbacks.verifyJwt
|
|
17
19
|
}
|
|
18
20
|
}).catch(mapSdkRequestObjectError);
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
if (
|
|
22
|
-
|
|
21
|
+
const rawRequestObject = parsedRequestObject;
|
|
22
|
+
const clientIdPrefix = extractClientIdPrefix(clientId);
|
|
23
|
+
if (clientIdPrefix === ClientIdPrefix.X509_HASH) {
|
|
24
|
+
validateX509HashClient(rawRequestObject.header.x5c, clientId);
|
|
25
|
+
}
|
|
26
|
+
if (clientIdPrefix === ClientIdPrefix.OPENID_FEDERATION || clientIdPrefix === ClientIdPrefix.NONE) {
|
|
27
|
+
validateOpenIDFederationClient(rawRequestObject, clientId, rpConf);
|
|
23
28
|
}
|
|
24
29
|
return {
|
|
25
|
-
requestObject: mapToRequestObject(
|
|
30
|
+
requestObject: mapToRequestObject(rawRequestObject)
|
|
26
31
|
};
|
|
27
32
|
};
|
|
33
|
+
const validateOpenIDFederationClient = (requestObject, clientId, rpConf) => {
|
|
34
|
+
if (!rpConf) {
|
|
35
|
+
throw new IoWalletError("Relying Party Configuration is required for OpenID Federation clients");
|
|
36
|
+
}
|
|
37
|
+
const isClientIdMatch = clientId === requestObject.payload.client_id && stripOpenIdFederationPrefix(clientId) === rpConf.subject;
|
|
38
|
+
if (!isClientIdMatch) {
|
|
39
|
+
throw new InvalidRequestObjectError("Client ID does not match Request Object or Entity Configuration");
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const validateX509HashClient = (certificateChain, clientId) => {
|
|
43
|
+
const [, x509Hash] = clientId.split(":");
|
|
44
|
+
const calculatedHash = QuickCrypto.createHash("sha-256").update(certificateChain[0], "base64").digest("base64url");
|
|
45
|
+
if (x509Hash !== calculatedHash) {
|
|
46
|
+
throw new InvalidRequestObjectError("x509_hash does not match the hash of the x5c leaf certificate");
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const stripOpenIdFederationPrefix = clientId => clientId.replace("openid_federation:", "");
|
|
28
50
|
//# sourceMappingURL=05-verify-request-object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["parseAuthorizeRequest","sdkParseAuthorizeRequest","partialCallbacks","sdkConfigV1_3","InvalidRequestObjectError","mapSdkRequestObjectError","mapToRequestObject","verifyRequestObject","requestObjectEncodedJwt","_ref","clientId","rpConf","parsedRequestObject","config","requestObjectJwt","callbacks","verifyJwt","catch","
|
|
1
|
+
{"version":3,"names":["parseAuthorizeRequest","sdkParseAuthorizeRequest","ClientIdPrefix","extractClientIdPrefix","QuickCrypto","partialCallbacks","sdkConfigV1_3","IoWalletError","InvalidRequestObjectError","mapSdkRequestObjectError","mapToRequestObject","verifyRequestObject","requestObjectEncodedJwt","_ref","clientId","rpConf","parsedRequestObject","config","requestObjectJwt","callbacks","verifyJwt","catch","rawRequestObject","clientIdPrefix","X509_HASH","validateX509HashClient","header","x5c","OPENID_FEDERATION","NONE","validateOpenIDFederationClient","requestObject","isClientIdMatch","payload","client_id","stripOpenIdFederationPrefix","subject","certificateChain","x509Hash","split","calculatedHash","createHash","update","digest","replace"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.3.3/05-verify-request-object.ts"],"mappings":"AACA,SACEA,qBAAqB,IAAIC,wBAAwB,EACjDC,cAAc,EACdC,qBAAqB,QAChB,0BAA0B;AACjC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,yBAAyB,QAAQ,kBAAkB;AAC5D,SAASC,wBAAwB,QAAQ,kBAAkB;AAC3D,SAASC,kBAAkB,QAAQ,WAAW;AAG9C,OAAO,MAAMC,mBAAiE,GAC5E,MAAAA,CAAOC,uBAAuB,EAAAC,IAAA,KAA2B;EAAA,IAAzB;IAAEC,QAAQ;IAAEC;EAAO,CAAC,GAAAF,IAAA;EAClD,MAAMG,mBAAmB,GAAG,MAAMf,wBAAwB,CAAC;IACzDgB,MAAM,EAAEX,aAAa;IACrBY,gBAAgB,EAAEN,uBAAuB;IACzCO,SAAS,EAAE;MACTC,SAAS,EAAEf,gBAAgB,CAACe;IAC9B;EACF,CAAC,CAAC,CAACC,KAAK,CAACZ,wBAAwB,CAAC;EAElC,MAAMa,gBAAgB,GAAGN,mBAAuC;EAEhE,MAAMO,cAAc,GAAGpB,qBAAqB,CAACW,QAAQ,CAAC;EAEtD,IAAIS,cAAc,KAAKrB,cAAc,CAACsB,SAAS,EAAE;IAC/CC,sBAAsB,CAACH,gBAAgB,CAACI,MAAM,CAACC,GAAG,EAAEb,QAAQ,CAAC;EAC/D;EAEA,IACES,cAAc,KAAKrB,cAAc,CAAC0B,iBAAiB,IACnDL,cAAc,KAAKrB,cAAc,CAAC2B,IAAI,EACtC;IACAC,8BAA8B,CAACR,gBAAgB,EAAER,QAAQ,EAAEC,MAAM,CAAC;EACpE;EAEA,OAAO;IACLgB,aAAa,EAAErB,kBAAkB,CAACY,gBAAgB;EACpD,CAAC;AACH,CAAC;AAEH,MAAMQ,8BAA8B,GAAGA,CACrCC,aAA+B,EAC/BjB,QAAgB,EAChBC,MAAsC,KACnC;EACH,IAAI,CAACA,MAAM,EAAE;IACX,MAAM,IAAIR,aAAa,CACrB,uEACF,CAAC;EACH;EAEA,MAAMyB,eAAe,GACnBlB,QAAQ,KAAKiB,aAAa,CAACE,OAAO,CAACC,SAAS,IAC5CC,2BAA2B,CAACrB,QAAQ,CAAC,KAAKC,MAAM,CAACqB,OAAO;EAE1D,IAAI,CAACJ,eAAe,EAAE;IACpB,MAAM,IAAIxB,yBAAyB,CACjC,iEACF,CAAC;EACH;AACF,CAAC;AAED,MAAMiB,sBAAsB,GAAGA,CAC7BY,gBAA0B,EAC1BvB,QAAgB,KACb;EACH,MAAM,GAAGwB,QAAQ,CAAC,GAAGxB,QAAQ,CAACyB,KAAK,CAAC,GAAG,CAAC;EAExC,MAAMC,cAAc,GAAGpC,WAAW,CAACqC,UAAU,CAAC,SAAS,CAAC,CACrDC,MAAM,CAACL,gBAAgB,CAAC,CAAC,CAAC,EAAG,QAAQ,CAAC,CACtCM,MAAM,CAAC,WAAW,CAAC;EAEtB,IAAIL,QAAQ,KAAKE,cAAc,EAAE;IAC/B,MAAM,IAAIhC,yBAAyB,CACjC,+DACF,CAAC;EACH;AACF,CAAC;AAED,MAAM2B,2BAA2B,GAAIrB,QAAgB,IACnDA,QAAQ,CAAC8B,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { DcqlQuery, DcqlError } from "dcql";
|
|
2
2
|
import { isValiError } from "valibot";
|
|
3
3
|
import { CredentialsNotFoundError } from "../common/errors";
|
|
4
|
-
import * as mdocUtils from "./utils.mdoc";
|
|
5
4
|
import * as sdJwtUtils from "../common/utils/sd-jwt";
|
|
6
|
-
import
|
|
7
|
-
import { extractFailedCredentialsDetails, getDcqlQueryMatches, getPresentationFrameFromDcqlMatch } from "../common/utils/dcql";
|
|
5
|
+
import * as mdocUtils from "../common/utils/mdoc";
|
|
6
|
+
import { extractFailedCredentialsDetails, getDcqlQueryMatches, getClaimsFromDcqlMatch, getPresentationFrameFromDcqlMatch } from "../common/utils/dcql";
|
|
8
7
|
export const evaluateDcqlQuery = async function (query, credentialsSdJwt) {
|
|
9
8
|
let credentialsMdoc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
10
9
|
const credentials = (await Promise.all([sdJwtUtils.mapCredentialsToObj(credentialsSdJwt), mdocUtils.mapCredentialsToObj(credentialsMdoc)])).flat();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DcqlQuery","DcqlError","isValiError","CredentialsNotFoundError","
|
|
1
|
+
{"version":3,"names":["DcqlQuery","DcqlError","isValiError","CredentialsNotFoundError","sdJwtUtils","mdocUtils","extractFailedCredentialsDetails","getDcqlQueryMatches","getClaimsFromDcqlMatch","getPresentationFrameFromDcqlMatch","evaluateDcqlQuery","query","credentialsSdJwt","credentialsMdoc","arguments","length","undefined","credentials","Promise","all","mapCredentialsToObj","flat","credentialsById","reduce","acc","c","vct","doctype","original_credential","parsedQuery","parse","validate","queryResult","can_be_satisfied","map","_ref","_queryResult$credenti","_match$valid_credenti","id","match","purposes","credential_sets","filter","set","_set$matching_options","matching_options","includes","credentialSet","_credentialSet$purpos","description","purpose","toString","required","Boolean","matchOutput","valid_credentials","meta","output","credential_format","keyTag","credential","requiredDisclosures","presentationFrame","format","getPresentationFrameFromClaims","Error","error","message","code","cause","issues"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.3.3/06-evaluate-dcql-query.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,SAAS,QAAQ,MAAM;AAC3C,SAASC,WAAW,QAAQ,SAAS;AACrC,SAASC,wBAAwB,QAAQ,kBAAkB;AAE3D,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AACpD,OAAO,KAAKC,SAAS,MAAM,sBAAsB;AAEjD,SACEC,+BAA+B,EAC/BC,mBAAmB,EACnBC,sBAAsB,EACtBC,iCAAiC,QAC5B,sBAAsB;AAE7B,OAAO,MAAMC,iBAA6D,GACxE,eAAAA,CAAOC,KAAK,EAAEC,gBAAgB,EAA2B;EAAA,IAAzBC,eAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAClD,MAAMG,WAAW,GAAG,CAClB,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChBf,UAAU,CAACgB,mBAAmB,CAACR,gBAAgB,CAAC,EAChDP,SAAS,CAACe,mBAAmB,CAACP,eAAe,CAAC,CAC/C,CAAC,EACFQ,IAAI,CAAC,CAAC;;EAER;EACA,MAAMC,eAAe,GAAGL,WAAW,CAACM,MAAM,CACxC,CAACC,GAAG,EAAEC,CAAC,MAAM;IACX,GAAGD,GAAG;IACN,CAAC,KAAK,IAAIC,CAAC,GAAGA,CAAC,CAACC,GAAG,GAAGD,CAAC,CAACE,OAAO,GAAGF,CAAC,CAACG;EACtC,CAAC,CAAC,EACF,CAAC,CACH,CAAC;EAED,IAAI;IACF;IACA,MAAMC,WAAW,GAAG7B,SAAS,CAAC8B,KAAK,CAACnB,KAAK,CAAC;IAC1CX,SAAS,CAAC+B,QAAQ,CAACF,WAAW,CAAC;IAE/B,MAAMG,WAAW,GAAGhC,SAAS,CAACW,KAAK,CAACkB,WAAW,EAAEZ,WAAW,CAAC;IAE7D,IAAI,CAACe,WAAW,CAACC,gBAAgB,EAAE;MACjC,MAAM,IAAI9B,wBAAwB,CAChCG,+BAA+B,CAAC0B,WAAW,CAC7C,CAAC;IACH;IAEA,OAAOzB,mBAAmB,CAACyB,WAAW,CAAC,CAACE,GAAG,CAACC,IAAA,IAAiB;MAAA,IAAAC,qBAAA,EAAAC,qBAAA;MAAA,IAAhB,CAACC,EAAE,EAAEC,KAAK,CAAC,GAAAJ,IAAA;MACtD,MAAMK,QAAQ,IAAAJ,qBAAA,GAAGJ,WAAW,CAACS,eAAe,cAAAL,qBAAA,gBAAAA,qBAAA,GAA3BA,qBAAA,CACbM,MAAM,CAAEC,GAAG;QAAA,IAAAC,qBAAA;QAAA,QAAAA,qBAAA,GAAKD,GAAG,CAACE,gBAAgB,cAAAD,qBAAA,uBAApBA,qBAAA,CAAsBvB,IAAI,CAAC,CAAC,CAACyB,QAAQ,CAACR,EAAE,CAAC;MAAA,EAAC,cAAAF,qBAAA,uBAD7CA,qBAAA,CAEbF,GAAG,CAAqBa,aAAa;QAAA,IAAAC,qBAAA;QAAA,OAAM;UAC3CC,WAAW,GAAAD,qBAAA,GAAED,aAAa,CAACG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBG,QAAQ,CAAC,CAAC;UAC9CC,QAAQ,EAAEC,OAAO,CAACN,aAAa,CAACK,QAAQ;QAC1C,CAAC;MAAA,CAAC,CAAC;MAEL,MAAME,WAAW,IAAAjB,qBAAA,GAAGE,KAAK,CAACgB,iBAAiB,CAAC,CAAC,CAAC,cAAAlB,qBAAA,uBAA1BA,qBAAA,CAA4BmB,IAAI,CAACC,MAAM;MAE3D,IAAI,CAAAH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,iBAAiB,MAAK,WAAW,EAAE;QAClD,MAAM;UAAEhC;QAAI,CAAC,GAAG4B,WAAW;QAC3B,MAAM,CAACK,MAAM,EAAEC,UAAU,CAAC,GAAGtC,eAAe,CAACI,GAAG,CAAE;QAElD,MAAMmC,mBAAmB,GAAGrD,sBAAsB,CAAC+B,KAAK,CAAC;QACzD,MAAMuB,iBAAiB,GAAGrD,iCAAiC,CACzD8B,KAAK,EACLV,WACF,CAAC;QAED,OAAO;UACLS,EAAE;UACFZ,GAAG;UACHiC,MAAM;UACNI,MAAM,EAAET,WAAW,CAACI,iBAAiB;UACrCE,UAAU;UACVC,mBAAmB;UACnBC,iBAAiB;UACjB;UACA;UACAtB,QAAQ,EAAEA,QAAQ,IAAI,CAAC;YAAEY,QAAQ,EAAE;UAAK,CAAC;QAC3C,CAAC;MACH;MAEA,IAAI,CAAAE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,iBAAiB,MAAK,UAAU,EAAE;QACjD,MAAM;UAAE/B;QAAQ,CAAC,GAAG2B,WAAW;QAC/B,MAAM,CAACK,MAAM,EAAEC,UAAU,CAAC,GAAGtC,eAAe,CAACK,OAAO,CAAE;QAEtD,MAAMkC,mBAAmB,GAAGxD,SAAS,CAACG,sBAAsB,CAAC+B,KAAK,CAAC;QACnE,MAAMuB,iBAAiB,GAAGzD,SAAS,CAAC2D,8BAA8B,CAChEH,mBAAmB,EACnBlC,OACF,CAAC;QAED,OAAO;UACLW,EAAE;UACFX,OAAO;UACPgC,MAAM;UACNI,MAAM,EAAET,WAAW,CAACI,iBAAiB;UACrCE,UAAU;UACVC,mBAAmB;UACnBC,iBAAiB;UACjBtB,QAAQ,EAAEA,QAAQ,IAAI,CAAC;YAAEY,QAAQ,EAAE;UAAK,CAAC;QAC3C,CAAC;MACH;MAEA,MAAM,IAAIa,KAAK,CACZ,kCAAiCX,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,iBAAkB,EACnE,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOQ,KAAK,EAAE;IACd;IACA,IAAIhE,WAAW,CAACgE,KAAK,CAAC,EAAE;MACtB,MAAM,IAAIjE,SAAS,CAAC;QAClBkE,OAAO,EAAE,yCAAyC;QAClDC,IAAI,EAAE,aAAa;QACnBC,KAAK,EAAEH,KAAK,CAACI;MACf,CAAC,CAAC;IACJ;;IAEA;IACA,MAAMJ,KAAK;EACb;AACF,CAAC"}
|
|
@@ -73,14 +73,17 @@ export const sendAuthorizationResponse = async function (requestObject, remotePr
|
|
|
73
73
|
appFetch = fetch
|
|
74
74
|
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
75
75
|
try {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
76
|
+
if (!rpConf && !requestObject.client_metadata) {
|
|
77
|
+
throw new IoWalletError("At least one of rpConf or requestObject.client_metadata must be provided to send the authorization response");
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// When the RP is not an OpenID Federation client, rpConf will be undefined
|
|
81
|
+
// so the keys are taken from the Request Object's client_metadata.
|
|
79
82
|
const rpJwks = {
|
|
80
|
-
jwks: rpConf.jwks,
|
|
81
|
-
encrypted_response_enc_values_supported: rpConf.encrypted_response_enc_values_supported
|
|
83
|
+
jwks: (rpConf === null || rpConf === void 0 ? void 0 : rpConf.jwks) ?? requestObject.client_metadata.jwks,
|
|
84
|
+
encrypted_response_enc_values_supported: (rpConf === null || rpConf === void 0 ? void 0 : rpConf.encrypted_response_enc_values_supported) ?? requestObject.client_metadata.encrypted_response_enc_values_supported
|
|
82
85
|
};
|
|
83
|
-
const vp_token = presentations.reduce((acc, p) => {
|
|
86
|
+
const vp_token = remotePresentation.presentations.reduce((acc, p) => {
|
|
84
87
|
(acc[p.credentialId] ??= []).push(p.vpToken);
|
|
85
88
|
return acc;
|
|
86
89
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAuthorizationResponse","sdkCreateAuthorizationResponse","fetchAuthorizationResponse","sdkFetchAuthorizationResponse","partialCallbacks","mapSdkAuthorizationResponseError","generateRandomAlphaNumericString","hasStatusOrThrow","IoWalletError","RelyingPartyResponseError","AuthorizationResponse","buildDirectPostBody","prepareVpToken","createCryptoContextFor","prepareVpTokenMdoc","prepareRemotePresentations","credentials","authRequestObject","generatedNonce","presentations","Promise","all","map","item","format","vp_token","nonce","clientId","credential","presentationFrame","keyTag","requestedClaims","requiredDisclosures","_ref","name","credentialId","id","vpToken","responseUri","doctype","_ref2","sendAuthorizationResponse","requestObject","remotePresentation","rpConf","appFetch","fetch","arguments","length","undefined","rpJwks","jwks","encrypted_response_enc_values_supported","reduce","acc","p","push","jarm","callbacks","encryptJwe","generateRandom","authorizationResponseJarm","responseJwe","presentationResponseUri","response_uri","err","sendAuthorizationErrorResponse","_ref3","error","errorDescription","requestBody","error_description","method","headers","body","then","res","json","parse"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.3.3/07-send-authorization-response.ts"],"mappings":"AAAA,SACEA,2BAA2B,IAAIC,8BAA8B,EAC7DC,0BAA0B,IAAIC,6BAA6B,QACtD,0BAA0B;AAEjC,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,gCAAgC,QAAQ,kBAAkB;AACnE,SACEC,gCAAgC,EAChCC,gBAAgB,QACX,qBAAqB;AAC5B,SACEC,aAAa,EACbC,yBAAyB,QACpB,uBAAuB;AAC9B,SAASC,qBAAqB,QAAQ,SAAS;AAC/C,SAASC,mBAAmB,QAAQ,sBAAsB;AAC1D,SAASC,cAAc,QAAQ,iBAAiB;AAChD,SAASC,sBAAsB,QAAQ,uBAAuB;AAC9D,SAASC,kBAAkB,QAAQ,eAAe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA+E,GAC1F,MAAAA,CAAOC,WAAW,EAAEC,iBAAiB,KAAK;EACxC;EACA,MAAMC,cAAc,GAAGZ,gCAAgC,CAAC,EAAE,CAAC;EAE3D,MAAMa,aAAa,GAAG,MAAMC,OAAO,CAACC,GAAG,CACrCL,WAAW,CAACM,GAAG,CAAC,MAAOC,IAAI,IAAK;IAC9B,MAAM;MAAEC;IAAO,CAAC,GAAGD,IAAI;IAEvB,IAAIC,MAAM,KAAK,WAAW,EAAE;MAC1B,MAAM;QAAEC;MAAS,CAAC,GAAG,MAAMb,cAAc,CACvCK,iBAAiB,CAACS,KAAK,EACvBT,iBAAiB,CAACU,QAAQ,EAC1B,CACEJ,IAAI,CAACK,UAAU,EACfL,IAAI,CAACM,iBAAiB,EACtBhB,sBAAsB,CAACU,IAAI,CAACO,MAAM,CAAC,CAEvC,CAAC;MAED,OAAO;QACLC,eAAe,EAAER,IAAI,CAACS,mBAAmB,CAACV,GAAG,CAACW,IAAA;UAAA,IAAC;YAAEC;UAAK,CAAC,GAAAD,IAAA;UAAA,OAAKC,IAAI;QAAA,EAAC;QACjEC,YAAY,EAAEZ,IAAI,CAACa,EAAE;QACrBC,OAAO,EAAEZ,QAAQ;QACjBD;MACF,CAAC;IACH;IAEA,IAAIA,MAAM,KAAK,UAAU,EAAE;MACzB,MAAM;QAAEC;MAAS,CAAC,GAAG,MAAMX,kBAAkB,CAC3CG,iBAAiB,CAACS,KAAK,EACvBR,cAAc,EACdD,iBAAiB,CAACU,QAAQ,EAC1BV,iBAAiB,CAACqB,WAAW,EAC7Bf,IAAI,CAACgB,OAAO,EACZhB,IAAI,CAACO,MAAM,EACX,CACEP,IAAI,CAACK,UAAU,EACfL,IAAI,CAACM,iBAAiB,EACtBhB,sBAAsB,CAACU,IAAI,CAACO,MAAM,CAAC,CAEvC,CAAC;MAED,OAAO;QACLC,eAAe,EAAER,IAAI,CAACS,mBAAmB,CAACV,GAAG,CAACkB,KAAA;UAAA,IAAC;YAAEN;UAAK,CAAC,GAAAM,KAAA;UAAA,OAAKN,IAAI;QAAA,EAAC;QACjEC,YAAY,EAAEZ,IAAI,CAACa,EAAE;QACrBC,OAAO,EAAEZ,QAAQ;QACjBD,MAAM,EAAE;MACV,CAAC;IACH;IAEA,MAAM,IAAIhB,aAAa,CAAE,GAAEgB,MAAO,2BAA0B,CAAC;EAC/D,CAAC,CACH,CAAC;EAED,OAAO;IACLL,aAAa;IACbD;EACF,CAAC;AACH,CAAC;AAEH,OAAO,MAAMuB,yBAA6E,GACxF,eAAAA,CACEC,aAAa,EACbC,kBAAkB,EAClBC,MAAM,EAEH;EAAA,IADH;IAAEC,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB,IAAI;IACF,MAAM;
|
|
1
|
+
{"version":3,"names":["createAuthorizationResponse","sdkCreateAuthorizationResponse","fetchAuthorizationResponse","sdkFetchAuthorizationResponse","partialCallbacks","mapSdkAuthorizationResponseError","generateRandomAlphaNumericString","hasStatusOrThrow","IoWalletError","RelyingPartyResponseError","AuthorizationResponse","buildDirectPostBody","prepareVpToken","createCryptoContextFor","prepareVpTokenMdoc","prepareRemotePresentations","credentials","authRequestObject","generatedNonce","presentations","Promise","all","map","item","format","vp_token","nonce","clientId","credential","presentationFrame","keyTag","requestedClaims","requiredDisclosures","_ref","name","credentialId","id","vpToken","responseUri","doctype","_ref2","sendAuthorizationResponse","requestObject","remotePresentation","rpConf","appFetch","fetch","arguments","length","undefined","client_metadata","rpJwks","jwks","encrypted_response_enc_values_supported","reduce","acc","p","push","jarm","callbacks","encryptJwe","generateRandom","authorizationResponseJarm","responseJwe","presentationResponseUri","response_uri","err","sendAuthorizationErrorResponse","_ref3","error","errorDescription","requestBody","error_description","method","headers","body","then","res","json","parse"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.3.3/07-send-authorization-response.ts"],"mappings":"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"}
|
|
@@ -1,24 +1,36 @@
|
|
|
1
1
|
import { createMapper } from "../../../utils/mappers";
|
|
2
|
-
export const mapToRelyingPartyConfig = createMapper(
|
|
2
|
+
export const mapToRelyingPartyConfig = createMapper(_ref => {
|
|
3
|
+
let {
|
|
4
|
+
payload
|
|
5
|
+
} = _ref;
|
|
3
6
|
const {
|
|
4
7
|
federation_entity,
|
|
5
8
|
openid_credential_verifier
|
|
6
|
-
} =
|
|
9
|
+
} = payload.metadata;
|
|
7
10
|
return {
|
|
8
|
-
subject:
|
|
11
|
+
subject: payload.sub,
|
|
9
12
|
jwks: openid_credential_verifier.jwks,
|
|
10
13
|
federation_entity,
|
|
11
14
|
encrypted_response_enc_values_supported: openid_credential_verifier.encrypted_response_enc_values_supported
|
|
12
15
|
};
|
|
13
16
|
});
|
|
14
|
-
export const mapToRequestObject = createMapper(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
export const mapToRequestObject = createMapper(_ref2 => {
|
|
18
|
+
let {
|
|
19
|
+
payload,
|
|
20
|
+
header
|
|
21
|
+
} = _ref2;
|
|
22
|
+
return {
|
|
23
|
+
iss: payload.iss,
|
|
24
|
+
client_id: payload.client_id,
|
|
25
|
+
dcql_query: payload.dcql_query,
|
|
26
|
+
nonce: payload.nonce,
|
|
27
|
+
response_uri: payload.response_uri,
|
|
28
|
+
state: payload.state,
|
|
29
|
+
response_mode: payload.response_mode,
|
|
30
|
+
response_type: payload.response_type,
|
|
31
|
+
client_metadata: payload.client_metadata,
|
|
32
|
+
x5c: header.x5c,
|
|
33
|
+
trust_chain: header.trust_chain
|
|
34
|
+
};
|
|
35
|
+
});
|
|
24
36
|
//# sourceMappingURL=mappers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMapper","mapToRelyingPartyConfig","
|
|
1
|
+
{"version":3,"names":["createMapper","mapToRelyingPartyConfig","_ref","payload","federation_entity","openid_credential_verifier","metadata","subject","sub","jwks","encrypted_response_enc_values_supported","mapToRequestObject","_ref2","header","iss","client_id","dcql_query","nonce","response_uri","state","response_mode","response_type","client_metadata","x5c","trust_chain"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.3.3/mappers.ts"],"mappings":"AACA,SAASA,YAAY,QAAQ,wBAAwB;AAKrD,OAAO,MAAMC,uBAAuB,GAAGD,YAAY,CAGjDE,IAAA,IAAiB;EAAA,IAAhB;IAAEC;EAAQ,CAAC,GAAAD,IAAA;EACZ,MAAM;IAAEE,iBAAiB;IAAEC;EAA2B,CAAC,GAAGF,OAAO,CAACG,QAAQ;EAE1E,OAAO;IACLC,OAAO,EAAEJ,OAAO,CAACK,GAAG;IACpBC,IAAI,EAAEJ,0BAA0B,CAACI,IAAI;IACrCL,iBAAiB;IACjBM,uCAAuC,EACrCL,0BAA0B,CAACK;EAC/B,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,MAAMC,kBAAkB,GAAGX,YAAY,CAC5CY,KAAA;EAAA,IAAC;IAAET,OAAO;IAAEU;EAAO,CAAC,GAAAD,KAAA;EAAA,OAAM;IACxBE,GAAG,EAAEX,OAAO,CAACW,GAAG;IAChBC,SAAS,EAAEZ,OAAO,CAACY,SAAS;IAC5BC,UAAU,EAAEb,OAAO,CAACa,UAAU;IAC9BC,KAAK,EAAEd,OAAO,CAACc,KAAK;IACpBC,YAAY,EAAEf,OAAO,CAACe,YAAY;IAClCC,KAAK,EAAEhB,OAAO,CAACgB,KAAK;IACpBC,aAAa,EAAEjB,OAAO,CAACiB,aAAa;IACpCC,aAAa,EAAElB,OAAO,CAACkB,aAAa;IACpCC,eAAe,EAAEnB,OAAO,CAACmB,eAAe;IACxCC,GAAG,EAAEV,MAAM,CAACU,GAAG;IACfC,WAAW,EAAEX,MAAM,CAACW;EACtB,CAAC;AAAA,CACH,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
|
-
import { zOpenid4vpAuthorizationRequestPayload
|
|
3
|
-
export const
|
|
2
|
+
import { zOpenid4vpAuthorizationRequestHeaderV1_3, zOpenid4vpAuthorizationRequestPayload } from "@pagopa/io-wallet-oid4vp";
|
|
3
|
+
export const RawRequestObject = z.object({
|
|
4
|
+
header: zOpenid4vpAuthorizationRequestHeaderV1_3,
|
|
5
|
+
payload: zOpenid4vpAuthorizationRequestPayload
|
|
6
|
+
});
|
|
4
7
|
export const AuthorizationResponse = z.object({
|
|
5
8
|
status: z.string().optional(),
|
|
6
9
|
response_code: z.string().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","zOpenid4vpAuthorizationRequestPayload","
|
|
1
|
+
{"version":3,"names":["z","zOpenid4vpAuthorizationRequestHeaderV1_3","zOpenid4vpAuthorizationRequestPayload","RawRequestObject","object","header","payload","AuthorizationResponse","status","string","optional","response_code","redirect_uri"],"sourceRoot":"../../../../../src","sources":["credential/presentation/v1.3.3/types.ts"],"mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,KAAK;AACxB,SACEC,wCAAwC,EACxCC,qCAAqC,QAChC,0BAA0B;AAGjC,OAAO,MAAMC,gBAAgB,GAAGH,CAAC,CAACI,MAAM,CAAC;EACvCC,MAAM,EAAEJ,wCAAwC;EAChDK,OAAO,EAAEJ;AACX,CAAC,CAAC;AAGF,OAAO,MAAMK,qBAAqB,GAAGP,CAAC,CAACI,MAAM,CAAC;EAC5CI,MAAM,EAAER,CAAC,CAACS,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7BC,aAAa,EAAEX,CAAC,CAACS,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EACpCE,YAAY,EAAEZ,CAAC,CAACS,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -111,15 +111,16 @@ const res = await wallet.CredentialStatus.statusList.get(
|
|
|
111
111
|
);
|
|
112
112
|
|
|
113
113
|
// Verify and parse the status list response to get the credential status
|
|
114
|
-
const { status } =
|
|
114
|
+
const { status, statusBit } =
|
|
115
115
|
await wallet.CredentialStatus.statusList.verifyAndParse(
|
|
116
|
-
issuerConf,
|
|
116
|
+
issuerConf.keys,
|
|
117
117
|
res
|
|
118
118
|
);
|
|
119
119
|
|
|
120
120
|
return {
|
|
121
121
|
statusList: res.statusList,
|
|
122
122
|
status,
|
|
123
|
+
statusBit,
|
|
123
124
|
};
|
|
124
125
|
```
|
|
125
126
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CBOR } from "@pagopa/io-react-native-iso18013";
|
|
2
|
+
import { decode as decodeJwt } from "@pagopa/io-react-native-jwt";
|
|
2
3
|
import { getStatusListFromJWT } from "@sd-jwt/jwt-status-list";
|
|
3
4
|
import { IoWalletError } from "../../../utils/errors";
|
|
4
5
|
import { hasStatusOrThrow } from "../../../utils/misc";
|
|
@@ -26,11 +27,32 @@ export const getStatusList = async function (credential, format) {
|
|
|
26
27
|
uri,
|
|
27
28
|
idx
|
|
28
29
|
} = await getStatusListEntry(credential, format);
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
const fetchStatusList = function () {
|
|
31
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
32
|
+
return appFetch(uri, {
|
|
33
|
+
headers: {
|
|
34
|
+
Accept: "application/statuslist+jwt",
|
|
35
|
+
...(options.cacheDisabled && {
|
|
36
|
+
"Cache-Control": "no-cache"
|
|
37
|
+
})
|
|
38
|
+
}
|
|
39
|
+
}).then(hasStatusOrThrow(200)).then(response => response.text());
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// When the HTTP response includes cache headers, fetch will return a cached response and the JWT might be expired
|
|
43
|
+
let statusList = await fetchStatusList();
|
|
44
|
+
const decoded = decodeJwt(statusList);
|
|
45
|
+
const {
|
|
46
|
+
exp
|
|
47
|
+
} = decoded.payload;
|
|
48
|
+
|
|
49
|
+
// If the status list JWT is expired, try to fetch it again bypassing the HTTP cache.
|
|
50
|
+
// If it is still expired after the refetch, `verifyAndParseStatusList` will throw.
|
|
51
|
+
if (exp && exp < Math.floor(Date.now() / 1000)) {
|
|
52
|
+
statusList = await fetchStatusList({
|
|
53
|
+
cacheDisabled: true
|
|
54
|
+
});
|
|
55
|
+
}
|
|
34
56
|
return {
|
|
35
57
|
statusList,
|
|
36
58
|
uri,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CBOR","getStatusListFromJWT","IoWalletError","hasStatusOrThrow","getStatusListEntry","credential","format","statusListEntry","_decoded$issuerAuth","decoded","
|
|
1
|
+
{"version":3,"names":["CBOR","decode","decodeJwt","getStatusListFromJWT","IoWalletError","hasStatusOrThrow","getStatusListEntry","credential","format","statusListEntry","_decoded$issuerAuth","decoded","issuerAuth","payload","status","status_list","getStatusList","appFetch","fetch","arguments","length","undefined","uri","idx","fetchStatusList","options","headers","Accept","cacheDisabled","then","response","text","statusList","exp","Math","floor","Date","now"],"sourceRoot":"../../../../../src","sources":["credential/status/v1.3.3/01-status-list.ts"],"mappings":"AAAA,SAASA,IAAI,QAAQ,kCAAkC;AACvD,SAASC,MAAM,IAAIC,SAAS,QAAQ,6BAA6B;AACjE,SACEC,oBAAoB,QAEf,yBAAyB;AAChC,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,gBAAgB,QAAQ,qBAAqB;AAItD,MAAMC,kBAAkB,GAAG,MAAAA,CACzBC,UAAkB,EAClBC,MAAwB,KACK;EAC7B,IAAIC,eAA4C;EAEhD,IAAID,MAAM,KAAK,UAAU,EAAE;IAAA,IAAAE,mBAAA;IACzB;IACA,MAAMC,OAAO,GAAG,MAAMX,IAAI,CAACC,MAAM,CAACM,UAAU,CAAC;IAC7CE,eAAe,IAAAC,mBAAA,GAAGC,OAAO,CAACC,UAAU,cAAAF,mBAAA,gBAAAA,mBAAA,GAAlBA,mBAAA,CAAoBG,OAAO,cAAAH,mBAAA,gBAAAA,mBAAA,GAA3BA,mBAAA,CAA6BI,MAAM,cAAAJ,mBAAA,uBAAnCA,mBAAA,CAAqCK,WAAW;EACpE;EAEA,IAAIP,MAAM,KAAK,WAAW,EAAE;IAC1BC,eAAe,GAAGN,oBAAoB,CAACI,UAAU,CAAC;EACpD;EAEA,IAAI,CAACE,eAAe,EAAE;IACpB,MAAM,IAAIL,aAAa,CAAC,+CAA+C,CAAC;EAC1E;EAEA,OAAOK,eAAe;AACxB,CAAC;AAED,OAAO,MAAMO,aAAmC,GAAG,eAAAA,CACjDT,UAAU,EACVC,MAAM,EAEH;EAAA,IADH;IAAES,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB,MAAM;IAAEG,GAAG;IAAEC;EAAI,CAAC,GAAG,MAAMjB,kBAAkB,CAACC,UAAU,EAAEC,MAAM,CAAC;EAEjE,MAAMgB,eAAe,GAAG,SAAAA,CAAA;IAAA,IAACC,OAAoC,GAAAN,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,OAChEF,QAAQ,CAACK,GAAG,EAAE;MACZI,OAAO,EAAE;QACPC,MAAM,EAAE,4BAA4B;QACpC,IAAIF,OAAO,CAACG,aAAa,IAAI;UAAE,eAAe,EAAE;QAAW,CAAC;MAC9D;IACF,CAAC,CAAC,CACCC,IAAI,CAACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAC3BwB,IAAI,CAAEC,QAAQ,IAAKA,QAAQ,CAACC,IAAI,CAAC,CAAC,CAAC;EAAA;;EAExC;EACA,IAAIC,UAAU,GAAG,MAAMR,eAAe,CAAC,CAAC;EACxC,MAAMb,OAAO,GAAGT,SAAS,CAAC8B,UAAU,CAAC;EAErC,MAAM;IAAEC;EAAI,CAAC,GAAGtB,OAAO,CAACE,OAAO;;EAE/B;EACA;EACA,IAAIoB,GAAG,IAAIA,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;IAC9CL,UAAU,GAAG,MAAMR,eAAe,CAAC;MAAEI,aAAa,EAAE;IAAK,CAAC,CAAC;EAC7D;EACA,OAAO;IAAEI,UAAU;IAAEV,GAAG;IAAEC,GAAG;IAAEf,MAAM,EAAE;EAAM,CAAC;AAChD,CAAC"}
|