@procivis/one-react-native-components 0.3.22 → 0.3.47
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/components/entity/entity-attributes.js +15 -2
- package/lib/commonjs/components/entity/entity-attributes.js.map +1 -1
- package/lib/commonjs/components/entity/entity-details-with-buttons.js +14 -38
- package/lib/commonjs/components/entity/entity-details-with-buttons.js.map +1 -1
- package/lib/commonjs/components/entity/entity-details.js +63 -34
- package/lib/commonjs/components/entity/entity-details.js.map +1 -1
- package/lib/commonjs/components/entity/index.js +2 -15
- package/lib/commonjs/components/entity/index.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item-icon.js +4 -1
- package/lib/commonjs/components/history/history-list-item-icon.js.map +1 -1
- package/lib/commonjs/components/history/history-list-item.js +15 -3
- package/lib/commonjs/components/history/history-list-item.js.map +1 -1
- package/lib/commonjs/components/history/history-list-screen.js +2 -0
- package/lib/commonjs/components/history/history-list-screen.js.map +1 -1
- package/lib/commonjs/components/proof-request/share-credential.js +2 -2
- package/lib/commonjs/components/proof-request/share-credential.js.map +1 -1
- package/lib/commonjs/ui-components/blur/index.js +2 -9
- package/lib/commonjs/ui-components/blur/index.js.map +1 -1
- package/lib/commonjs/ui-components/buttons/hold-button.js +3 -2
- package/lib/commonjs/ui-components/buttons/hold-button.js.map +1 -1
- package/lib/commonjs/ui-components/camera/index.js +2 -9
- package/lib/commonjs/ui-components/camera/index.js.map +1 -1
- package/lib/commonjs/ui-components/control/index.js +0 -12
- package/lib/commonjs/ui-components/control/index.js.map +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js +1 -1
- package/lib/commonjs/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/commonjs/ui-components/credential/credential-carousel-images.js +15 -8
- package/lib/commonjs/ui-components/credential/credential-carousel-images.js.map +1 -1
- package/lib/commonjs/ui-components/entity/entity-cluster.js +51 -3
- package/lib/commonjs/ui-components/entity/entity-cluster.js.map +1 -1
- package/lib/commonjs/ui-components/entity/index.js +3 -16
- package/lib/commonjs/ui-components/entity/index.js.map +1 -1
- package/lib/commonjs/ui-components/history/history-details.js +1 -1
- package/lib/commonjs/ui-components/history/history-details.js.map +1 -1
- package/lib/commonjs/ui-components/history/index.js +4 -27
- package/lib/commonjs/ui-components/history/index.js.map +1 -1
- package/lib/commonjs/ui-components/icons/entity.js +26 -1
- package/lib/commonjs/ui-components/icons/entity.js.map +1 -1
- package/lib/commonjs/ui-components/icons/history.js +3 -1
- package/lib/commonjs/ui-components/icons/history.js.map +1 -1
- package/lib/commonjs/ui-components/input/index.js +3 -32
- package/lib/commonjs/ui-components/input/index.js.map +1 -1
- package/lib/commonjs/ui-components/list/index.js +4 -19
- package/lib/commonjs/ui-components/list/index.js.map +1 -1
- package/lib/commonjs/ui-components/loader/index.js +2 -13
- package/lib/commonjs/ui-components/loader/index.js.map +1 -1
- package/lib/commonjs/ui-components/pin/index.js +2 -21
- package/lib/commonjs/ui-components/pin/index.js.map +1 -1
- package/lib/commonjs/ui-components/screens/nerd-mode-screen.js +1 -1
- package/lib/commonjs/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/commonjs/ui-components/searchbar/index.js +3 -16
- package/lib/commonjs/ui-components/searchbar/index.js.map +1 -1
- package/lib/commonjs/ui-components/settings/index.js +6 -37
- package/lib/commonjs/ui-components/settings/index.js.map +1 -1
- package/lib/commonjs/ui-components/state/index.js +2 -15
- package/lib/commonjs/ui-components/state/index.js.map +1 -1
- package/lib/commonjs/utils/date.js +1 -1
- package/lib/commonjs/utils/date.js.map +1 -1
- package/lib/commonjs/utils/hooks/connectivity/connectivity.test.js +4 -0
- package/lib/commonjs/utils/hooks/connectivity/connectivity.test.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/backup.js +22 -66
- package/lib/commonjs/utils/hooks/core/backup.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/core-init.js +33 -25
- package/lib/commonjs/utils/hooks/core/core-init.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/credentials.js +2 -1
- package/lib/commonjs/utils/hooks/core/credentials.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/identifiers.js +42 -0
- package/lib/commonjs/utils/hooks/core/identifiers.js.map +1 -0
- package/lib/commonjs/utils/hooks/core/index.js +11 -0
- package/lib/commonjs/utils/hooks/core/index.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/proofs.js +26 -15
- package/lib/commonjs/utils/hooks/core/proofs.js.map +1 -1
- package/lib/commonjs/utils/hooks/core/trust-entity.js +60 -13
- package/lib/commonjs/utils/hooks/core/trust-entity.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential-sharing.js +9 -15
- package/lib/commonjs/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/commonjs/utils/parsers/credential.js +7 -0
- package/lib/commonjs/utils/parsers/credential.js.map +1 -1
- package/lib/commonjs/utils/parsers/query.js +22 -4
- package/lib/commonjs/utils/parsers/query.js.map +1 -1
- package/lib/module/components/entity/entity-attributes.js +16 -3
- package/lib/module/components/entity/entity-attributes.js.map +1 -1
- package/lib/module/components/entity/entity-details-with-buttons.js +16 -40
- package/lib/module/components/entity/entity-details-with-buttons.js.map +1 -1
- package/lib/module/components/entity/entity-details.js +65 -36
- package/lib/module/components/entity/entity-details.js.map +1 -1
- package/lib/module/components/entity/index.js +2 -2
- package/lib/module/components/entity/index.js.map +1 -1
- package/lib/module/components/history/history-list-item-icon.js +5 -2
- package/lib/module/components/history/history-list-item-icon.js.map +1 -1
- package/lib/module/components/history/history-list-item.js +16 -4
- package/lib/module/components/history/history-list-item.js.map +1 -1
- package/lib/module/components/history/history-list-screen.js +2 -0
- package/lib/module/components/history/history-list-screen.js.map +1 -1
- package/lib/module/components/proof-request/share-credential.js +2 -2
- package/lib/module/components/proof-request/share-credential.js.map +1 -1
- package/lib/module/ui-components/blur/index.js +2 -2
- package/lib/module/ui-components/blur/index.js.map +1 -1
- package/lib/module/ui-components/buttons/hold-button.js +4 -3
- package/lib/module/ui-components/buttons/hold-button.js.map +1 -1
- package/lib/module/ui-components/camera/index.js +2 -2
- package/lib/module/ui-components/camera/index.js.map +1 -1
- package/lib/module/ui-components/control/index.js +3 -3
- package/lib/module/ui-components/control/index.js.map +1 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js +1 -1
- package/lib/module/ui-components/credential/card/credential-details-card.js.map +1 -1
- package/lib/module/ui-components/credential/credential-carousel-images.js +15 -8
- package/lib/module/ui-components/credential/credential-carousel-images.js.map +1 -1
- package/lib/module/ui-components/entity/entity-cluster.js +52 -4
- package/lib/module/ui-components/entity/entity-cluster.js.map +1 -1
- package/lib/module/ui-components/entity/index.js +4 -4
- package/lib/module/ui-components/entity/index.js.map +1 -1
- package/lib/module/ui-components/history/history-details.js +1 -1
- package/lib/module/ui-components/history/history-details.js.map +1 -1
- package/lib/module/ui-components/history/index.js +6 -6
- package/lib/module/ui-components/history/index.js.map +1 -1
- package/lib/module/ui-components/icons/entity.js +24 -0
- package/lib/module/ui-components/icons/entity.js.map +1 -1
- package/lib/module/ui-components/icons/history.js +2 -0
- package/lib/module/ui-components/icons/history.js.map +1 -1
- package/lib/module/ui-components/input/index.js +6 -6
- package/lib/module/ui-components/input/index.js.map +1 -1
- package/lib/module/ui-components/list/index.js +4 -4
- package/lib/module/ui-components/list/index.js.map +1 -1
- package/lib/module/ui-components/loader/index.js +4 -4
- package/lib/module/ui-components/loader/index.js.map +1 -1
- package/lib/module/ui-components/pin/index.js +3 -3
- package/lib/module/ui-components/pin/index.js.map +1 -1
- package/lib/module/ui-components/screens/nerd-mode-screen.js +1 -1
- package/lib/module/ui-components/screens/nerd-mode-screen.js.map +1 -1
- package/lib/module/ui-components/searchbar/index.js +4 -4
- package/lib/module/ui-components/searchbar/index.js.map +1 -1
- package/lib/module/ui-components/settings/index.js +10 -10
- package/lib/module/ui-components/settings/index.js.map +1 -1
- package/lib/module/ui-components/state/index.js +2 -2
- package/lib/module/ui-components/state/index.js.map +1 -1
- package/lib/module/utils/date.js +1 -1
- package/lib/module/utils/date.js.map +1 -1
- package/lib/module/utils/hooks/connectivity/connectivity.test.js +4 -0
- package/lib/module/utils/hooks/connectivity/connectivity.test.js.map +1 -1
- package/lib/module/utils/hooks/core/backup.js +24 -68
- package/lib/module/utils/hooks/core/backup.js.map +1 -1
- package/lib/module/utils/hooks/core/core-init.js +30 -24
- package/lib/module/utils/hooks/core/core-init.js.map +1 -1
- package/lib/module/utils/hooks/core/credentials.js +2 -1
- package/lib/module/utils/hooks/core/credentials.js.map +1 -1
- package/lib/module/utils/hooks/core/identifiers.js +34 -0
- package/lib/module/utils/hooks/core/identifiers.js.map +1 -0
- package/lib/module/utils/hooks/core/index.js +1 -0
- package/lib/module/utils/hooks/core/index.js.map +1 -1
- package/lib/module/utils/hooks/core/proofs.js +26 -15
- package/lib/module/utils/hooks/core/proofs.js.map +1 -1
- package/lib/module/utils/hooks/core/trust-entity.js +60 -13
- package/lib/module/utils/hooks/core/trust-entity.js.map +1 -1
- package/lib/module/utils/parsers/credential-sharing.js +9 -15
- package/lib/module/utils/parsers/credential-sharing.js.map +1 -1
- package/lib/module/utils/parsers/credential.js +7 -0
- package/lib/module/utils/parsers/credential.js.map +1 -1
- package/lib/module/utils/parsers/query.js +20 -3
- package/lib/module/utils/parsers/query.js.map +1 -1
- package/lib/typescript/components/entity/entity-attributes.d.ts +1 -0
- package/lib/typescript/components/entity/entity-details-with-buttons.d.ts +2 -2
- package/lib/typescript/components/entity/entity-details.d.ts +4 -2
- package/lib/typescript/components/entity/index.d.ts +2 -1
- package/lib/typescript/components/history/history-list-item.d.ts +1 -0
- package/lib/typescript/components/history/history-list-screen.d.ts +2 -0
- package/lib/typescript/ui-components/blur/index.d.ts +2 -1
- package/lib/typescript/ui-components/buttons/hold-button.d.ts +2 -2
- package/lib/typescript/ui-components/camera/index.d.ts +2 -1
- package/lib/typescript/ui-components/control/index.d.ts +4 -2
- package/lib/typescript/ui-components/credential/credential-carousel-images.d.ts +1 -0
- package/lib/typescript/ui-components/entity/entity-cluster.d.ts +1 -0
- package/lib/typescript/ui-components/entity/index.d.ts +4 -2
- package/lib/typescript/ui-components/history/history-details.d.ts +4 -1
- package/lib/typescript/ui-components/history/index.d.ts +6 -3
- package/lib/typescript/ui-components/icons/entity.d.ts +1 -0
- package/lib/typescript/ui-components/icons/history.d.ts +2 -0
- package/lib/typescript/ui-components/input/index.d.ts +6 -3
- package/lib/typescript/ui-components/list/index.d.ts +4 -2
- package/lib/typescript/ui-components/loader/index.d.ts +4 -2
- package/lib/typescript/ui-components/pin/index.d.ts +4 -2
- package/lib/typescript/ui-components/screens/nerd-mode-screen.d.ts +4 -4
- package/lib/typescript/ui-components/searchbar/index.d.ts +4 -2
- package/lib/typescript/ui-components/settings/index.d.ts +10 -5
- package/lib/typescript/ui-components/state/index.d.ts +2 -1
- package/lib/typescript/utils/hooks/core/backup.d.ts +5 -0
- package/lib/typescript/utils/hooks/core/core-init.d.ts +4 -1
- package/lib/typescript/utils/hooks/core/credentials.d.ts +2 -1
- package/lib/typescript/utils/hooks/core/identifiers.d.ts +5 -0
- package/lib/typescript/utils/hooks/core/index.d.ts +1 -0
- package/lib/typescript/utils/hooks/core/proofs.d.ts +3 -1
- package/lib/typescript/utils/hooks/core/trust-entity.d.ts +10 -4
- package/lib/typescript/utils/parsers/query.d.ts +3 -2
- package/package.json +9 -4
- package/src/components/entity/entity-attributes.tsx +17 -3
- package/src/components/entity/entity-details-with-buttons.tsx +17 -42
- package/src/components/entity/entity-details.tsx +64 -37
- package/src/components/entity/index.ts +2 -1
- package/src/components/history/history-list-item-icon.tsx +5 -0
- package/src/components/history/history-list-item.tsx +19 -4
- package/src/components/history/history-list-screen.tsx +4 -1
- package/src/components/proof-request/share-credential.tsx +1 -1
- package/src/ui-components/blur/index.ts +2 -1
- package/src/ui-components/buttons/hold-button.tsx +6 -5
- package/src/ui-components/camera/index.tsx +2 -1
- package/src/ui-components/control/index.ts +4 -2
- package/src/ui-components/credential/card/credential-details-card.tsx +1 -1
- package/src/ui-components/credential/credential-carousel-images.tsx +15 -8
- package/src/ui-components/entity/entity-cluster.tsx +63 -10
- package/src/ui-components/entity/index.ts +4 -2
- package/src/ui-components/history/history-details.tsx +5 -2
- package/src/ui-components/history/index.ts +6 -3
- package/src/ui-components/icons/entity.tsx +23 -0
- package/src/ui-components/icons/history.tsx +2 -0
- package/src/ui-components/input/index.ts +6 -3
- package/src/ui-components/list/index.ts +4 -2
- package/src/ui-components/loader/index.ts +4 -2
- package/src/ui-components/pin/index.ts +4 -2
- package/src/ui-components/screens/nerd-mode-screen.tsx +5 -5
- package/src/ui-components/searchbar/index.ts +4 -2
- package/src/ui-components/settings/index.ts +10 -5
- package/src/ui-components/state/index.ts +2 -1
- package/src/utils/date.ts +1 -1
- package/src/utils/hooks/connectivity/connectivity.test.ts +7 -2
- package/src/utils/hooks/core/backup.ts +30 -72
- package/src/utils/hooks/core/core-init.ts +29 -23
- package/src/utils/hooks/core/credentials.ts +9 -3
- package/src/utils/hooks/core/identifiers.ts +39 -0
- package/src/utils/hooks/core/index.ts +2 -1
- package/src/utils/hooks/core/proofs.ts +31 -18
- package/src/utils/hooks/core/trust-entity.ts +55 -17
- package/src/utils/parsers/credential-sharing.tsx +30 -36
- package/src/utils/parsers/credential.ts +4 -0
- package/src/utils/parsers/query.tsx +14 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OneError","ProofStateEnum","useCallback","useEffect","useMemo","useRef","useState","useMutation","useQuery","useQueryClient","getQueryKeyFromProofListQueryParams","useCoreConfig","useONECore","useDids","OneErrorCode","HISTORY_LIST_QUERY_KEY","useProofSchemaDetail","PAGE_SIZE","PROOF_DETAIL_QUERY_KEY","PROOF_STATE_QUERY_KEY","PROOF_LIST_QUERY_KEY","useProofDetail","proofId","core","getProof","undefined","enabled","Boolean","keepPreviousData","useProofState","isPolling","then","proof","state","refetchInterval","useProofUrl","queryClient","request","shareProof","url","onSuccess","invalidateQueries","useProofAccept","interactionId","credentials","didId","keyId","holderSubmitProof","onError","useProofReject","holderRejectProof","catch","e","code","OperationNotSupported","IssuanceProtocol","VerificationProtocol","useProposeProof","organisationId","exchange","proposeProof","useProofDelete","deleteProof","useProofs","queryParams","queryKey","pageParam","getProofs","page","pageSize","useProofCreate","data","createProof","getDidFilterForProofSchema","proofSchema","config","requestedFormats","proofInputSchemas","map","schema","credentialSchema","format","requestedFormatsCapabilities","_config$format$format","capabilities","filter","x","keyAlgorithms","reduce","others","_others$filter","current","verificationKeyAlgorithms","item","includes","keyStorages","_others$filter2","verificationKeyStorages","useProofForSchemaIdWithTransport","proofSchemaId","transport","didFilter","dids","mutateAsync","deleting","setDeleting","setProofIdState","proofIdRef","proofState","setProofId","id","CREATED","PENDING","values","length","OPENID4VP_PROXIMITY_DRAFT00","verifierDidId","useCleanupUnusedProofs","proofs","proofStates","cleaned","setCleaned","forEach","useShareProof","proofUrlProps","sharedProof","setSharedProof","bleAdapterDisabled","err","_err$cause","cause","useRetainProofCheck","runTask","removeQueries","useDeleteProofData","deleteProofClaims","useDeleteAllProofsData","schemaId","proofSchemaIds","ACCEPTED","result","Promise","all","reverse"],"sources":["proofs.ts"],"sourcesContent":["import {\n Config,\n CreateProofRequest,\n DidListQuery,\n OneError,\n PresentationSubmitCredentialRequest,\n ProofListQuery,\n ProofSchema,\n ProofStateEnum,\n ShareProofRequest,\n} from '@procivis/react-native-one-core';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { getQueryKeyFromProofListQueryParams } from '../../parsers/query';\nimport { Transport } from '../connectivity/connectivity';\nimport { useCoreConfig } from './core-config';\nimport { useONECore } from './core-context';\nimport { useDids } from './dids';\nimport { OneErrorCode } from './error-code';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\nimport { useProofSchemaDetail } from './proof-schemas';\n\nconst PAGE_SIZE = 10;\nexport const PROOF_DETAIL_QUERY_KEY = 'proof-detail';\nexport const PROOF_STATE_QUERY_KEY = 'proof-state';\nexport const PROOF_LIST_QUERY_KEY = 'proof-list';\n\nexport const useProofDetail = (proofId: string | undefined) => {\n const { core } = useONECore();\n\n return useQuery([PROOF_DETAIL_QUERY_KEY, proofId], () => (proofId ? core.getProof(proofId) : undefined), {\n enabled: Boolean(proofId),\n keepPreviousData: true,\n });\n};\n\nexport const useProofState = (proofId: string | undefined, isPolling: boolean) => {\n const { core } = useONECore();\n\n return useQuery(\n [PROOF_STATE_QUERY_KEY, proofId],\n () => (proofId ? core.getProof(proofId).then((proof) => proof.state) : undefined),\n {\n enabled: Boolean(proofId),\n refetchInterval: isPolling ? 1000 : false,\n },\n );\n};\n\ntype ProofUrlHookParams = { proofId: string; request?: ShareProofRequest };\n\nexport const useProofUrl = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({ proofId, request }: ProofUrlHookParams) =>\n core.shareProof(proofId, request ?? {}).then((proof) => proof.url),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofAccept = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({\n interactionId,\n credentials,\n didId,\n keyId,\n }: {\n credentials: Record<string, PresentationSubmitCredentialRequest>;\n didId: string;\n interactionId: string;\n keyId?: string;\n }) => core.holderSubmitProof(interactionId, credentials, didId, keyId),\n {\n onError: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofReject = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (interactionId: string) =>\n core.holderRejectProof(interactionId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport enum IssuanceProtocol {\n OPENID4VCI_DRAFT13 = 'OPENID4VCI_DRAFT13',\n}\n\nexport enum VerificationProtocol {\n ISO_MDL = 'ISO_MDL',\n OPENID4VP_DRAFT20 = 'OPENID4VP_DRAFT20',\n OPENID4VP_DRAFT25 = 'OPENID4VP_DRAFT25',\n OPENID4VP_PROXIMITY_DRAFT00 = 'OPENID4VP_PROXIMITY_DRAFT00',\n SCAN_TO_VERIFY = 'SCAN_TO_VERIFY',\n}\n\nexport const useProposeProof = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(async (exchange: VerificationProtocol) => core.proposeProof(exchange, organisationId), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useProofDelete = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (proofId: string) => {\n return core.deleteProof(proofId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n });\n },\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofs = (queryParams?: Partial<ProofListQuery>) => {\n const { core, organisationId } = useONECore();\n\n const queryKey = [PROOF_LIST_QUERY_KEY, ...getQueryKeyFromProofListQueryParams(queryParams)];\n\n return useQuery(\n queryKey,\n ({ pageParam = 0 }) =>\n core.getProofs({\n organisationId,\n page: pageParam,\n pageSize: PAGE_SIZE,\n ...queryParams,\n }),\n {\n keepPreviousData: false,\n },\n );\n};\n\nexport const useProofCreate = () => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async (data: CreateProofRequest) => core.createProof(data), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n },\n });\n};\n\nconst getDidFilterForProofSchema = (proofSchema: ProofSchema, config: Config): Partial<DidListQuery> => {\n const requestedFormats = proofSchema.proofInputSchemas.map((schema) => schema.credentialSchema.format);\n const requestedFormatsCapabilities = requestedFormats\n .map((format) => config.format[format]?.capabilities)\n .filter((x) => x);\n\n // key algorithms must be supported by all requested formats\n const keyAlgorithms = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyAlgorithms;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n // key storages must be supported by all requested formats\n const keyStorages = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyStorages;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n return { keyAlgorithms, keyStorages };\n};\n\nexport const useProofForSchemaIdWithTransport = (\n proofSchemaId: string,\n transport: Transport[] | undefined,\n enabled: boolean,\n) => {\n const { data: proofSchema } = useProofSchemaDetail(proofSchemaId, enabled);\n const { data: config } = useCoreConfig();\n\n const didFilter = useMemo(\n () => (proofSchema && config ? getDidFilterForProofSchema(proofSchema, config) : undefined),\n [config, proofSchema],\n );\n\n const { data: dids } = useDids(didFilter);\n const { mutateAsync: createProof } = useProofCreate();\n const { mutateAsync: deleteProof } = useProofDelete();\n\n const [deleting, setDeleting] = useState(false);\n const [proofId, setProofIdState] = useState<string | undefined>(undefined);\n const proofIdRef = useRef<string>();\n\n const { data: proofState } = useProofState(deleting ? undefined : proofId, enabled);\n\n const setProofId = useCallback((id: string | undefined) => {\n proofIdRef.current = id;\n setProofIdState(id);\n }, []);\n\n useEffect(() => {\n if (!proofIdRef.current) {\n return;\n }\n setDeleting(true);\n deleteProof(proofIdRef.current)\n .then(() => {\n setProofId(undefined);\n setDeleting(false);\n })\n .catch(() => {});\n }, [proofIdRef, deleteProof, proofSchemaId, transport, setProofId]);\n\n useEffect(() => {\n if (enabled) {\n return;\n }\n if (proofState !== ProofStateEnum.CREATED && proofState !== ProofStateEnum.PENDING) {\n setProofId(undefined);\n }\n }, [enabled, proofState, setProofId]);\n\n useEffect(() => {\n if (\n deleting ||\n !enabled ||\n proofId ||\n !dids ||\n !didFilter ||\n !dids.values.length ||\n !transport ||\n transport.length === 0\n ) {\n return;\n }\n\n createProof({\n exchange: VerificationProtocol.OPENID4VP_PROXIMITY_DRAFT00,\n proofSchemaId,\n transport,\n verifierDidId: dids.values[0].id,\n })\n .then((id) => {\n setProofId(id);\n })\n .catch(() => {});\n }, [proofSchemaId, dids, didFilter, createProof, enabled, transport, proofId, setProofId, deleting]);\n\n return deleting ? undefined : proofId;\n};\n\nexport const useCleanupUnusedProofs = () => {\n const { mutateAsync: deleteProof } = useProofDelete();\n const { data: proofs } = useProofs({\n page: 0,\n pageSize: 100,\n proofStates: [ProofStateEnum.CREATED, ProofStateEnum.PENDING],\n });\n const [cleaned, setCleaned] = useState(false);\n\n useEffect(() => {\n if (cleaned || !proofs) {\n return;\n }\n setCleaned(true);\n proofs.values.forEach((proof) => deleteProof(proof.id));\n }, [cleaned, deleteProof, proofs]);\n};\n\nexport const useShareProof = (proofUrlProps: ProofUrlHookParams | undefined, enabled: boolean) => {\n const { mutateAsync: shareProof } = useProofUrl();\n const { data: proofState } = useProofState(proofUrlProps?.proofId, enabled);\n\n const [sharedProof, setSharedProof] = useState<{\n bleAdapterDisabled: boolean;\n url?: string;\n }>();\n\n // reset when proofId changes or the proof was retracted\n useEffect(() => {\n if (!proofUrlProps?.proofId || proofState === ProofStateEnum.CREATED) {\n setSharedProof(undefined);\n }\n }, [proofUrlProps?.proofId, proofState]);\n\n useEffect(() => {\n if (!proofUrlProps || !enabled || sharedProof) {\n return;\n }\n\n shareProof(proofUrlProps)\n .then((url) => {\n setSharedProof({\n bleAdapterDisabled: false,\n url,\n });\n })\n .catch((err: unknown) => {\n // TODO emit error with specific error code from core.\n if (err instanceof OneError && err.cause?.includes('BLE adapter not enabled')) {\n setSharedProof({\n bleAdapterDisabled: true,\n });\n }\n });\n }, [enabled, proofUrlProps, shareProof, sharedProof]);\n\n return sharedProof;\n};\n\nexport const useRetainProofCheck = (proofId?: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.runTask('RETAIN_PROOF_CHECK'), {\n onSuccess: async () => {\n if (proofId) {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n }\n },\n });\n};\n\nexport const useDeleteProofData = (proofId: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.deleteProofClaims(proofId), {\n onSuccess: async () => {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useDeleteAllProofsData = (schemaId: string) => {\n const queryClient = useQueryClient();\n\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async () =>\n core\n .getProofs({\n organisationId,\n page: 0,\n pageSize: 1000,\n proofSchemaIds: [schemaId],\n proofStates: [ProofStateEnum.ACCEPTED],\n })\n .then((result) => Promise.all(result.values.reverse().map((proof) => core.deleteProofClaims(proof.id)))),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["OneError","ProofStateEnum","useCallback","useEffect","useMemo","useRef","useState","useMutation","useQuery","useQueryClient","getQueryKeyFromProofListQueryParams","useCoreConfig","useONECore","OneErrorCode","HISTORY_LIST_QUERY_KEY","useIdentifiers","useProofSchemaDetail","PAGE_SIZE","PROOF_DETAIL_QUERY_KEY","PROOF_STATE_QUERY_KEY","PROOF_LIST_QUERY_KEY","useProofDetail","proofId","core","getProof","undefined","enabled","Boolean","keepPreviousData","useProofState","isPolling","then","proof","state","refetchInterval","useProofUrl","queryClient","request","shareProof","url","onSuccess","invalidateQueries","useProofAccept","interactionId","credentials","didId","identifierId","keyId","holderSubmitProof","onError","useProofReject","holderRejectProof","catch","e","code","OperationNotSupported","IssuanceProtocol","VerificationProtocol","useProposeProof","organisationId","exchange","proposeProof","useProofDelete","deleteProof","useProofs","queryParams","queryKey","pageParam","getProofs","page","pageSize","useProofCreate","data","createProof","getIdentifierFilterForProofSchema","proofSchema","config","requestedFormats","proofInputSchemas","map","schema","credentialSchema","format","requestedFormatsCapabilities","_config$format$format","capabilities","filter","x","keyAlgorithms","reduce","others","_others$filter","current","verificationKeyAlgorithms","item","includes","keyStorages","_others$filter2","verificationKeyStorages","useProofForSchemaIdWithTransport","proofSchemaId","transport","identifierFilter","identifiers","mutateAsync","deleting","setDeleting","setProofIdState","proofIdRef","proofState","setProofId","id","CREATED","PENDING","values","length","protocol","OPENID4VP_PROXIMITY_DRAFT00","verifierIdentifierId","useCleanupUnusedProofs","proofs","proofStates","cleaned","setCleaned","forEach","useShareProof","proofUrlProps","sharedProof","setSharedProof","bleAdapterDisabled","error","_error$cause","cause","useRetainProofCheck","runTask","removeQueries","useDeleteProofData","deleteProofClaims","useDeleteAllProofsData","schemaId","proofSchemaIds","ACCEPTED","result","Promise","all","reverse"],"sources":["proofs.ts"],"sourcesContent":["import {\n Config,\n CreateProofRequest,\n IdentifierListQuery,\n OneError,\n PresentationSubmitCredentialRequest,\n ProofListQuery,\n ProofSchema,\n ProofStateEnum,\n ShareProofRequest,\n} from '@procivis/react-native-one-core';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { getQueryKeyFromProofListQueryParams } from '../../parsers/query';\nimport { Transport } from '../connectivity/connectivity';\nimport { useCoreConfig } from './core-config';\nimport { useONECore } from './core-context';\nimport { OneErrorCode } from './error-code';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\nimport { useIdentifiers } from './identifiers';\nimport { useProofSchemaDetail } from './proof-schemas';\n\nconst PAGE_SIZE = 10;\nexport const PROOF_DETAIL_QUERY_KEY = 'proof-detail';\nexport const PROOF_STATE_QUERY_KEY = 'proof-state';\nexport const PROOF_LIST_QUERY_KEY = 'proof-list';\n\nexport const useProofDetail = (proofId: string | undefined) => {\n const { core } = useONECore();\n\n return useQuery([PROOF_DETAIL_QUERY_KEY, proofId], () => (proofId ? core.getProof(proofId) : undefined), {\n enabled: Boolean(proofId),\n keepPreviousData: true,\n });\n};\n\nexport const useProofState = (proofId: string | undefined, isPolling: boolean) => {\n const { core } = useONECore();\n\n return useQuery(\n [PROOF_STATE_QUERY_KEY, proofId],\n () => (proofId ? core.getProof(proofId).then((proof) => proof.state) : undefined),\n {\n enabled: Boolean(proofId),\n refetchInterval: isPolling ? 1000 : false,\n },\n );\n};\n\ntype ProofUrlHookParams = { proofId: string; request?: ShareProofRequest };\n\nexport const useProofUrl = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({ proofId, request }: ProofUrlHookParams) =>\n core.shareProof(proofId, request ?? {}).then((proof) => proof.url),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofAccept = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async ({\n interactionId,\n credentials,\n didId,\n identifierId,\n keyId,\n }: {\n credentials: Record<string, PresentationSubmitCredentialRequest>;\n didId?: string;\n identifierId?: string;\n interactionId: string;\n keyId?: string;\n }) => core.holderSubmitProof(interactionId, credentials, didId, identifierId, keyId),\n {\n onError: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofReject = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (interactionId: string) =>\n core.holderRejectProof(interactionId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n }),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport enum IssuanceProtocol {\n OPENID4VCI_DRAFT13 = 'OPENID4VCI_DRAFT13',\n}\n\nexport enum VerificationProtocol {\n ISO_MDL = 'ISO_MDL',\n OPENID4VP_DRAFT20 = 'OPENID4VP_DRAFT20',\n OPENID4VP_DRAFT25 = 'OPENID4VP_DRAFT25',\n OPENID4VP_PROXIMITY_DRAFT00 = 'OPENID4VP_PROXIMITY_DRAFT00',\n SCAN_TO_VERIFY = 'SCAN_TO_VERIFY',\n}\n\nexport const useProposeProof = () => {\n const queryClient = useQueryClient();\n const { core, organisationId } = useONECore();\n\n return useMutation(async (exchange: VerificationProtocol) => core.proposeProof(exchange, organisationId), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useProofDelete = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(\n async (proofId: string) => {\n return core.deleteProof(proofId).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.OperationNotSupported) {\n return;\n }\n throw e;\n });\n },\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n\nexport const useProofs = (queryParams?: Partial<ProofListQuery>) => {\n const { core, organisationId } = useONECore();\n\n const queryKey = [PROOF_LIST_QUERY_KEY, ...getQueryKeyFromProofListQueryParams(queryParams)];\n\n return useQuery(\n queryKey,\n ({ pageParam = 0 }) =>\n core.getProofs({\n organisationId,\n page: pageParam,\n pageSize: PAGE_SIZE,\n ...queryParams,\n }),\n {\n keepPreviousData: false,\n },\n );\n};\n\nexport const useProofCreate = () => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async (data: CreateProofRequest) => core.createProof(data), {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_LIST_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_STATE_QUERY_KEY);\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n },\n });\n};\n\nconst getIdentifierFilterForProofSchema = (proofSchema: ProofSchema, config: Config): Partial<IdentifierListQuery> => {\n const requestedFormats = proofSchema.proofInputSchemas.map((schema) => schema.credentialSchema.format);\n const requestedFormatsCapabilities = requestedFormats\n .map((format) => config.format[format]?.capabilities)\n .filter((x) => x);\n\n // key algorithms must be supported by all requested formats\n const keyAlgorithms = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyAlgorithms;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n // key storages must be supported by all requested formats\n const keyStorages = requestedFormatsCapabilities.reduce<string[] | undefined>((others, capabilities) => {\n const current = capabilities.verificationKeyStorages;\n return others?.filter((item) => current.includes(item)) ?? current;\n }, undefined);\n\n return { keyAlgorithms, keyStorages };\n};\n\nexport const useProofForSchemaIdWithTransport = (\n proofSchemaId: string,\n transport: Transport[] | undefined,\n enabled: boolean,\n) => {\n const { data: proofSchema } = useProofSchemaDetail(proofSchemaId, enabled);\n const { data: config } = useCoreConfig();\n\n const identifierFilter = useMemo(\n () => (proofSchema && config ? getIdentifierFilterForProofSchema(proofSchema, config) : undefined),\n [config, proofSchema],\n );\n\n const { data: identifiers } = useIdentifiers(identifierFilter);\n const { mutateAsync: createProof } = useProofCreate();\n const { mutateAsync: deleteProof } = useProofDelete();\n\n const [deleting, setDeleting] = useState(false);\n const [proofId, setProofIdState] = useState<string | undefined>(undefined);\n const proofIdRef = useRef<string>();\n\n const { data: proofState } = useProofState(deleting ? undefined : proofId, enabled);\n\n const setProofId = useCallback((id: string | undefined) => {\n proofIdRef.current = id;\n setProofIdState(id);\n }, []);\n\n useEffect(() => {\n if (!proofIdRef.current) {\n return;\n }\n setDeleting(true);\n deleteProof(proofIdRef.current)\n .then(() => {\n setProofId(undefined);\n setDeleting(false);\n })\n .catch(() => {});\n }, [proofIdRef, deleteProof, proofSchemaId, transport, setProofId]);\n\n useEffect(() => {\n if (enabled) {\n return;\n }\n\n if (proofState !== ProofStateEnum.CREATED && proofState !== ProofStateEnum.PENDING) {\n setProofId(undefined);\n } else {\n setDeleting(true);\n deleteProof(proofIdRef.current || '')\n .then(() => {\n setProofId(undefined);\n setDeleting(false);\n })\n .catch(() => {});\n }\n }, [deleteProof, enabled, proofId, proofState, setProofId]);\n\n useEffect(() => {\n if (\n deleting ||\n !enabled ||\n proofId ||\n !identifiers ||\n !identifierFilter ||\n !identifiers.values.length ||\n !transport ||\n transport.length === 0\n ) {\n return;\n }\n\n createProof({\n protocol: VerificationProtocol.OPENID4VP_PROXIMITY_DRAFT00,\n proofSchemaId,\n transport,\n verifierIdentifierId: identifiers.values[0].id,\n })\n .then((id) => {\n setProofId(id);\n })\n .catch(() => {});\n }, [proofSchemaId, identifiers, identifierFilter, createProof, enabled, transport, proofId, setProofId, deleting]);\n\n return deleting ? undefined : proofId;\n};\n\nexport const useCleanupUnusedProofs = () => {\n const { mutateAsync: deleteProof } = useProofDelete();\n const { data: proofs } = useProofs({\n page: 0,\n pageSize: 100,\n proofStates: [ProofStateEnum.CREATED, ProofStateEnum.PENDING],\n });\n const [cleaned, setCleaned] = useState(false);\n\n useEffect(() => {\n if (cleaned || !proofs) {\n return;\n }\n setCleaned(true);\n proofs.values.forEach((proof) => deleteProof(proof.id));\n }, [cleaned, deleteProof, proofs]);\n};\n\nexport const useShareProof = (proofUrlProps: ProofUrlHookParams | undefined, enabled: boolean) => {\n const { mutateAsync: shareProof } = useProofUrl();\n const { data: proofState } = useProofState(proofUrlProps?.proofId, enabled);\n\n const [sharedProof, setSharedProof] = useState<{\n bleAdapterDisabled: boolean;\n url?: string;\n error?: unknown;\n }>();\n\n // reset when proofId changes or the proof was retracted\n useEffect(() => {\n if (!proofUrlProps?.proofId || proofState === ProofStateEnum.CREATED) {\n setSharedProof(undefined);\n }\n }, [proofUrlProps?.proofId, proofState]);\n\n useEffect(() => {\n if (!proofUrlProps || !enabled || sharedProof) {\n return;\n }\n\n shareProof(proofUrlProps)\n .then((url) => {\n setSharedProof({\n bleAdapterDisabled: false,\n url,\n });\n })\n .catch((error: unknown) => {\n if (error instanceof OneError && error.cause?.includes('BLE adapter not enabled')) {\n setSharedProof({\n bleAdapterDisabled: true,\n });\n } else {\n setSharedProof({ error, bleAdapterDisabled: false });\n }\n });\n }, [enabled, proofUrlProps, shareProof, sharedProof]);\n\n return sharedProof;\n};\n\nexport const useRetainProofCheck = (proofId?: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.runTask('RETAIN_PROOF_CHECK'), {\n onSuccess: async () => {\n if (proofId) {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n }\n },\n });\n};\n\nexport const useDeleteProofData = (proofId: string) => {\n const queryClient = useQueryClient();\n\n const { core } = useONECore();\n\n return useMutation(async () => core.deleteProofClaims(proofId), {\n onSuccess: async () => {\n await queryClient.removeQueries([PROOF_DETAIL_QUERY_KEY, proofId]);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useDeleteAllProofsData = (schemaId: string) => {\n const queryClient = useQueryClient();\n\n const { core, organisationId } = useONECore();\n\n return useMutation(\n async () =>\n core\n .getProofs({\n organisationId,\n page: 0,\n pageSize: 1000,\n proofSchemaIds: [schemaId],\n proofStates: [ProofStateEnum.ACCEPTED],\n })\n .then((result) => Promise.all(result.values.reverse().map((proof) => core.deleteProofClaims(proof.id)))),\n {\n onSuccess: async () => {\n await queryClient.invalidateQueries(PROOF_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n },\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ import { useHTTPClient } from '../http/client';
|
|
|
6
6
|
import { useONECore } from './core-context';
|
|
7
7
|
import { OneErrorCode } from './error-code';
|
|
8
8
|
import { HISTORY_LIST_QUERY_KEY } from './history';
|
|
9
|
+
import { useIdentifierDetails } from './identifiers';
|
|
9
10
|
export const TRUST_ENTITY_DETAIL_QUERY_KEY = 'trust-entity-detail';
|
|
10
11
|
export const REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY = 'remote-trust-entity-detail';
|
|
11
12
|
export const useCreateTrustAnchor = publisherReference => {
|
|
@@ -34,26 +35,42 @@ export const useCreateTrustAnchor = publisherReference => {
|
|
|
34
35
|
});
|
|
35
36
|
}, [publisherReference, httpClient]);
|
|
36
37
|
};
|
|
37
|
-
export const useTrustEntity =
|
|
38
|
+
export const useTrustEntity = identifierId => {
|
|
38
39
|
const {
|
|
39
40
|
core
|
|
40
41
|
} = useONECore();
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
const {
|
|
43
|
+
data: identifierDetail
|
|
44
|
+
} = useIdentifierDetails(identifierId);
|
|
45
|
+
return useQuery([TRUST_ENTITY_DETAIL_QUERY_KEY, identifierId], () => {
|
|
46
|
+
var _identifierDetail$cer;
|
|
47
|
+
return identifierId && identifierDetail ? core.resolveTrustEntityByIdentifier({
|
|
48
|
+
identifiers: [{
|
|
49
|
+
certificateId: identifierDetail.type === 'CERTIFICATE' ? (_identifierDetail$cer = identifierDetail.certificates) === null || _identifierDetail$cer === void 0 || (_identifierDetail$cer = _identifierDetail$cer[0]) === null || _identifierDetail$cer === void 0 ? void 0 : _identifierDetail$cer.id : undefined,
|
|
50
|
+
id: identifierId
|
|
51
|
+
}]
|
|
52
|
+
}).then(result => {
|
|
53
|
+
return result[identifierId];
|
|
54
|
+
}).catch(e => {
|
|
55
|
+
if (e instanceof OneError && e.code === OneErrorCode.NoTrustEntityFound) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
throw e;
|
|
59
|
+
}) : undefined;
|
|
60
|
+
}, {
|
|
61
|
+
enabled: Boolean(identifierDetail),
|
|
48
62
|
keepPreviousData: true
|
|
49
63
|
});
|
|
50
64
|
};
|
|
51
|
-
export const useRemoteTrustEntity =
|
|
65
|
+
export const useRemoteTrustEntity = identifierId => {
|
|
52
66
|
const {
|
|
53
67
|
core
|
|
54
68
|
} = useONECore();
|
|
55
|
-
|
|
56
|
-
|
|
69
|
+
const {
|
|
70
|
+
data: identifierDetail
|
|
71
|
+
} = useIdentifierDetails(identifierId);
|
|
72
|
+
return useQuery([REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY, identifierId], () => identifierDetail !== null && identifierDetail !== void 0 && identifierDetail.did ? core.getRemoteTrustEntity(identifierDetail.did.id) : undefined, {
|
|
73
|
+
enabled: Boolean(identifierDetail === null || identifierDetail === void 0 ? void 0 : identifierDetail.did),
|
|
57
74
|
keepPreviousData: true
|
|
58
75
|
});
|
|
59
76
|
};
|
|
@@ -62,7 +79,22 @@ export const useCreateRemoteTrustEntity = () => {
|
|
|
62
79
|
const {
|
|
63
80
|
core
|
|
64
81
|
} = useONECore();
|
|
65
|
-
return useMutation(async request =>
|
|
82
|
+
return useMutation(async request => {
|
|
83
|
+
const {
|
|
84
|
+
identifierId,
|
|
85
|
+
didId
|
|
86
|
+
} = request;
|
|
87
|
+
let entityDidId = didId;
|
|
88
|
+
if (identifierId) {
|
|
89
|
+
var _identifierDetail$did;
|
|
90
|
+
const identifierDetail = await core.getIdentifier(identifierId);
|
|
91
|
+
entityDidId = identifierDetail === null || identifierDetail === void 0 || (_identifierDetail$did = identifierDetail.did) === null || _identifierDetail$did === void 0 ? void 0 : _identifierDetail$did.id;
|
|
92
|
+
}
|
|
93
|
+
return core.createRemoteTrustEntity({
|
|
94
|
+
...request,
|
|
95
|
+
didId: entityDidId
|
|
96
|
+
});
|
|
97
|
+
}, {
|
|
66
98
|
onSuccess: async () => {
|
|
67
99
|
await queryClient.invalidateQueries(REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY);
|
|
68
100
|
await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);
|
|
@@ -74,7 +106,22 @@ export const useUpdateRemoteTrustEntity = () => {
|
|
|
74
106
|
const {
|
|
75
107
|
core
|
|
76
108
|
} = useONECore();
|
|
77
|
-
return useMutation(async request =>
|
|
109
|
+
return useMutation(async request => {
|
|
110
|
+
const {
|
|
111
|
+
identifierId,
|
|
112
|
+
didId
|
|
113
|
+
} = request;
|
|
114
|
+
let entityDidId = didId;
|
|
115
|
+
if (identifierId) {
|
|
116
|
+
var _identifierDetail$did2;
|
|
117
|
+
const identifierDetail = await core.getIdentifier(identifierId);
|
|
118
|
+
entityDidId = identifierDetail === null || identifierDetail === void 0 || (_identifierDetail$did2 = identifierDetail.did) === null || _identifierDetail$did2 === void 0 ? void 0 : _identifierDetail$did2.id;
|
|
119
|
+
}
|
|
120
|
+
return core.updateRemoteTrustEntity({
|
|
121
|
+
...request,
|
|
122
|
+
didId: entityDidId
|
|
123
|
+
});
|
|
124
|
+
}, {
|
|
78
125
|
onSuccess: async () => {
|
|
79
126
|
await queryClient.invalidateQueries(REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY);
|
|
80
127
|
await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OneError","useCallback","useMutation","useQuery","useQueryClient","reportException","useHTTPClient","useONECore","OneErrorCode","HISTORY_LIST_QUERY_KEY","TRUST_ENTITY_DETAIL_QUERY_KEY","REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY","useCreateTrustAnchor","publisherReference","httpClient","core","trustAnchors","getTrustAnchors","page","pageSize","values","length","response","get","ok","data","trustAnchor","createTrustAnchor","isPublisher","name","type","TrustManagementEnum","SimpleTrustList","catch","err","useTrustEntity","
|
|
1
|
+
{"version":3,"names":["OneError","useCallback","useMutation","useQuery","useQueryClient","reportException","useHTTPClient","useONECore","OneErrorCode","HISTORY_LIST_QUERY_KEY","useIdentifierDetails","TRUST_ENTITY_DETAIL_QUERY_KEY","REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY","useCreateTrustAnchor","publisherReference","httpClient","core","trustAnchors","getTrustAnchors","page","pageSize","values","length","response","get","ok","data","trustAnchor","createTrustAnchor","isPublisher","name","type","TrustManagementEnum","SimpleTrustList","catch","err","useTrustEntity","identifierId","identifierDetail","_identifierDetail$cer","resolveTrustEntityByIdentifier","identifiers","certificateId","certificates","id","undefined","then","result","e","code","NoTrustEntityFound","enabled","Boolean","keepPreviousData","useRemoteTrustEntity","did","getRemoteTrustEntity","useCreateRemoteTrustEntity","queryClient","request","didId","entityDidId","_identifierDetail$did","getIdentifier","createRemoteTrustEntity","onSuccess","invalidateQueries","useUpdateRemoteTrustEntity","_identifierDetail$did2","updateRemoteTrustEntity"],"sources":["trust-entity.ts"],"sourcesContent":["import {\n CreateRemoteTrustEntityRequest,\n ONECore,\n OneError,\n TrustAnchor,\n UpdateRemoteTrustEntityRequest,\n} from '@procivis/react-native-one-core';\nimport { useCallback } from 'react';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { reportException } from '../../reporting';\nimport { useHTTPClient } from '../http/client';\nimport { useONECore } from './core-context';\nimport { OneErrorCode } from './error-code';\nimport { HISTORY_LIST_QUERY_KEY } from './history';\nimport { useIdentifierDetails } from './identifiers';\n\nexport const TRUST_ENTITY_DETAIL_QUERY_KEY = 'trust-entity-detail';\nexport const REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY = 'remote-trust-entity-detail';\n\nexport const useCreateTrustAnchor = (publisherReference: string) => {\n const httpClient = useHTTPClient();\n\n return useCallback(\n async (core: ONECore) => {\n const trustAnchors = await core.getTrustAnchors({\n page: 0,\n pageSize: 1,\n });\n if (trustAnchors.values.length > 0) {\n return;\n }\n const response = await httpClient.get<TrustAnchor>(publisherReference);\n if (!response.ok || !response.data) {\n return;\n }\n const trustAnchor = response.data;\n await core\n .createTrustAnchor({\n isPublisher: false,\n name: trustAnchor.name,\n publisherReference,\n type: TrustManagementEnum.SimpleTrustList,\n })\n .catch((err) => {\n reportException(err, 'Failed to create trust anchor');\n throw err;\n });\n },\n [publisherReference, httpClient],\n );\n};\n\nexport const useTrustEntity = (identifierId: string | undefined) => {\n const { core } = useONECore();\n\n const { data: identifierDetail } = useIdentifierDetails(identifierId);\n\n return useQuery(\n [TRUST_ENTITY_DETAIL_QUERY_KEY, identifierId],\n () => identifierId && identifierDetail\n ? core.resolveTrustEntityByIdentifier({\n identifiers: [{\n certificateId: identifierDetail.type === 'CERTIFICATE' ? identifierDetail.certificates?.[0]?.id : undefined,\n id: identifierId,\n }],\n }).then((result) => {\n return result[identifierId];\n }).catch((e) => {\n if (e instanceof OneError && e.code === OneErrorCode.NoTrustEntityFound) {\n return null;\n }\n throw e;\n })\n : undefined,\n {\n enabled: Boolean(identifierDetail),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useRemoteTrustEntity = (identifierId: string | undefined) => {\n const { core } = useONECore();\n\n const { data: identifierDetail } = useIdentifierDetails(identifierId);\n\n return useQuery(\n [REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY, identifierId],\n () => (identifierDetail?.did ? core.getRemoteTrustEntity(identifierDetail.did.id) : undefined),\n {\n enabled: Boolean(identifierDetail?.did),\n keepPreviousData: true,\n },\n );\n};\n\nexport const useCreateRemoteTrustEntity = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (request: Omit<CreateRemoteTrustEntityRequest, 'didId'> & { identifierId?: string, didId?: string }) => {\n const { identifierId, didId } = request\n\n let entityDidId = didId;\n\n if (identifierId) {\n const identifierDetail = await core.getIdentifier(identifierId);\n entityDidId = identifierDetail?.did?.id;\n }\n\n return core.createRemoteTrustEntity({\n ...request,\n didId: entityDidId!,\n })\n }, {\n onSuccess: async () => {\n await queryClient.invalidateQueries(REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport const useUpdateRemoteTrustEntity = () => {\n const queryClient = useQueryClient();\n const { core } = useONECore();\n\n return useMutation(async (request: Omit<UpdateRemoteTrustEntityRequest, 'didId'> & { identifierId?: string, didId?: string }) => {\n const { identifierId, didId } = request\n\n let entityDidId = didId;\n if (identifierId) {\n const identifierDetail = await core.getIdentifier(identifierId);\n entityDidId = identifierDetail?.did?.id;\n }\n\n return core.updateRemoteTrustEntity({\n ...request,\n didId: entityDidId!,\n })\n }, {\n onSuccess: async () => {\n await queryClient.invalidateQueries(REMOTE_TRUST_ENTITY_DETAIL_QUERY_KEY);\n await queryClient.invalidateQueries(HISTORY_LIST_QUERY_KEY);\n },\n });\n};\n\nexport enum TrustManagementEnum {\n SimpleTrustList = 'SIMPLE_TRUST_LIST',\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -72,21 +72,15 @@ const spreadClaims = (claims, parentClaimPath = '') => {
|
|
|
72
72
|
}, []);
|
|
73
73
|
};
|
|
74
74
|
const getDisplayedAttributes = (request, validityState, credential, selectiveDisclosureSupported, selectedFields) => {
|
|
75
|
-
|
|
76
|
-
return credential.claims.map(claim => ({
|
|
77
|
-
claim,
|
|
78
|
-
id: claim.id,
|
|
79
|
-
status: SelectorStatus.Required
|
|
80
|
-
}));
|
|
81
|
-
}
|
|
75
|
+
const claims = credential ? spreadClaims(credential.claims) : undefined;
|
|
82
76
|
return request.fields.map(field => {
|
|
83
77
|
const selected = !field.required && (selectedFields === null || selectedFields === void 0 ? void 0 : selectedFields.includes(field.id));
|
|
84
|
-
const claim = credential
|
|
78
|
+
const claim = credential ? claims === null || claims === void 0 ? void 0 : claims.find(({
|
|
85
79
|
key
|
|
86
80
|
}) => {
|
|
87
81
|
return key === field.keyMap[credential.id];
|
|
88
|
-
});
|
|
89
|
-
const status = getAttributeSelectorStatus(field, validityState, credential, claim, selected);
|
|
82
|
+
}) : undefined;
|
|
83
|
+
const status = selectiveDisclosureSupported === false ? SelectorStatus.Required : getAttributeSelectorStatus(field, validityState, credential, claim, selected);
|
|
90
84
|
return {
|
|
91
85
|
claim,
|
|
92
86
|
field,
|
|
@@ -146,10 +140,10 @@ const setStatusForNestedObjectOrArrayFields = (attribute, status, disabled) => {
|
|
|
146
140
|
}
|
|
147
141
|
};
|
|
148
142
|
export const shareCredentialCardFromCredential = (credential, invalidLVVC, expanded, multipleCredentialsAvailable, request, selectedFields, config, testID, labels) => {
|
|
149
|
-
var _credential$
|
|
143
|
+
var _credential$issuer, _credential$issuer2;
|
|
150
144
|
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
|
|
151
145
|
...credential,
|
|
152
|
-
|
|
146
|
+
issuer: (_credential$issuer = credential.issuer) === null || _credential$issuer === void 0 ? void 0 : _credential$issuer.id
|
|
153
147
|
} : undefined, config);
|
|
154
148
|
const notice = selectiveDisclosureSupported === false ? {
|
|
155
149
|
text: labels.selectiveDisclosureNotice,
|
|
@@ -159,7 +153,7 @@ export const shareCredentialCardFromCredential = (credential, invalidLVVC, expan
|
|
|
159
153
|
const card = credential ? validityCheckedCardFromCredential(credential, invalidLVVC, expanded, multipleCredentialsAvailable, config, notice, cardTestId, labels) : missingCredentialCardFromRequest(request, notice, cardTestId, labels);
|
|
160
154
|
const validityState = getValidityState(credential ? {
|
|
161
155
|
...credential,
|
|
162
|
-
|
|
156
|
+
issuer: (_credential$issuer2 = credential.issuer) === null || _credential$issuer2 === void 0 ? void 0 : _credential$issuer2.id
|
|
163
157
|
} : undefined);
|
|
164
158
|
const displayedAttributes = getDisplayedAttributes(request, validityState, credential, selectiveDisclosureSupported, selectedFields);
|
|
165
159
|
const attributes = displayedAttributes.map(({
|
|
@@ -193,10 +187,10 @@ export const selectCredentialCardAttributeFromClaim = (id, config, testID, label
|
|
|
193
187
|
};
|
|
194
188
|
};
|
|
195
189
|
export const selectCredentialCardFromCredential = (credential, selected, request, config, testID, labels) => {
|
|
196
|
-
var _credential$
|
|
190
|
+
var _credential$issuer3;
|
|
197
191
|
const selectiveDisclosureSupported = supportsSelectiveDisclosure(credential ? {
|
|
198
192
|
...credential,
|
|
199
|
-
|
|
193
|
+
issuer: (_credential$issuer3 = credential.issuer) === null || _credential$issuer3 === void 0 ? void 0 : _credential$issuer3.id
|
|
200
194
|
} : undefined, config);
|
|
201
195
|
const rightAccessory = /*#__PURE__*/React.createElement(Selector, {
|
|
202
196
|
status: selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Selector","SelectorStatus","CredentialNoticeWarningIcon","CredentialWarningIcon","RequiredAttributeIcon","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","getValidityState","nestAttributes","supportsSelectiveDisclosure","ValidityState","validityCheckedCardFromCredential","credential","invalidLVVC","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailErrorColor","credentialDetailPrimary","revoked","credentialDetailTestID","multipleCredentials","statusIcon","card","claims","header","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","Valid","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","parentClaimPath","reduce","acc","result","Array","isArray","value","claimPath","key","push","getDisplayedAttributes","selectiveDisclosureSupported","selectedFields","map","status","fields","includes","find","keyMap","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","split","pop","path","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","isObject","attributes","length","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuerDid","_credential$issuerDid2","issuerDid","did","text","selectiveDisclosureNotice","noticeIcon","cardTestId","displayedAttributes","index","selectCredentialCardAttributeFromClaim","selectCredentialCardFromCredential","_credential$issuerDid3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n Config,\n CredentialDetail,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n Selector,\n SelectorStatus,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';\nimport { concatTestID } from '../testID';\nimport {\n CardLabels,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetail,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (invalidLVVC) {\n credentialHeaderDetail = {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.revoked,\n credentialDetailTestID: concatTestID(testID, 'header.invalid'),\n };\n } else if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredential,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style'> => {\n return {\n cardImage: undefined,\n color: undefined,\n testID,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: request.name ?? request.id,\n statusIcon: CredentialWarningIcon,\n },\n ...notice,\n };\n};\n\ninterface DisplayedAttribute {\n claim?: Claim;\n field?: PresentationDefinitionField;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionField,\n validityState: ValidityState,\n credential?: CredentialDetail,\n claim?: Claim,\n selected?: boolean,\n): SelectorStatus => {\n if (!credential || validityState !== ValidityState.Valid) {\n return SelectorStatus.Rejected;\n }\n if (field.required) {\n if (claim) {\n return SelectorStatus.Required;\n } else {\n return SelectorStatus.Rejected;\n }\n }\n if (!claim) {\n return SelectorStatus.Disabled;\n }\n return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;\n};\n\n// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects\nconst spreadClaims = (claims: Claim[], parentClaimPath = ''): Claim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (Array.isArray(claim.value)) {\n const claimPath = parentClaimPath ? `${parentClaimPath}/${claim.key}` : claim.key;\n result.push(...spreadClaims(claim.value, claimPath));\n }\n return [...acc, ...result];\n }, [] as Claim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredential,\n validityState: ValidityState,\n credential?: CredentialDetail,\n selectiveDisclosureSupported?: boolean,\n selectedFields?: string[],\n): DisplayedAttribute[] => {\n if (credential && selectiveDisclosureSupported === false) {\n return credential.claims.map((claim) => ({\n claim,\n id: claim.id,\n status: SelectorStatus.Required,\n }));\n }\n\n return request.fields.map((field) => {\n const selected = !field.required && selectedFields?.includes(field.id);\n const claim =\n credential &&\n spreadClaims(credential.claims).find(({ key }) => {\n return key === field.keyMap[credential.id];\n });\n const status = getAttributeSelectorStatus(field, validityState, credential, claim, selected);\n return { claim, field, id: field.id, selected, status };\n });\n};\n\nexport const shareCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: Claim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n if (claim) {\n return { ...detailsCardAttributeFromClaim(claim, config, testID), id };\n }\n return {\n id,\n name: field?.name?.split('/').pop() ?? id,\n path: field?.name ?? id,\n value: labels.missingAttribute,\n valueErrorColor: true,\n };\n};\n\n// Will propagate the attribute status (right accessory + selected?) for all nested attributes\n// Note: This function MUTATES the input attribute\nconst setStatusForNestedObjectOrArrayFields = (\n attribute: CredentialAttribute,\n status?: SelectorStatus,\n disabled?: boolean,\n) => {\n const accessory = status && <Selector status={status} />;\n const isObject = attribute.attributes && attribute.attributes.length > 0;\n const isArray = attribute.values && attribute.values.length > 0;\n\n // If the attribute is not an object or array, we update the attribute and return\n if (!isObject && !isArray) {\n attribute.rightAccessory = accessory;\n attribute.disabled = disabled;\n return attribute;\n }\n\n // The object can be optional (tappable radio-checkmark), or required (checkmark)\n if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {\n // If it's a selectable object, the accessory is rendered next to the object title,\n // The nested attributes have no accessory, and can not be selected\n attribute.rightAccessory = accessory;\n setStatusForNestedObjectOrArrayFields(attribute, undefined, true);\n } else {\n const nested = attribute.attributes ?? attribute.values;\n // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)\n // all fields are disabled\n for (const nestedAttribute of nested) {\n setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);\n }\n }\n};\n\nexport type ShareCredentialCardLabels = CardLabels & {\n selectiveDisclosureNotice: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetail | undefined,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialDetailsCardProps, 'expanded'> => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuerDid: credential.issuerDid?.did } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n invalidLVVC,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(\n credential ? { ...credential, issuerDid: credential.issuerDid?.did } : undefined,\n );\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: Claim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);\n if (!claim) {\n return attribute;\n }\n return {\n ...attribute,\n rightAccessory: RequiredAttributeIcon,\n };\n};\n\nexport const selectCredentialCardFromCredential = (\n credential: CredentialDetail,\n selected: boolean,\n request: PresentationDefinitionRequestedCredential,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialDetailsCardProps, 'expanded'> => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuerDid: credential.issuerDid?.did } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = request.fields.map((field) => {\n const claim = spreadClaims(credential.claims).find(({ key }) => {\n return key === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Selector","SelectorStatus","CredentialNoticeWarningIcon","CredentialWarningIcon","RequiredAttributeIcon","concatTestID","detailsCardAttributeFromClaim","getCredentialCardPropsFromCredential","getValidityState","nestAttributes","supportsSelectiveDisclosure","ValidityState","validityCheckedCardFromCredential","credential","invalidLVVC","expanded","multipleCredentialsAvailable","config","notice","testID","labels","credentialHeaderDetail","credentialDetailErrorColor","credentialDetailPrimary","revoked","credentialDetailTestID","multipleCredentials","statusIcon","card","claims","header","missingCredentialCardFromRequest","request","_request$name","cardImage","undefined","color","missingCredential","credentialName","name","id","getAttributeSelectorStatus","field","validityState","claim","selected","Valid","Rejected","required","Required","Disabled","SelectedCheckmark","Empty","spreadClaims","parentClaimPath","reduce","acc","result","Array","isArray","value","claimPath","key","push","getDisplayedAttributes","selectiveDisclosureSupported","selectedFields","fields","map","includes","find","keyMap","status","shareCredentialCardAttributeFromClaim","_field$name$split$pop","_field$name","_field$name2","split","pop","path","missingAttribute","valueErrorColor","setStatusForNestedObjectOrArrayFields","attribute","disabled","accessory","createElement","isObject","attributes","length","values","rightAccessory","_attribute$attributes","nested","nestedAttribute","shareCredentialCardFromCredential","_credential$issuer","_credential$issuer2","issuer","text","selectiveDisclosureNotice","noticeIcon","cardTestId","displayedAttributes","index","selectCredentialCardAttributeFromClaim","selectCredentialCardFromCredential","_credential$issuer3","SelectedRadio","cardProps"],"sources":["credential-sharing.tsx"],"sourcesContent":["import {\n Claim,\n Config,\n CredentialDetail,\n PresentationDefinitionField,\n PresentationDefinitionRequestedCredential,\n} from '@procivis/react-native-one-core';\nimport React from 'react';\n\nimport {\n CredentialAttribute,\n CredentialCardProps,\n CredentialDetailsCardProps,\n CredentialHeaderProps,\n Selector,\n SelectorStatus,\n} from '../../ui-components/credential';\nimport { CredentialCardNotice } from '../../ui-components/credential/card/credential-card';\nimport { CredentialNoticeWarningIcon, CredentialWarningIcon, RequiredAttributeIcon } from '../../ui-components/icons';\nimport { concatTestID } from '../testID';\nimport {\n CardLabels,\n detailsCardAttributeFromClaim,\n getCredentialCardPropsFromCredential,\n getValidityState,\n nestAttributes,\n supportsSelectiveDisclosure,\n ValidityState,\n} from './credential';\n\nexport const validityCheckedCardFromCredential = (\n credential: CredentialDetail,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n config: Config,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style' | 'testID'> => {\n let credentialHeaderDetail:\n | Pick<\n CredentialHeaderProps,\n | 'credentialDetailPrimary'\n | 'credentialDetailSecondary'\n | 'credentialDetailErrorColor'\n | 'credentialDetailTestID'\n | 'statusIcon'\n >\n | undefined;\n if (invalidLVVC) {\n credentialHeaderDetail = {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.revoked,\n credentialDetailTestID: concatTestID(testID, 'header.invalid'),\n };\n } else if (!expanded && multipleCredentialsAvailable) {\n credentialHeaderDetail = {\n credentialDetailPrimary: labels.multipleCredentials,\n credentialDetailTestID: concatTestID(testID, 'header.multiple'),\n statusIcon: CredentialWarningIcon,\n };\n }\n\n const card = getCredentialCardPropsFromCredential(credential, credential.claims, config, notice, testID, labels);\n return {\n ...card,\n header: {\n ...card.header,\n ...credentialHeaderDetail,\n },\n };\n};\n\nexport const missingCredentialCardFromRequest = (\n request: PresentationDefinitionRequestedCredential,\n notice: CredentialCardNotice | undefined,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialCardProps, 'onHeaderPress' | 'style'> => {\n return {\n cardImage: undefined,\n color: undefined,\n testID,\n header: {\n credentialDetailErrorColor: true,\n credentialDetailPrimary: labels.missingCredential,\n credentialDetailTestID: concatTestID(testID, 'header.missing'),\n credentialName: request.name ?? request.id,\n statusIcon: CredentialWarningIcon,\n },\n ...notice,\n };\n};\n\ninterface DisplayedAttribute {\n claim?: Claim;\n field?: PresentationDefinitionField;\n id: string;\n selected?: boolean;\n status: SelectorStatus;\n}\n\nconst getAttributeSelectorStatus = (\n field: PresentationDefinitionField,\n validityState: ValidityState,\n credential?: CredentialDetail,\n claim?: Claim,\n selected?: boolean,\n): SelectorStatus => {\n if (!credential || validityState !== ValidityState.Valid) {\n return SelectorStatus.Rejected;\n }\n if (field.required) {\n if (claim) {\n return SelectorStatus.Required;\n } else {\n return SelectorStatus.Rejected;\n }\n }\n if (!claim) {\n return SelectorStatus.Disabled;\n }\n return selected ? SelectorStatus.SelectedCheckmark : SelectorStatus.Empty;\n};\n\n// Returns a spread list of all claims with their full JSON path as key, including all intermediate objects\nconst spreadClaims = (claims: Claim[], parentClaimPath = ''): Claim[] => {\n return claims.reduce((acc, claim) => {\n const result = [claim];\n if (Array.isArray(claim.value)) {\n const claimPath = parentClaimPath ? `${parentClaimPath}/${claim.key}` : claim.key;\n result.push(...spreadClaims(claim.value, claimPath));\n }\n return [...acc, ...result];\n }, [] as Claim[]);\n};\n\nconst getDisplayedAttributes = (\n request: PresentationDefinitionRequestedCredential,\n validityState: ValidityState,\n credential?: CredentialDetail,\n selectiveDisclosureSupported?: boolean,\n selectedFields?: string[],\n): DisplayedAttribute[] => {\n const claims = credential ? spreadClaims(credential.claims) : undefined;\n\n return request.fields.map((field) => {\n const selected = !field.required && selectedFields?.includes(field.id);\n const claim =\n credential ?\n claims?.find(({ key }) => {\n return key === field.keyMap[credential.id];\n }) : undefined;\n const status = selectiveDisclosureSupported === false ? SelectorStatus.Required : getAttributeSelectorStatus(field, validityState, credential, claim, selected);\n return { claim, field, id: field.id, selected, status };\n });\n};\n\nexport const shareCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: Claim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n if (claim) {\n return { ...detailsCardAttributeFromClaim(claim, config, testID), id };\n }\n return {\n id,\n name: field?.name?.split('/').pop() ?? id,\n path: field?.name ?? id,\n value: labels.missingAttribute,\n valueErrorColor: true,\n };\n};\n\n// Will propagate the attribute status (right accessory + selected?) for all nested attributes\n// Note: This function MUTATES the input attribute\nconst setStatusForNestedObjectOrArrayFields = (\n attribute: CredentialAttribute,\n status?: SelectorStatus,\n disabled?: boolean,\n) => {\n const accessory = status && <Selector status={status} />;\n const isObject = attribute.attributes && attribute.attributes.length > 0;\n const isArray = attribute.values && attribute.values.length > 0;\n\n // If the attribute is not an object or array, we update the attribute and return\n if (!isObject && !isArray) {\n attribute.rightAccessory = accessory;\n attribute.disabled = disabled;\n return attribute;\n }\n\n // The object can be optional (tappable radio-checkmark), or required (checkmark)\n if (status === SelectorStatus.SelectedCheckmark || status === SelectorStatus.Empty) {\n // If it's a selectable object, the accessory is rendered next to the object title,\n // The nested attributes have no accessory, and can not be selected\n attribute.rightAccessory = accessory;\n setStatusForNestedObjectOrArrayFields(attribute, undefined, true);\n } else {\n const nested = attribute.attributes ?? attribute.values;\n // If the object is required / rejected, the accessory is rendered next to each nested attribute (except other object titles)\n // all fields are disabled\n for (const nestedAttribute of nested) {\n setStatusForNestedObjectOrArrayFields(nestedAttribute, status, true);\n }\n }\n};\n\nexport type ShareCredentialCardLabels = CardLabels & {\n selectiveDisclosureNotice: string;\n missingAttribute: string;\n missingCredential: string;\n multipleCredentials: string;\n};\n\nexport const shareCredentialCardFromCredential = (\n credential: CredentialDetail | undefined,\n invalidLVVC: boolean,\n expanded: boolean,\n multipleCredentialsAvailable: boolean,\n request: PresentationDefinitionRequestedCredential,\n selectedFields: string[] | undefined,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialDetailsCardProps, 'expanded'> => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const cardTestId = concatTestID(testID, 'card');\n const card = credential\n ? validityCheckedCardFromCredential(\n credential,\n invalidLVVC,\n expanded,\n multipleCredentialsAvailable,\n config,\n notice,\n cardTestId,\n labels,\n )\n : missingCredentialCardFromRequest(request, notice, cardTestId, labels);\n const validityState = getValidityState(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n );\n const displayedAttributes = getDisplayedAttributes(\n request,\n validityState,\n credential,\n selectiveDisclosureSupported,\n selectedFields,\n );\n\n const attributes: CredentialAttribute[] = displayedAttributes.map(({ claim, field, id, selected, status }, index) => {\n const disabled = !credential || !field || field.required || !claim;\n const attribute: CredentialAttribute = {\n ...shareCredentialCardAttributeFromClaim(\n id,\n config,\n concatTestID(testID, 'attribute', `${index}`),\n labels,\n claim,\n field,\n ),\n selected,\n };\n\n setStatusForNestedObjectOrArrayFields(attribute, status, disabled);\n return attribute;\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n\nexport const selectCredentialCardAttributeFromClaim = (\n id: string,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n claim?: Claim,\n field?: PresentationDefinitionField,\n): CredentialAttribute => {\n const attribute = shareCredentialCardAttributeFromClaim(id, config, testID, labels, claim, field);\n if (!claim) {\n return attribute;\n }\n return {\n ...attribute,\n rightAccessory: RequiredAttributeIcon,\n };\n};\n\nexport const selectCredentialCardFromCredential = (\n credential: CredentialDetail,\n selected: boolean,\n request: PresentationDefinitionRequestedCredential,\n config: Config,\n testID: string,\n labels: ShareCredentialCardLabels,\n): Omit<CredentialDetailsCardProps, 'expanded'> => {\n const selectiveDisclosureSupported = supportsSelectiveDisclosure(\n credential ? { ...credential, issuer: credential.issuer?.id } : undefined,\n config,\n );\n const rightAccessory = <Selector status={selected ? SelectorStatus.SelectedRadio : SelectorStatus.Empty} />;\n const notice: CredentialCardNotice | undefined =\n selectiveDisclosureSupported === false\n ? {\n text: labels.selectiveDisclosureNotice,\n noticeIcon: CredentialNoticeWarningIcon,\n }\n : undefined;\n const { header, ...cardProps } = getCredentialCardPropsFromCredential(\n credential,\n credential.claims,\n config,\n notice,\n testID,\n labels,\n );\n const card = {\n header: {\n ...header,\n accessory: rightAccessory,\n },\n ...cardProps,\n };\n const attributes: CredentialAttribute[] = request.fields.map((field) => {\n const claim = spreadClaims(credential.claims).find(({ key }) => {\n return key === field.keyMap[credential.id];\n });\n\n const attribute = selectCredentialCardAttributeFromClaim(field.id, config, testID, labels, claim, field);\n return {\n ...attribute,\n rightAccessory: (\n <Selector status={field.required && !claim ? SelectorStatus.Rejected : SelectorStatus.Required} />\n ),\n };\n });\n return {\n attributes: nestAttributes(attributes),\n card,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -165,6 +165,13 @@ const detailsCardAttributeValueFromClaim = (claim, config, testID) => {
|
|
|
165
165
|
case DataTypeEnum.Date:
|
|
166
166
|
{
|
|
167
167
|
var _formatDateLocalized;
|
|
168
|
+
if (!claim.value) {
|
|
169
|
+
// Don't try to parse empty values (which will return "Invalid Date")
|
|
170
|
+
return {
|
|
171
|
+
testID: testID,
|
|
172
|
+
value: String(claim.value)
|
|
173
|
+
};
|
|
174
|
+
}
|
|
168
175
|
const date = claim.value;
|
|
169
176
|
return {
|
|
170
177
|
testID: testID,
|