@procivis/react-native-one-core 1.115964.0 → 1.120826.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/README.md CHANGED
@@ -86,61 +86,24 @@ regulatory ecosystems.
86
86
  We continue to look for more opportunities for interoperability testing as the standards
87
87
  and regulations mature and harden.
88
88
 
89
- ## Supported standards
90
-
91
- ### Credential models
92
-
93
- #### IETF SD-JWT VC
94
-
95
- - [IETF SD-JWT-based Verifiable Credentials][sdjwtvc]:
96
-
97
- | Standard | Supported representations | Supported proof/signature types |
98
- | -------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
99
- | IETF SD-JWT VC | SD-JWT | <ul><li>JOSE / ECDSA [ES256][es2]</li><li>JOSE / EdDSA [Ed25519][ed255]</li><li>JOSE / [ML-DSA-65 (FIPS 204)][fips]\*</li></ul> |
100
-
101
- #### ISO mdoc
102
-
103
- - [ISO/IEC 18013-5:2021][iso5] standard for mdoc credentials in the following variations:
104
-
105
- | Standard | Supported representations | Supported proof/signature types |
106
- | -------------------- | ------------------------- | --------------------------------------------------------------------------------- |
107
- | ISO/IEC 18013-5:2021 | mdoc | <ul><li>COSE / ECDSA [ES256][es2]</li><li>COSE / EdDSA [Ed25519][ed255]</li></ul> |
108
-
109
- #### W3C VC
110
-
111
- - [W3C Verifiable Credentials Data Model 2.0][vcdm] in the following variations:
112
-
113
- | Securing mechanism | Supported representations | Supported proof/signature types |
114
- | -------------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
115
- | [W3C Data Integrity Proofs][vcdi] (embedded) | [JSON-LD][jld] in Compacted Document Form | <ul><li>[W3C Data Integrity ECDSA Cryptosuites v1.0][ecd] / [ecdsa-rdfc-2019][ecd2019]</li><li>[W3C Data Integrity EdDSA Cryptosuites v1.0][edd] / [eddsa-rdfc-2022][edd2022]</li><li>[W3C Data Integrity BBS Cryptosuites v1.0][bbs] / [bbs-2023][bbs2023]</li></ul> |
116
- | [W3C VC-JOSE-COSE][jose] (enveloping) | <ul><li>[SD-JWT][sdjwt]</li><li>[JWT][jw]</li></ul> | <ul><li>JOSE / ECDSA [ES256][es2]</li><li>JOSE / EdDSA [Ed25519][ed255]</li><li>JOSE / [ML-DSA-65 (FIPS 204)][fips]\*</li></ul> |
117
-
118
- - **Backwards compatibility**: Procivis One supports verification of proofs which use VCDM 1.1.
119
-
120
- ### Exchange and transport
121
-
122
- - OpenID4VCI (Issuance)
123
- - [v1.0][vci1]
124
- - OpenID4VP (Verification)
125
- - [v1.0][vp1.0]
126
- - [Draft 25][vp25]
127
- - [Draft 20][vp20]
128
- - [OID4VP over BLE][ble]; optimized version of Draft 00
129
- - OID4VP over MQTT; proprietary adaptation of "OID4VP over BLE" via MQTT channel
130
- - ISO/IEC 18013 (Verification)
131
- - [18013-5][iso5]: Device engagement using either NFC or QR Code, data retrieval using BLE
132
- - [18013-7 Annex B][iso7]: Online data retrieval via OID4VP
133
-
134
- ### Key storage
135
-
136
- - Secure Enclave (iOS) and Android Keystore (TEE or Strongbox)
137
- - Internal encrypted database
138
-
139
- ### Revocation methods
140
-
141
- - [Bitstring Status List v1.0][sl]
142
- - [Token Status List - Draft 03][tsl]
143
- - [Certificate Revocation List][crl]
89
+ ## Standards and technologies
90
+
91
+ | Category | Supported |
92
+ | -------- | --------- |
93
+ | Credential formats | SD-JWT VC, ISO mdoc, W3C VC |
94
+ | Issuance protocol | OpenID4VCI |
95
+ | Presentation protocols | OpenID4VP, ISO/IEC 18013-5, ISO/IEC 18013-7 |
96
+ | Transport and engagement | BLE, MQTT, NFC, QR code |
97
+ | Revocation | Bitstring Status List, Token Status List, CRL |
98
+ | Key storage | Secure Enclave, Android Keystore, Azure Key Vault, HSM, internal database |
99
+ | DID methods | did\:key, did\:web, did\:jwk, did\:webvh |
100
+ | Trust infrastructure | ETSI Trusted Lists, Lists of Trusted Lists (LoTL), and Lists of Trusted Entities (LoTE), EUDI Access and Registration Certificates |
101
+ | Cryptographic suites | ES256, Ed25519, ML-DSA-65, BBS |
102
+ | Wallet attestations | Wallet Unit Attestation (WUA) and Wallet Instance Attestation (WIA) |
103
+
104
+ For the full list of supported standards, specifications, protocol versions, and
105
+ ETSI coverage, see the [Supported Standards and Technologies][supptech] page in
106
+ the Procivis One documentation.
144
107
 
145
108
  ## Support
146
109
 
@@ -160,44 +123,15 @@ Version 2.0](./LICENSE).
160
123
  © Procivis AG, [https://www.procivis.ch](https://www.procivis.ch).
161
124
 
162
125
  [archi]: https://github.com/procivis#architecture
163
- [bbs]: https://www.w3.org/TR/vc-di-bbs/
164
- [bbs2023]: https://www.w3.org/TR/vc-di-bbs/#bbs-2023
165
- [ble]: https://openid.net/specs/openid-4-verifiable-presentations-over-ble-1_0.html
166
126
  [canivc]: https://canivc.com/implementations/procivis-one-core/
167
127
  [comp]: https://github.com/procivis/one-react-native-components
168
128
  [core]: https://github.com/procivis/one-core
169
- [cose]: https://www.rfc-editor.org/rfc/rfc9052
170
- [crl]: https://www.ietf.org/rfc/rfc5280.txt
171
129
  [docs]: https://docs.procivis.ch/
172
- [ecd]: https://www.w3.org/TR/vc-di-ecdsa/
173
- [ecd2019]: https://www.w3.org/TR/vc-di-ecdsa/#ecdsa-rdfc-2019
174
- [edd]: https://www.w3.org/TR/vc-di-eddsa/
175
- [edd2022]: https://www.w3.org/TR/vc-di-eddsa/#eddsa-rdfc-2022
176
- [ed255]: https://datatracker.ietf.org/doc/html/rfc8037
177
- [es2]: https://datatracker.ietf.org/doc/html/rfc7518
178
130
  [eudiwi]: https://issuer.eudiw.dev/
179
131
  [eudiwv]: https://verifier.eudiw.dev/home
180
- [fips]: https://csrc.nist.gov/pubs/fips/204/final
181
- [iso5]: https://www.iso.org/standard/69084.html
182
- [iso7]: https://www.iso.org/standard/82772.html
183
- [jld]: https://www.w3.org/TR/json-ld11/
184
- [jose]: https://w3c.github.io/vc-jose-cose/
185
- [jw]: https://datatracker.ietf.org/doc/html/rfc7519
186
132
  [key]: https://github.com/procivis#key-features
187
133
  [lvvc]: https://eprint.iacr.org/2022/1658.pdf
188
134
  [owf]: https://github.com/openwallet-foundation-labs/identity-credential
189
135
  [pow]: https://github.com/procivis/one-wallet
190
- [pqc]: https://csrc.nist.gov/pqc-standardization
191
- [rncore]: https://github.com/procivis/react-native-one-core
192
- [sdjwt]: https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-12.html
193
- [sdjwtvc]: https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-05.html
194
136
  [sdkref]: https://docs.procivis.ch/sdk
195
- [sl]: https://www.w3.org/TR/vc-bitstring-status-list/
196
137
  [trial]: https://docs.procivis.ch/trial
197
- [tsl]: https://datatracker.ietf.org/doc/html/draft-ietf-oauth-status-list-03
198
- [vcdi]: https://www.w3.org/TR/vc-data-integrity/
199
- [vcdm]: https://www.w3.org/TR/vc-data-model-2.0/
200
- [vci1]: https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html
201
- [vp1.0]: https://openid.net/specs/openid-4-verifiable-presentations-1_0-final.html
202
- [vp20]: https://openid.net/specs/openid-4-verifiable-presentations-1_0-20.html
203
- [vp25]: https://openid.net/specs/openid-4-verifiable-presentations-1_0-25.html
@@ -138,6 +138,14 @@ class ProcivisOneCoreModule(reactContext: ReactApplicationContext) :
138
138
  }
139
139
  }
140
140
 
141
+ @ReactMethod
142
+ fun getOrganisationTrustCollections(organisationId: String, promise: Promise) {
143
+ asyncCall(promise, scope) {
144
+ val result = getCore().getOrganisationTrustCollections(organisationId)
145
+ return@asyncCall convertToRN(result)
146
+ }
147
+ }
148
+
141
149
  @ReactMethod
142
150
  fun generateKey(keyRequest: ReadableMap, promise: Promise) {
143
151
  asyncCall(promise, scope) {
@@ -580,73 +588,33 @@ class ProcivisOneCoreModule(reactContext: ReactApplicationContext) :
580
588
  }
581
589
 
582
590
  @ReactMethod
583
- fun holderRegisterWalletUnit(request: ReadableMap, promise: Promise) {
584
- asyncCall(promise, scope) {
585
- val result = getCore().holderRegisterWalletUnit(construct(request))
586
- return@asyncCall convertToRN(result)
587
- }
588
- }
589
-
590
- @ReactMethod
591
- fun holderActivateWalletUnit(id: String, request: ReadableMap, promise: Promise) {
592
- asyncCall(promise, scope) {
593
- getCore().holderActivateWalletUnit(id, construct(request))
594
- return@asyncCall null
595
- }
596
- }
597
-
598
- @ReactMethod
599
- fun holderWalletUnitStatus(walletUnitId: String, promise: Promise) {
600
- asyncCall(promise, scope) {
601
- getCore().holderWalletUnitStatus(walletUnitId)
602
- return@asyncCall null
603
- }
604
- }
605
-
606
- @ReactMethod
607
- fun holderWalletUnitUpdate(walletUnitId: String, request: ReadableMap, promise: Promise) {
608
- asyncCall(promise, scope) {
609
- getCore().holderWalletUnitUpdate(walletUnitId, construct(request))
610
- return@asyncCall null
611
- }
612
- }
613
-
614
- @ReactMethod
615
- fun holderGetWalletUnit(walletUnitId: String, promise: Promise) {
616
- asyncCall(promise, scope) {
617
- val result = getCore().holderGetWalletUnit(walletUnitId)
618
- return@asyncCall convertToRN(result)
619
- }
620
- }
621
-
622
- @ReactMethod
623
- fun holderGetWalletUnitTrustCollections(walletUnitId: String, promise: Promise) {
591
+ fun holderRegisterInstance(request: ReadableMap, promise: Promise) {
624
592
  asyncCall(promise, scope) {
625
- val result = getCore().holderGetWalletUnitTrustCollections(walletUnitId)
593
+ val result = getCore().holderRegisterInstance(construct(request))
626
594
  return@asyncCall convertToRN(result)
627
595
  }
628
596
  }
629
597
 
630
598
  @ReactMethod
631
- fun registerVerifierInstance(request: ReadableMap, promise: Promise) {
599
+ fun holderActivateInstance(id: String, request: ReadableMap, promise: Promise) {
632
600
  asyncCall(promise, scope) {
633
- val result = getCore().registerVerifierInstance(construct(request))
601
+ val result = getCore().holderActivateInstance(id, construct(request))
634
602
  return@asyncCall convertToRN(result)
635
603
  }
636
604
  }
637
605
 
638
606
  @ReactMethod
639
- fun updateVerifierInstance(verifierInstanceId: String, request: ReadableMap, promise: Promise) {
607
+ fun holderInstanceStatus(id: String, promise: Promise) {
640
608
  asyncCall(promise, scope) {
641
- getCore().updateVerifierInstance(verifierInstanceId, construct(request))
609
+ getCore().holderInstanceStatus(id)
642
610
  return@asyncCall null
643
611
  }
644
612
  }
645
613
 
646
614
  @ReactMethod
647
- fun getVerifierInstanceTrustCollections(verifierInstanceId: String, promise: Promise) {
615
+ fun holderGetInstance(id: String, promise: Promise) {
648
616
  asyncCall(promise, scope) {
649
- val result = getCore().getVerifierInstanceTrustCollections(verifierInstanceId)
617
+ val result = getCore().holderGetInstance(id)
650
618
  return@asyncCall convertToRN(result)
651
619
  }
652
620
  }
@@ -224,6 +224,9 @@ object SerializeSpecific {
224
224
  }
225
225
  result.putString("protocol", value.protocol)
226
226
  result.putBoolean("requiresWalletInstanceAttestation", value.requiresWalletInstanceAttestation)
227
+ value.ecosystem?.let {
228
+ result.putString("ecosystem", it)
229
+ }
227
230
  }
228
231
 
229
232
  is HandleInvitationResponse.AuthorizationCodeFlow -> {
@@ -231,6 +234,9 @@ object SerializeSpecific {
231
234
  result.putString("interactionId", value.interactionId)
232
235
  result.putString("authorizationCodeFlowUrl", value.authorizationCodeFlowUrl)
233
236
  result.putString("protocol", value.protocol)
237
+ value.ecosystem?.let {
238
+ result.putString("ecosystem", it)
239
+ }
234
240
  }
235
241
 
236
242
  is HandleInvitationResponse.ProofRequest -> {
@@ -238,6 +244,9 @@ object SerializeSpecific {
238
244
  result.putString("interactionId", value.interactionId)
239
245
  result.putString("proofId", value.proofId)
240
246
  result.putString("protocol", value.protocol)
247
+ value.ecosystem?.let {
248
+ result.putString("ecosystem", it)
249
+ }
241
250
  }
242
251
  }
243
252
  return result
package/core-sdk.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "android": {
3
3
  "debug": {
4
- "url": "https://onesdk.blob.core.windows.net/core-sdk/115964/android/onecore-debug.aar",
5
- "sha1": "c31bdc53088d93e4cf00205e3b7b13b6c7adbe30"
4
+ "url": "https://onesdk.blob.core.windows.net/core-sdk/120826/android/onecore-debug.aar",
5
+ "sha1": "8042630dab29996bf714f17cc780098228e5810c"
6
6
  },
7
7
  "release": {
8
- "url": "https://onesdk.blob.core.windows.net/core-sdk/115964/android/onecore-release.aar",
9
- "sha1": "7115c6c8fd0715181890a7613a44318800e530e0"
8
+ "url": "https://onesdk.blob.core.windows.net/core-sdk/120826/android/onecore-release.aar",
9
+ "sha1": "5d1f2e7ce8268174bf46c05d3d546cf54c018d4e"
10
10
  }
11
11
  },
12
12
  "ios": {
13
- "url": "https://onesdk.blob.core.windows.net/core-sdk/115964/ios/deploy.zip",
14
- "sha1": "c16efa7d89daccfbaf4b0566742dc33e1f0bafd9"
13
+ "url": "https://onesdk.blob.core.windows.net/core-sdk/120826/ios/deploy.zip",
14
+ "sha1": "9dad563f89940149b23b8223e44ec09cb33437e0"
15
15
  }
16
16
  }
@@ -157,5 +157,6 @@ export interface CoreConfig {
157
157
  walletProvider: ConfigEntities;
158
158
  verifierProvider: ConfigEntities<undefined, {}>;
159
159
  globalSettings: GlobalSettings;
160
+ ecosystem: ConfigEntities;
160
161
  }
161
162
  export {};
@@ -10,4 +10,4 @@ export interface ONECore extends Omit<OneCore, "version" | "getConfig"> {
10
10
  * @hidden
11
11
  * New Architecture bridgeless issue workaround: see https://github.com/facebook/react-native/issues/43221
12
12
  */
13
- export declare const interfaceMethodNames: readonly ["getVersion", "getConfig", "createOrganisation", "upsertOrganisation", "getOrganisation", "generateKey", "createDid", "listDids", "createIdentifier", "getIdentifier", "listIdentifiers", "deleteIdentifier", "handleInvitation", "holderAcceptCredential", "holderRejectCredential", "holderRefreshCredential", "initiateIssuance", "continueIssuance", "getPresentationDefinitionV2", "holderRejectProof", "holderSubmitProofV2", "listCredentials", "runTask", "deleteProofClaims", "getCredential", "getCredentialTrustInformation", "deleteCredential", "importCredentialSchema", "getCredentialSchema", "createCredentialSchema", "listCredentialSchemas", "deleteCredentialSchema", "createProof", "shareProof", "shareProofSchema", "shareCredentialSchema", "getProof", "getProofTrustInformation", "holderGetTransactionData", "listProofs", "deleteProof", "proposeProof", "qesAuthorize", "qesSign", "createProofSchema", "listProofSchemas", "getProofSchema", "deleteProofSchema", "importProofSchema", "checkRevocation", "listHistory", "getHistoryEntry", "createBackup", "backupInfo", "deleteCache", "unpackBackup", "finalizeImport", "rollbackImport", "resolveJsonldContext", "holderRegisterWalletUnit", "holderActivateWalletUnit", "holderWalletUnitStatus", "holderGetWalletUnit", "holderWalletUnitUpdate", "holderGetWalletUnitTrustCollections", "registerVerifierInstance", "updateVerifierInstance", "getVerifierInstanceTrustCollections", "nfcReadIsoMdlEngagement", "nfcStopIsoMdlEngagement", "uninitialize"];
13
+ export declare const interfaceMethodNames: readonly ["getVersion", "getConfig", "createOrganisation", "upsertOrganisation", "getOrganisation", "getOrganisationTrustCollections", "generateKey", "createDid", "listDids", "createIdentifier", "getIdentifier", "listIdentifiers", "deleteIdentifier", "handleInvitation", "holderAcceptCredential", "holderRejectCredential", "holderRefreshCredential", "initiateIssuance", "continueIssuance", "getPresentationDefinitionV2", "holderRejectProof", "holderSubmitProofV2", "listCredentials", "runTask", "deleteProofClaims", "getCredential", "getCredentialTrustInformation", "deleteCredential", "importCredentialSchema", "getCredentialSchema", "createCredentialSchema", "listCredentialSchemas", "deleteCredentialSchema", "createProof", "shareProof", "shareProofSchema", "shareCredentialSchema", "getProof", "getProofTrustInformation", "holderGetTransactionData", "listProofs", "deleteProof", "proposeProof", "qesAuthorize", "qesSign", "createProofSchema", "listProofSchemas", "getProofSchema", "deleteProofSchema", "importProofSchema", "checkRevocation", "listHistory", "getHistoryEntry", "createBackup", "backupInfo", "deleteCache", "unpackBackup", "finalizeImport", "rollbackImport", "resolveJsonldContext", "holderRegisterInstance", "holderActivateInstance", "holderInstanceStatus", "holderGetInstance", "nfcReadIsoMdlEngagement", "nfcStopIsoMdlEngagement", "uninitialize"];
package/dist/src/core.js CHANGED
@@ -10,6 +10,7 @@ export const interfaceMethodNames = [
10
10
  "createOrganisation",
11
11
  "upsertOrganisation",
12
12
  "getOrganisation",
13
+ "getOrganisationTrustCollections",
13
14
  "generateKey",
14
15
  "createDid",
15
16
  "listDids",
@@ -64,21 +65,16 @@ export const interfaceMethodNames = [
64
65
  "finalizeImport",
65
66
  "rollbackImport",
66
67
  "resolveJsonldContext",
67
- "holderRegisterWalletUnit",
68
- "holderActivateWalletUnit",
69
- "holderWalletUnitStatus",
70
- "holderGetWalletUnit",
71
- "holderWalletUnitUpdate",
72
- "holderGetWalletUnitTrustCollections",
73
- "registerVerifierInstance",
74
- "updateVerifierInstance",
75
- "getVerifierInstanceTrustCollections",
68
+ "holderRegisterInstance",
69
+ "holderActivateInstance",
70
+ "holderInstanceStatus",
71
+ "holderGetInstance",
76
72
  "nfcReadIsoMdlEngagement",
77
73
  "nfcStopIsoMdlEngagement",
78
74
  "uninitialize",
79
75
  ];
80
76
  // Typescript automatic assertions to keep ONECore and interfaceMethodNames in sync
81
77
  /** assert that all method names listed in {@link interfaceMethodNames} exist in {@link ONECore} interface */
82
- const methodNamesCheck = interfaceMethodNames;
78
+ const missingMethodsCheck = interfaceMethodNames;
83
79
  /** assert that all {@link ONECore} interface methods are listed in {@link interfaceMethodNames} */
84
- const interfaceMethodsCheck = null;
80
+ const extraMethodsCheck = null;
@@ -103,6 +103,7 @@ export interface Config {
103
103
  */
104
104
  walletProvider: Record<string, string>;
105
105
  verifierProvider: Record<string, string>;
106
+ ecosystem: Record<string, string>;
106
107
  /** Deployment-wide settings that are not tied to a specific config entity. */
107
108
  globalSettings: GlobalSettings;
108
109
  }
@@ -117,6 +118,7 @@ export interface ContinueIssuanceResponse {
117
118
  requiresWalletInstanceAttestation: boolean;
118
119
  /** Protocol used for issuance. */
119
120
  protocol: string;
121
+ ecosystem?: string;
120
122
  }
121
123
  export interface CreateCertificateAuthorityRequest {
122
124
  name?: string;
@@ -145,6 +147,7 @@ export interface CreateCredentialSchemaRequest {
145
147
  transactionCode?: CredentialSchemaTransactionCodeRequest;
146
148
  translations?: CredentialSchemaTranslations;
147
149
  embeddedDisclosurePolicy?: DisclosurePolicyCreateRequest;
150
+ expiration?: number;
148
151
  }
149
152
  export interface CreateDidRequest {
150
153
  organisationId: string;
@@ -234,6 +237,7 @@ export interface CreateProofRequest {
234
237
  engagement?: string;
235
238
  /** Optional transaction data to request authorization for. */
236
239
  transactionData?: Array<ProofRequestTransactionData>;
240
+ ecosystem?: string;
237
241
  }
238
242
  export interface CreateProofSchemaInput {
239
243
  credentialSchemaId: string;
@@ -292,6 +296,7 @@ export interface CredentialDetail {
292
296
  issuanceDate?: string;
293
297
  lastModified: string;
294
298
  revocationDate?: string;
299
+ expiresAt?: string;
295
300
  /** Credential issuer metadata. */
296
301
  issuer?: IdentifierListItem;
297
302
  /** Credential holder metadata. */
@@ -335,6 +340,7 @@ export interface CredentialListItem {
335
340
  issuanceDate?: string;
336
341
  lastModified: string;
337
342
  revocationDate?: string;
343
+ expiresAt?: string;
338
344
  /** Credential issuer metadata. */
339
345
  issuer?: string;
340
346
  /** State representation of the credential in the system. */
@@ -357,6 +363,7 @@ export interface CredentialListItem {
357
363
  consumedAt?: string;
358
364
  type: CredentialType;
359
365
  parentId?: string;
366
+ redirectUri?: string;
360
367
  }
361
368
  export interface CredentialListQuery {
362
369
  /** Page number to retrieve (0-based indexing). */
@@ -483,6 +490,7 @@ export interface CredentialSchemaDetail {
483
490
  requiresWalletInstanceAttestation: boolean;
484
491
  transactionCode?: CredentialSchemaTransactionCode;
485
492
  translations: CredentialSchemaTranslations;
493
+ expiration?: number;
486
494
  }
487
495
  export interface CredentialSchemaDetailInfo {
488
496
  id: string;
@@ -553,6 +561,7 @@ export interface CredentialSchemaListItem {
553
561
  allowRevocation?: boolean;
554
562
  batchSize?: number;
555
563
  requiresWalletInstanceAttestation: boolean;
564
+ expiration?: number;
556
565
  }
557
566
  export interface CredentialSchemaListQuery {
558
567
  page: number;
@@ -768,6 +777,7 @@ export interface HandleInvitationRequest {
768
777
  * "myapp://example".
769
778
  */
770
779
  redirectUri?: string;
780
+ ecosystem?: string;
771
781
  }
772
782
  export interface HistoryErrorMetadata {
773
783
  errorCode: string;
@@ -878,73 +888,52 @@ export interface HolderAcceptCredentialRequest {
878
888
  /** User-provided transaction code. */
879
889
  txCode?: string;
880
890
  }
881
- export interface HolderActivateWalletUnitRequest {
891
+ export interface HolderActivateInstanceRequest {
882
892
  /** Key type for the authentication key generated during activation. */
883
893
  keyType: string;
884
894
  /** Identity token obtained from the identity provider after user authentication. */
885
895
  userIdToken?: string;
896
+ /** Access token obtained from the identity provider after user authentication. */
897
+ userAccessToken?: string;
898
+ }
899
+ export interface HolderActivateInstanceResponse {
900
+ /** IdentifierId with provisioned access certificate (if any) */
901
+ accessCertificateIdentifierId?: string;
902
+ }
903
+ export interface HolderInstance {
904
+ id: string;
905
+ createdDate: string;
906
+ lastModified: string;
907
+ role: InstanceRole;
908
+ providerInstanceId: string;
909
+ providerUrl: string;
910
+ providerType: InstanceProviderType;
911
+ providerName: string;
912
+ status: InstanceStatus;
913
+ authenticationKey?: KeyListItem;
914
+ userNonce?: string;
886
915
  }
887
916
  export interface HolderRefreshCredentialResponse {
888
917
  credentialIds: Array<string>;
889
918
  }
890
- export interface HolderRegisterWalletUnitRequest {
891
- /** The wallet unit's organization. */
919
+ export interface HolderRegisterInstanceRequest {
920
+ /** The instance's organization. */
892
921
  organisationId: string;
893
- /** Wallet Provider details. */
894
- walletProvider: WalletProvider;
922
+ /** Role of the instance being registered. */
923
+ role: InstanceRole;
924
+ /** Provider details. */
925
+ provider: InstanceProvider;
895
926
  /**
896
927
  * Choose a key type and the system will generate a key to use for
897
928
  * registration.
898
929
  */
899
930
  keyType: string;
900
- /**
901
- * When true, the wallet will only interact with entities that can be
902
- * verified as trusted. Requires the Wallet Provider to have the
903
- * `trustEcosystemsEnabled` feature flag enabled.
904
- */
905
- trustedRpRequired: boolean;
906
- }
907
- export interface HolderRegisterWalletUnitResponse {
908
- id: string;
909
- status: WalletUnitStatus;
910
- userNonce?: string;
911
931
  }
912
- export interface HolderWalletInstanceDetail {
932
+ export interface HolderRegisterInstanceResponse {
913
933
  id: string;
914
- trustedRpRequired: boolean;
915
- walletProviderUrl: string;
916
- walletProviderName: string;
917
- authenticationKeyType: string;
918
- }
919
- export interface HolderWalletUnit {
920
- id: string;
921
- createdDate: string;
922
- lastModified: string;
923
- providerWalletUnitId: string;
924
- walletProviderUrl: string;
925
- walletProviderType: WalletProviderType;
926
- walletProviderName: string;
927
- status: WalletUnitStatus;
928
- authenticationKey?: KeyListItem;
929
- trustedRpRequired: boolean;
934
+ status: InstanceStatus;
930
935
  userNonce?: string;
931
936
  }
932
- export interface HolderWalletUnitUpdateRequest {
933
- /**
934
- * The trust collections the wallet subscribes to, selected from those
935
- * made available by the Wallet Provider. The wallet will evaluate trust
936
- * against the lists contained in these collections. To keep subscribed
937
- * collections in sync with the Wallet Provider, run the
938
- * `TRUST_COLLECTION_SYNC` task.
939
- */
940
- trustCollections?: Array<string>;
941
- /**
942
- * When true, the wallet will only interact with entities that can be
943
- * verified as trusted. Requires the Wallet Provider to have the
944
- * `trustEcosystemsEnabled` feature flag enabled.
945
- */
946
- trustedRpRequired?: boolean;
947
- }
948
937
  export interface IdentifierDetail {
949
938
  id: string;
950
939
  createdDate: string;
@@ -1052,6 +1041,7 @@ export interface ImportCredentialSchemaRequestSchema {
1052
1041
  batchSize?: number;
1053
1042
  translations?: CredentialSchemaTranslations;
1054
1043
  embeddedDisclosurePolicy?: DisclosurePolicy;
1044
+ expiration?: number;
1055
1045
  }
1056
1046
  export interface ImportCredentialSchemaTransactionCode {
1057
1047
  type: TransactionCodeType;
@@ -1140,10 +1130,27 @@ export interface InitiateIssuanceRequest {
1140
1130
  scope?: Array<string>;
1141
1131
  /** OpenID4VCI authorization request parameter. */
1142
1132
  authorizationDetails?: Array<InitiateIssuanceAuthorizationDetail>;
1133
+ ecosystem?: string;
1143
1134
  }
1144
1135
  export interface InitiateIssuanceResponse {
1145
1136
  url: string;
1146
1137
  }
1138
+ export interface InstanceDetail {
1139
+ id: string;
1140
+ providerUrl: string;
1141
+ providerName: string;
1142
+ authenticationKeyType: string;
1143
+ }
1144
+ export interface InstanceProvider {
1145
+ /**
1146
+ * Full URL for the GET provider metadata endpoint, for example:
1147
+ * <domain>/ssi/wallet-provider/v1/<provider> or
1148
+ * <domain>/ssi/verifier-provider/v1/<provider>
1149
+ */
1150
+ url: string;
1151
+ /** Choose the provider implementation. */
1152
+ type: InstanceProviderType;
1153
+ }
1147
1154
  export interface KeyDetail {
1148
1155
  id: string;
1149
1156
  createdDate: string;
@@ -1194,6 +1201,24 @@ export interface OpenId4vciTxCode {
1194
1201
  */
1195
1202
  description?: string;
1196
1203
  }
1204
+ export interface OrganisationConfiguration {
1205
+ selectedEcosystems: Array<string>;
1206
+ /**
1207
+ * When true, the verifier will only validate presentations of
1208
+ * credentials issued by trusted issuers.
1209
+ */
1210
+ trustedIssuerRequired: boolean;
1211
+ /**
1212
+ * When true, the wallet only accepts presentation requests from
1213
+ * trusted relying parties.
1214
+ */
1215
+ trustedRpRequired: boolean;
1216
+ /**
1217
+ * When true, the issuer will only issue credentials requiring wallet
1218
+ * attestations to wallets of trusted wallet providers.
1219
+ */
1220
+ trustedWalletProviderRequired: boolean;
1221
+ }
1197
1222
  export interface OrganisationDetail {
1198
1223
  id: string;
1199
1224
  createdDate: string;
@@ -1204,17 +1229,20 @@ export interface OrganisationDetail {
1204
1229
  * configuration from, if any.
1205
1230
  */
1206
1231
  parentOrganisation?: string;
1232
+ /** Policy-level configuration for this organization. */
1233
+ configuration?: OrganisationConfiguration;
1207
1234
  walletProvider?: WalletProviderDetail;
1235
+ verifierProvider?: VerifierProviderDetail;
1208
1236
  /**
1209
1237
  * Wallet registration details for this organization's Business
1210
1238
  * Wallet.
1211
1239
  */
1212
- walletInstance?: HolderWalletInstanceDetail;
1240
+ walletInstance?: InstanceDetail;
1213
1241
  /**
1214
- * Wallet registration details for this organization's Business
1215
- * Wallet.
1242
+ * Verifier registration details for this organization's Business
1243
+ * Verifier.
1216
1244
  */
1217
- verifierInstance?: VerifierInstanceDetail;
1245
+ verifierInstance?: InstanceDetail;
1218
1246
  }
1219
1247
  export interface PeripheralDiscoveryData {
1220
1248
  deviceAddress: string;
@@ -1384,6 +1412,7 @@ export interface ProofListItem {
1384
1412
  retainUntilDate?: string;
1385
1413
  /** Country profile associated with this request. */
1386
1414
  profile?: string;
1415
+ redirectUri?: string;
1387
1416
  }
1388
1417
  export interface ProofListQuery {
1389
1418
  /** Page number to retrieve (0-based indexing). */
@@ -1542,6 +1571,7 @@ export interface ProposeProofRequest {
1542
1571
  organisationId: string;
1543
1572
  engagement: Array<string>;
1544
1573
  uiMessage?: string;
1574
+ ecosystem?: string;
1545
1575
  }
1546
1576
  export interface ProposeProofResponse {
1547
1577
  proofId: string;
@@ -1593,24 +1623,6 @@ export interface QesSignResponse {
1593
1623
  /** Base64-encoded signed document returned by the QES provider. */
1594
1624
  signedDocument: string;
1595
1625
  }
1596
- export interface RegisterVerifierInstanceRequest {
1597
- /** The verifier unit's organization. */
1598
- organisationId: string;
1599
- /** The Verifier Provider's reference URL. */
1600
- verifierProviderUrl: string;
1601
- /** Reference a configured `verifierProvider` instance. */
1602
- type: string;
1603
- /**
1604
- * When true, the verifier will only validate presentations of
1605
- * credentials issued by trusted issuers. Requires the Verifier
1606
- * Provider to have the `trustEcosystemsEnabled` feature flag
1607
- * enabled.
1608
- */
1609
- trustedIssuerRequired: boolean;
1610
- }
1611
- export interface RegisterVerifierInstanceResponse {
1612
- id: string;
1613
- }
1614
1626
  export interface ResolvedJsonLdContext {
1615
1627
  context: string;
1616
1628
  }
@@ -1636,12 +1648,11 @@ export interface ShareProofResponse {
1636
1648
  expiresAt?: string;
1637
1649
  }
1638
1650
  export interface TransactionDataDisplay {
1639
- title: string;
1651
+ title?: string;
1640
1652
  attributes: Array<TransactionDataDisplayAttribute>;
1641
1653
  }
1642
1654
  export interface TransactionDataDisplayAttribute {
1643
1655
  key: string;
1644
- /** The attribute value, encoded as a JSON string. */
1645
1656
  value: string;
1646
1657
  }
1647
1658
  /** Transaction data attached to a proof request. */
@@ -1654,7 +1665,7 @@ export interface TransactionDataResponse {
1654
1665
  data?: string;
1655
1666
  }
1656
1667
  export interface TrustCollectionInfo {
1657
- /** When true, the wallet is subscribed to this trust collection. */
1668
+ /** When true, the organization is subscribed to this trust collection. */
1658
1669
  selected: boolean;
1659
1670
  id: string;
1660
1671
  name: string;
@@ -1663,10 +1674,6 @@ export interface TrustCollectionInfo {
1663
1674
  description: Array<DisplayName>;
1664
1675
  defaultSelected?: boolean;
1665
1676
  }
1666
- export interface TrustCollections {
1667
- /** Trust collections available from the Wallet Provider. */
1668
- trustCollections: Array<TrustCollectionInfo>;
1669
- }
1670
1677
  export interface TrustInformation {
1671
1678
  receivedAt: string;
1672
1679
  name?: string;
@@ -1692,22 +1699,23 @@ export interface UnexportableEntities {
1692
1699
  totalDids: number;
1693
1700
  totalIdentifiers: number;
1694
1701
  }
1695
- export interface UpdateVerifierInstanceRequest {
1696
- /**
1697
- * The trust collections the verifier subscribes to, selected from
1698
- * those made available by the Verifier Provider. The verifier will
1699
- * evaluate trust against the lists contained in these collections.
1700
- * To keep subscribed collections in sync with the Verifier Provider,
1701
- * run the `TRUST_COLLECTION_SYNC` task.
1702
- */
1703
- trustCollections?: Array<string>;
1702
+ export interface UpsertOrganisationConfiguration {
1703
+ selectedEcosystems?: Array<string>;
1704
1704
  /**
1705
1705
  * When true, the verifier will only validate presentations of
1706
- * credentials issued by trusted issuers. Requires the Verifier
1707
- * Provider to have the `trustEcosystemsEnabled` feature flag
1708
- * enabled.
1706
+ * credentials issued by trusted issuers.
1709
1707
  */
1710
1708
  trustedIssuerRequired?: boolean;
1709
+ /**
1710
+ * When true, the wallet only accepts presentation requests from
1711
+ * trusted relying parties.
1712
+ */
1713
+ trustedRpRequired?: boolean;
1714
+ /**
1715
+ * When true, the issuer will only issue credentials requiring wallet
1716
+ * attestations to wallets of trusted wallet providers.
1717
+ */
1718
+ trustedWalletProviderRequired?: boolean;
1711
1719
  }
1712
1720
  export interface UpsertOrganisationRequest {
1713
1721
  /** Unique identifier of the organization to create or update. */
@@ -1718,21 +1726,32 @@ export interface UpsertOrganisationRequest {
1718
1726
  walletProvider?: string | null;
1719
1727
  /** Wallet Provider use only. */
1720
1728
  walletProviderIssuer?: string | null;
1729
+ /** Verifier Provider use only. */
1730
+ verifierProvider?: string | null;
1731
+ /** Verifier Provider use only. */
1732
+ verifierProviderIssuer?: string | null;
1733
+ /** Policy-level configuration for this organization. */
1734
+ configuration?: UpsertOrganisationConfiguration;
1735
+ /**
1736
+ * The trust collections this organization's wallet subscribes to,
1737
+ * selected from those made available by the Wallet Provider. Omit to
1738
+ * leave the current selection unchanged.
1739
+ */
1740
+ trustCollections?: Array<string>;
1721
1741
  /**
1722
1742
  * The parent organization this organization inherits policy-level
1723
1743
  * configuration from, if any.
1724
1744
  */
1725
1745
  parentOrganisation?: string | null;
1726
1746
  }
1727
- export interface VerifierInstanceDetail {
1728
- id: string;
1747
+ export interface VerifierProviderDetail {
1748
+ /** Verifier Provider configuration used by this organization. */
1749
+ providerName?: string;
1729
1750
  /**
1730
- * When true, the verifier will only validate presentations of
1731
- * credentials issued by trusted issuers. Requires the Verifier
1732
- * Provider to have the `trustEcosystemsEnabled` feature flag
1733
- * enabled.
1751
+ * Identifier used by this organization to authenticate to the
1752
+ * verifier provider.
1734
1753
  */
1735
- trustedIssuerRequired: boolean;
1754
+ issuer?: IdentifierListItem;
1736
1755
  }
1737
1756
  export interface Version {
1738
1757
  target: string;
@@ -1743,15 +1762,6 @@ export interface Version {
1743
1762
  rustVersion: string;
1744
1763
  pipelineId: string;
1745
1764
  }
1746
- export interface WalletProvider {
1747
- /**
1748
- * Full URL for the GET Wallet Provider metadata endpoint,
1749
- * for example: <domain>/ssi/wallet-provider/v1/<walletProvider>
1750
- */
1751
- url: string;
1752
- /** Choose the Wallet Provider implementation. */
1753
- type: WalletProviderType;
1754
- }
1755
1765
  export interface WalletProviderDetail {
1756
1766
  /**
1757
1767
  * Wallet Provider configuration used by this organization to provide
@@ -1887,7 +1897,7 @@ export type ClaimValue = {
1887
1897
  export declare enum ClientIdScheme {
1888
1898
  REDIRECT_URI = "REDIRECT_URI",
1889
1899
  VERIFIER_ATTESTATION = "VERIFIER_ATTESTATION",
1890
- DID = "DID",
1900
+ DECENTRALIZED_IDENTIFIER = "DECENTRALIZED_IDENTIFIER",
1891
1901
  X509_SAN_DNS = "X509_SAN_DNS"
1892
1902
  }
1893
1903
  export type ConnectionEvent = {
@@ -1945,7 +1955,8 @@ export declare enum CredentialState {
1945
1955
  REVOKED = "REVOKED",
1946
1956
  SUSPENDED = "SUSPENDED",
1947
1957
  ERROR = "ERROR",
1948
- INTERACTION_EXPIRED = "INTERACTION_EXPIRED"
1958
+ INTERACTION_EXPIRED = "INTERACTION_EXPIRED",
1959
+ EXPIRED = "EXPIRED"
1949
1960
  }
1950
1961
  export declare enum CredentialType {
1951
1962
  SINGLE = "SINGLE",
@@ -1979,6 +1990,7 @@ export type HandleInvitationResponse = {
1979
1990
  protocol: string;
1980
1991
  /** Whether a valid WIA is required to complete issuance. */
1981
1992
  requiresWalletInstanceAttestation: boolean;
1993
+ ecosystem?: string;
1982
1994
  } | {
1983
1995
  type_: "AUTHORIZATION_CODE_FLOW";
1984
1996
  /** For reference. */
@@ -1990,6 +2002,7 @@ export type HandleInvitationResponse = {
1990
2002
  authorizationCodeFlowUrl: string;
1991
2003
  /** Protocol used for issuance. */
1992
2004
  protocol: string;
2005
+ ecosystem?: string;
1993
2006
  } | {
1994
2007
  type_: "PROOF_REQUEST";
1995
2008
  /** For reference. */
@@ -1998,6 +2011,7 @@ export type HandleInvitationResponse = {
1998
2011
  proofId: string;
1999
2012
  /** Protocol used for issuance. */
2000
2013
  protocol: string;
2014
+ ecosystem?: string;
2001
2015
  };
2002
2016
  export declare enum HistoryAction {
2003
2017
  ACCEPTED = "ACCEPTED",
@@ -2061,7 +2075,6 @@ export declare enum HistoryEntityType {
2061
2075
  TRUST_LIST_PUBLICATION = "TRUST_LIST_PUBLICATION",
2062
2076
  TRUST_COLLECTION = "TRUST_COLLECTION",
2063
2077
  TRUST_LIST_SUBSCRIPTION = "TRUST_LIST_SUBSCRIPTION",
2064
- VERIFIER_INSTANCE = "VERIFIER_INSTANCE",
2065
2078
  QES_DOCUMENT = "QES_DOCUMENT"
2066
2079
  }
2067
2080
  export type HistoryMetadata = {
@@ -2107,6 +2120,20 @@ export declare enum IdentifierType {
2107
2120
  CERTIFICATE = "CERTIFICATE",
2108
2121
  CERTIFICATE_AUTHORITY = "CERTIFICATE_AUTHORITY"
2109
2122
  }
2123
+ export declare enum InstanceProviderType {
2124
+ PROCIVIS_ONE = "PROCIVIS_ONE"
2125
+ }
2126
+ export declare enum InstanceRole {
2127
+ WALLET = "WALLET",
2128
+ VERIFIER = "VERIFIER"
2129
+ }
2130
+ export declare enum InstanceStatus {
2131
+ PENDING = "PENDING",
2132
+ ACTIVE = "ACTIVE",
2133
+ REVOKED = "REVOKED",
2134
+ UNATTESTED = "UNATTESTED",
2135
+ ERROR = "ERROR"
2136
+ }
2110
2137
  export declare enum KeyRole {
2111
2138
  AUTHENTICATION = "AUTHENTICATION",
2112
2139
  ASSERTION_METHOD = "ASSERTION_METHOD",
@@ -2212,7 +2239,8 @@ export declare enum SortableCredentialColumn {
2212
2239
  CREATED_DATE = "CREATED_DATE",
2213
2240
  SCHEMA_NAME = "SCHEMA_NAME",
2214
2241
  ISSUER = "ISSUER",
2215
- STATE = "STATE"
2242
+ STATE = "STATE",
2243
+ EXPIRES_AT = "EXPIRES_AT"
2216
2244
  }
2217
2245
  export declare enum SortableCredentialSchemaColumn {
2218
2246
  NAME = "NAME",
@@ -2259,16 +2287,6 @@ export declare enum TrustResolutionResult {
2259
2287
  UNTRUSTED = "UNTRUSTED",
2260
2288
  UNKNOWN = "UNKNOWN"
2261
2289
  }
2262
- export declare enum WalletProviderType {
2263
- PROCIVIS_ONE = "PROCIVIS_ONE"
2264
- }
2265
- export declare enum WalletUnitStatus {
2266
- PENDING = "PENDING",
2267
- ACTIVE = "ACTIVE",
2268
- REVOKED = "REVOKED",
2269
- UNATTESTED = "UNATTESTED",
2270
- ERROR = "ERROR"
2271
- }
2272
2290
  export interface BleCentral {
2273
2291
  connect(peripheral: string): Promise<number>;
2274
2292
  disconnect(peripheral: string): Promise<void>;
@@ -2449,6 +2467,7 @@ export interface OneCore {
2449
2467
  getIdentifier(id: string): Promise<IdentifierDetail>;
2450
2468
  /** Returns details of an existing organization. */
2451
2469
  getOrganisation(id: string): Promise<OrganisationDetail>;
2470
+ getOrganisationTrustCollections(id: string): Promise<Array<TrustCollectionInfo>>;
2452
2471
  getPresentationDefinitionV2(proofId: string): Promise<PresentationDefinitionV2>;
2453
2472
  /** Returns detailed information about a proof request. */
2454
2473
  getProof(proofId: string): Promise<ProofDetail>;
@@ -2458,8 +2477,6 @@ export interface OneCore {
2458
2477
  * proof request.
2459
2478
  */
2460
2479
  getProofTrustInformation(proofId: string): Promise<TrustInformationDetail>;
2461
- /** Returns trust collections curated by the Verifier Provider. */
2462
- getVerifierInstanceTrustCollections(id: string): Promise<TrustCollections>;
2463
2480
  /**
2464
2481
  * For a wallet, handles the interaction once the wallet connects to a share
2465
2482
  * endpoint URL (for example, scans the QR code of an offered credential or
@@ -2472,8 +2489,10 @@ export interface OneCore {
2472
2489
  * you can specify an existing identifier.
2473
2490
  */
2474
2491
  holderAcceptCredential(request: HolderAcceptCredentialRequest): Promise<string>;
2475
- /** Activates the wallet instance with the Wallet Provider after user authentication. */
2476
- holderActivateWalletUnit(id: string, request: HolderActivateWalletUnitRequest): Promise<void>;
2492
+ /** Activates the instance with the provider after user authentication. */
2493
+ holderActivateInstance(id: string, request: HolderActivateInstanceRequest): Promise<HolderActivateInstanceResponse>;
2494
+ /** Returns instance registration details from the provider. */
2495
+ holderGetInstance(id: string): Promise<HolderInstance>;
2477
2496
  /**
2478
2497
  * For wallets; returns the details of a single transaction data entry of a
2479
2498
  * proof request, including human-readable display data and the raw
@@ -2481,14 +2500,15 @@ export interface OneCore {
2481
2500
  * obtained from `getPresentationDefinitionv2`.
2482
2501
  */
2483
2502
  holderGetTransactionData(proofId: string, transactionDataId: string): Promise<ProofTransactionData>;
2484
- /** Returns wallet registration details from the Wallet Provider. */
2485
- holderGetWalletUnit(id: string): Promise<HolderWalletUnit>;
2486
- /** Returns trust collections curated by the Wallet Provider. */
2487
- holderGetWalletUnitTrustCollections(id: string): Promise<TrustCollections>;
2503
+ /**
2504
+ * Check status of the instance with the provider. Will return an error
2505
+ * if the instance has been revoked.
2506
+ */
2507
+ holderInstanceStatus(id: string): Promise<void>;
2488
2508
  /** Receive a new credential batch */
2489
2509
  holderRefreshCredential(interactionId: string): Promise<HolderRefreshCredentialResponse>;
2490
- /** Registers the wallet unit with a Wallet Provider. */
2491
- holderRegisterWalletUnit(request: HolderRegisterWalletUnitRequest): Promise<HolderRegisterWalletUnitResponse>;
2510
+ /** Registers the instance with a Wallet or Verifier Provider. */
2511
+ holderRegisterInstance(request: HolderRegisterInstanceRequest): Promise<HolderRegisterInstanceResponse>;
2492
2512
  /** Rejects an offered credential. */
2493
2513
  holderRejectCredential(interactionId: string): Promise<void>;
2494
2514
  /** Rejects a proof request. */
@@ -2498,13 +2518,6 @@ export interface OneCore {
2498
2518
  * be used after `getPresentationDefinitionv2`.
2499
2519
  */
2500
2520
  holderSubmitProofV2(interactionId: string, submission: Record<string, Array<PresentationSubmitV2CredentialRequest>>): Promise<void>;
2501
- /**
2502
- * Check status of wallet unit with the Wallet Provider. Will return an error
2503
- * if the unit has been revoked.
2504
- */
2505
- holderWalletUnitStatus(id: string): Promise<void>;
2506
- /** Modifies wallet unit's settings. */
2507
- holderWalletUnitUpdate(id: string, request: HolderWalletUnitUpdateRequest): Promise<void>;
2508
2521
  /**
2509
2522
  * Imports a credential schema shared from another mobile verifier device
2510
2523
  * using the one-core.
@@ -2549,8 +2562,6 @@ export interface OneCore {
2549
2562
  * from `qesAuthorize` for a signed document.
2550
2563
  */
2551
2564
  qesSign(request: QesSignRequest): Promise<QesSignResponse>;
2552
- /** Registers the verifier unit with a Verifier Provider. */
2553
- registerVerifierInstance(request: RegisterVerifierInstanceRequest): Promise<RegisterVerifierInstanceResponse>;
2554
2565
  /**
2555
2566
  * Returns the JSON-LD context document for a given URI. This is a
2556
2567
  * [cached entity](https://docs.procivis.ch/configure/caching).
@@ -2585,8 +2596,6 @@ export interface OneCore {
2585
2596
  * Follow by calling either `finalizeImport` or `rollbackImport`.
2586
2597
  */
2587
2598
  unpackBackup(password: string, inputPath: string): Promise<Metadata>;
2588
- /** Modifies verifier unit's settings. */
2589
- updateVerifierInstance(id: string, request: UpdateVerifierInstanceRequest): Promise<void>;
2590
2599
  /**
2591
2600
  * Updates or deactivates an organization if it exists, otherwise
2592
2601
  * creates a new organization using the provided UUID and name.
@@ -64,7 +64,7 @@ export var ClientIdScheme;
64
64
  (function (ClientIdScheme) {
65
65
  ClientIdScheme["REDIRECT_URI"] = "REDIRECT_URI";
66
66
  ClientIdScheme["VERIFIER_ATTESTATION"] = "VERIFIER_ATTESTATION";
67
- ClientIdScheme["DID"] = "DID";
67
+ ClientIdScheme["DECENTRALIZED_IDENTIFIER"] = "DECENTRALIZED_IDENTIFIER";
68
68
  ClientIdScheme["X509_SAN_DNS"] = "X509_SAN_DNS";
69
69
  })(ClientIdScheme || (ClientIdScheme = {}));
70
70
  export var CreateSelfSignedCaRequestIssuerAlternativeNameType;
@@ -126,6 +126,7 @@ export var CredentialState;
126
126
  CredentialState["SUSPENDED"] = "SUSPENDED";
127
127
  CredentialState["ERROR"] = "ERROR";
128
128
  CredentialState["INTERACTION_EXPIRED"] = "INTERACTION_EXPIRED";
129
+ CredentialState["EXPIRED"] = "EXPIRED";
129
130
  })(CredentialState || (CredentialState = {}));
130
131
  export var CredentialType;
131
132
  (function (CredentialType) {
@@ -207,7 +208,6 @@ export var HistoryEntityType;
207
208
  HistoryEntityType["TRUST_LIST_PUBLICATION"] = "TRUST_LIST_PUBLICATION";
208
209
  HistoryEntityType["TRUST_COLLECTION"] = "TRUST_COLLECTION";
209
210
  HistoryEntityType["TRUST_LIST_SUBSCRIPTION"] = "TRUST_LIST_SUBSCRIPTION";
210
- HistoryEntityType["VERIFIER_INSTANCE"] = "VERIFIER_INSTANCE";
211
211
  HistoryEntityType["QES_DOCUMENT"] = "QES_DOCUMENT";
212
212
  })(HistoryEntityType || (HistoryEntityType = {}));
213
213
  export var HistorySearchType;
@@ -242,6 +242,23 @@ export var IdentifierType;
242
242
  IdentifierType["CERTIFICATE"] = "CERTIFICATE";
243
243
  IdentifierType["CERTIFICATE_AUTHORITY"] = "CERTIFICATE_AUTHORITY";
244
244
  })(IdentifierType || (IdentifierType = {}));
245
+ export var InstanceProviderType;
246
+ (function (InstanceProviderType) {
247
+ InstanceProviderType["PROCIVIS_ONE"] = "PROCIVIS_ONE";
248
+ })(InstanceProviderType || (InstanceProviderType = {}));
249
+ export var InstanceRole;
250
+ (function (InstanceRole) {
251
+ InstanceRole["WALLET"] = "WALLET";
252
+ InstanceRole["VERIFIER"] = "VERIFIER";
253
+ })(InstanceRole || (InstanceRole = {}));
254
+ export var InstanceStatus;
255
+ (function (InstanceStatus) {
256
+ InstanceStatus["PENDING"] = "PENDING";
257
+ InstanceStatus["ACTIVE"] = "ACTIVE";
258
+ InstanceStatus["REVOKED"] = "REVOKED";
259
+ InstanceStatus["UNATTESTED"] = "UNATTESTED";
260
+ InstanceStatus["ERROR"] = "ERROR";
261
+ })(InstanceStatus || (InstanceStatus = {}));
245
262
  export var KeyRole;
246
263
  (function (KeyRole) {
247
264
  KeyRole["AUTHENTICATION"] = "AUTHENTICATION";
@@ -303,6 +320,7 @@ export var SortableCredentialColumn;
303
320
  SortableCredentialColumn["SCHEMA_NAME"] = "SCHEMA_NAME";
304
321
  SortableCredentialColumn["ISSUER"] = "ISSUER";
305
322
  SortableCredentialColumn["STATE"] = "STATE";
323
+ SortableCredentialColumn["EXPIRES_AT"] = "EXPIRES_AT";
306
324
  })(SortableCredentialColumn || (SortableCredentialColumn = {}));
307
325
  export var SortableCredentialSchemaColumn;
308
326
  (function (SortableCredentialSchemaColumn) {
@@ -357,15 +375,3 @@ export var TrustResolutionResult;
357
375
  TrustResolutionResult["UNTRUSTED"] = "UNTRUSTED";
358
376
  TrustResolutionResult["UNKNOWN"] = "UNKNOWN";
359
377
  })(TrustResolutionResult || (TrustResolutionResult = {}));
360
- export var WalletProviderType;
361
- (function (WalletProviderType) {
362
- WalletProviderType["PROCIVIS_ONE"] = "PROCIVIS_ONE";
363
- })(WalletProviderType || (WalletProviderType = {}));
364
- export var WalletUnitStatus;
365
- (function (WalletUnitStatus) {
366
- WalletUnitStatus["PENDING"] = "PENDING";
367
- WalletUnitStatus["ACTIVE"] = "ACTIVE";
368
- WalletUnitStatus["REVOKED"] = "REVOKED";
369
- WalletUnitStatus["UNATTESTED"] = "UNATTESTED";
370
- WalletUnitStatus["ERROR"] = "ERROR";
371
- })(WalletUnitStatus || (WalletUnitStatus = {}));
@@ -39,6 +39,10 @@ RCT_EXTERN_METHOD(getOrganisation:(NSString *)organisationId
39
39
  resolver:(RCTPromiseResolveBlock)resolve
40
40
  rejecter:(RCTPromiseRejectBlock)reject)
41
41
 
42
+ RCT_EXTERN_METHOD(getOrganisationTrustCollections:(NSString *)organisationId
43
+ resolver:(RCTPromiseResolveBlock)resolve
44
+ rejecter:(RCTPromiseRejectBlock)reject)
45
+
42
46
  RCT_EXTERN_METHOD(generateKey:(NSDictionary *)keyRequest
43
47
  resolver:(RCTPromiseResolveBlock)resolve
44
48
  rejecter:(RCTPromiseRejectBlock)reject)
@@ -255,42 +259,20 @@ RCT_EXTERN_METHOD(resolveJsonldContext:(NSString *)url
255
259
  resolver:(RCTPromiseResolveBlock)resolve
256
260
  rejecter:(RCTPromiseRejectBlock)reject)
257
261
 
258
- RCT_EXTERN_METHOD(holderRegisterWalletUnit:(NSDictionary *)request
259
- resolver:(RCTPromiseResolveBlock)resolve
260
- rejecter:(RCTPromiseRejectBlock)reject)
261
-
262
- RCT_EXTERN_METHOD(holderActivateWalletUnit:(NSString *)unitId
263
- request:(NSDictionary *)request
264
- resolver:(RCTPromiseResolveBlock)resolve
265
- rejecter:(RCTPromiseRejectBlock)reject)
266
-
267
- RCT_EXTERN_METHOD(holderWalletUnitStatus:(NSString *)walletUnitId
262
+ RCT_EXTERN_METHOD(holderRegisterInstance:(NSDictionary *)request
268
263
  resolver:(RCTPromiseResolveBlock)resolve
269
264
  rejecter:(RCTPromiseRejectBlock)reject)
270
265
 
271
- RCT_EXTERN_METHOD(holderGetWalletUnit:(NSString *)walletUnitId
272
- resolver:(RCTPromiseResolveBlock)resolve
273
- rejecter:(RCTPromiseRejectBlock)reject)
274
-
275
- RCT_EXTERN_METHOD(holderWalletUnitUpdate:(NSString *)walletUnitId
266
+ RCT_EXTERN_METHOD(holderActivateInstance:(NSString *)instanceId
276
267
  request:(NSDictionary *)request
277
268
  resolver:(RCTPromiseResolveBlock)resolve
278
269
  rejecter:(RCTPromiseRejectBlock)reject)
279
270
 
280
- RCT_EXTERN_METHOD(holderGetWalletUnitTrustCollections:(NSString *)walletUnitId
281
- resolver:(RCTPromiseResolveBlock)resolve
282
- rejecter:(RCTPromiseRejectBlock)reject)
283
-
284
- RCT_EXTERN_METHOD(registerVerifierInstance:(NSDictionary *)request
285
- resolver:(RCTPromiseResolveBlock)resolve
286
- rejecter:(RCTPromiseRejectBlock)reject)
287
-
288
- RCT_EXTERN_METHOD(updateVerifierInstance:(NSString *)verifierInstanceId
289
- request:(NSDictionary *)request
271
+ RCT_EXTERN_METHOD(holderInstanceStatus:(NSString *)instanceId
290
272
  resolver:(RCTPromiseResolveBlock)resolve
291
273
  rejecter:(RCTPromiseRejectBlock)reject)
292
274
 
293
- RCT_EXTERN_METHOD(getVerifierInstanceTrustCollections:(NSString *)verifierInstanceId
275
+ RCT_EXTERN_METHOD(holderGetInstance:(NSString *)instanceId
294
276
  resolver:(RCTPromiseResolveBlock)resolve
295
277
  rejecter:(RCTPromiseRejectBlock)reject)
296
278
 
@@ -788,113 +788,63 @@ class ProcivisOneCoreModule: RCTEventEmitter {
788
788
  }
789
789
  }
790
790
 
791
- @objc(holderRegisterWalletUnit:resolver:rejecter:)
792
- func holderRegisterWalletUnit(
791
+ @objc(holderRegisterInstance:resolver:rejecter:)
792
+ func holderRegisterInstance(
793
793
  request: NSDictionary,
794
794
  resolve: @escaping RCTPromiseResolveBlock,
795
795
  reject: @escaping RCTPromiseRejectBlock
796
796
  ) {
797
797
  asyncCall(resolve, reject) {
798
- let result = try await self.getCore().holderRegisterWalletUnit(request: try deserialize(request))
798
+ let result = try await self.getCore().holderRegisterInstance(request: try deserialize(request))
799
799
  return try serializeAny(result)
800
800
  }
801
801
  }
802
802
 
803
- @objc(holderActivateWalletUnit:request:resolver:rejecter:)
804
- func holderActivateWalletUnit(
803
+ @objc(holderActivateInstance:request:resolver:rejecter:)
804
+ func holderActivateInstance(
805
805
  id: String,
806
806
  request: NSDictionary,
807
807
  resolve: @escaping RCTPromiseResolveBlock,
808
808
  reject: @escaping RCTPromiseRejectBlock
809
809
  ) {
810
810
  asyncCall(resolve, reject) {
811
- try await self.getCore().holderActivateWalletUnit(id: id, request: try deserialize(request))
812
- return nil as NSDictionary?
813
- }
814
- }
815
-
816
- @objc(holderWalletUnitStatus:resolver:rejecter:)
817
- func holderWalletUnitStatus(
818
- walletUnitId: String,
819
- resolve: @escaping RCTPromiseResolveBlock,
820
- reject: @escaping RCTPromiseRejectBlock
821
- ) {
822
- asyncCall(resolve, reject) {
823
- try await self.getCore().holderWalletUnitStatus(id: walletUnitId)
824
- return nil as NSDictionary?
825
- }
826
- }
827
-
828
- @objc(holderWalletUnitUpdate:request:resolver:rejecter:)
829
- func holderWalletUnitUpdate(
830
- walletUnitId: String,
831
- request: NSDictionary,
832
- resolve: @escaping RCTPromiseResolveBlock,
833
- reject: @escaping RCTPromiseRejectBlock
834
- ) {
835
- asyncCall(resolve, reject) {
836
- try await self.getCore().holderWalletUnitUpdate(id: walletUnitId, request: try deserialize(request))
837
- return nil as NSDictionary?
838
- }
839
- }
840
-
841
- @objc(holderGetWalletUnit:resolver:rejecter:)
842
- func holderGetWalletUnit(
843
- walletUnitId: String,
844
- resolve: @escaping RCTPromiseResolveBlock,
845
- reject: @escaping RCTPromiseRejectBlock
846
- ) {
847
- asyncCall(resolve, reject) {
848
- let result = try await self.getCore().holderGetWalletUnit(id: walletUnitId)
811
+ let result = try await self.getCore().holderActivateInstance(id: id, request: try deserialize(request))
849
812
  return try serializeAny(result)
850
813
  }
851
814
  }
852
815
 
853
- @objc(holderGetWalletUnitTrustCollections:resolver:rejecter:)
854
- func holderGetWalletUnitTrustCollections(
855
- walletUnitId: String,
816
+ @objc(holderInstanceStatus:resolver:rejecter:)
817
+ func holderInstanceStatus(
818
+ instanceId: String,
856
819
  resolve: @escaping RCTPromiseResolveBlock,
857
820
  reject: @escaping RCTPromiseRejectBlock
858
821
  ) {
859
822
  asyncCall(resolve, reject) {
860
- let result = try await self.getCore().holderGetWalletUnitTrustCollections(id: walletUnitId)
861
- return try serializeAny(result)
823
+ try await self.getCore().holderInstanceStatus(id: instanceId)
824
+ return nil as NSDictionary?
862
825
  }
863
826
  }
864
827
 
865
- @objc(registerVerifierInstance:resolver:rejecter:)
866
- func registerVerifierInstance(
867
- request: NSDictionary,
828
+ @objc(holderGetInstance:resolver:rejecter:)
829
+ func holderGetInstance(
830
+ instanceId: String,
868
831
  resolve: @escaping RCTPromiseResolveBlock,
869
832
  reject: @escaping RCTPromiseRejectBlock
870
833
  ) {
871
834
  asyncCall(resolve, reject) {
872
- let result = try await self.getCore().registerVerifierInstance(request: try deserialize(request))
835
+ let result = try await self.getCore().holderGetInstance(id: instanceId)
873
836
  return try serializeAny(result)
874
837
  }
875
838
  }
876
839
 
877
- @objc(updateVerifierInstance:request:resolver:rejecter:)
878
- func updateVerifierInstance(
879
- verifierInstanceId: String,
880
- request: NSDictionary,
881
- resolve: @escaping RCTPromiseResolveBlock,
882
- reject: @escaping RCTPromiseRejectBlock
883
- ) {
884
- asyncCall(resolve, reject) {
885
- try await self.getCore().updateVerifierInstance(id: verifierInstanceId, request: try deserialize(request))
886
- return nil as NSDictionary?
887
- }
888
- }
889
-
890
- @objc(getVerifierInstanceTrustCollections:resolver:rejecter:)
891
- func getVerifierInstanceTrustCollections(
892
- verifierInstanceId: String,
840
+ @objc(getOrganisationTrustCollections:resolver:rejecter:)
841
+ func getOrganisationTrustCollections(
842
+ organisationId: String,
893
843
  resolve: @escaping RCTPromiseResolveBlock,
894
844
  reject: @escaping RCTPromiseRejectBlock
895
845
  ) {
896
846
  asyncCall(resolve, reject) {
897
- let result = try await self.getCore().getVerifierInstanceTrustCollections(id: verifierInstanceId)
847
+ let result = try await self.getCore().getOrganisationTrustCollections(id: organisationId)
898
848
  return try serializeAny(result)
899
849
  }
900
850
  }
@@ -124,7 +124,7 @@ private func serialize(proofRequestClaimValue: ProofClaimValue) throws -> NSDict
124
124
 
125
125
  private func serialize(invitationResponse: HandleInvitationResponse) throws -> NSDictionary {
126
126
  switch (invitationResponse) {
127
- case let .credentialIssuance(interactionId, keyStorageSecurityLevels, keyAlgorithms, txCode, `protocol`, requiresWalletInstanceAttestation):
127
+ case let .credentialIssuance(interactionId, keyStorageSecurityLevels, keyAlgorithms, txCode, `protocol`, requiresWalletInstanceAttestation, ecosystem):
128
128
  var result: [String: Any] = [
129
129
  "type_": "CREDENTIAL_ISSUANCE",
130
130
  "interactionId": interactionId,
@@ -140,23 +140,34 @@ private func serialize(invitationResponse: HandleInvitationResponse) throws -> N
140
140
  if let txCode = txCode {
141
141
  result["txCode"] = try serializeAny(txCode)
142
142
  }
143
+ if let ecosystem = ecosystem {
144
+ result["ecosystem"] = ecosystem
145
+ }
143
146
  return result as NSDictionary;
144
147
 
145
- case let .proofRequest(interactionId, proofId, `protocol`):
146
- return [
148
+ case let .proofRequest(interactionId, proofId, `protocol`, ecosystem):
149
+ var result: [String: Any] = [
147
150
  "type_": "PROOF_REQUEST",
148
151
  "interactionId": interactionId,
149
152
  "proofId": proofId,
150
153
  "protocol": `protocol`
151
154
  ];
155
+ if let ecosystem = ecosystem {
156
+ result["ecosystem"] = ecosystem
157
+ }
158
+ return result as NSDictionary;
152
159
 
153
- case let .authorizationCodeFlow(interactionId, authorizationCodeFlowUrl, `protocol`):
154
- return [
160
+ case let .authorizationCodeFlow(interactionId, authorizationCodeFlowUrl, `protocol`, ecosystem):
161
+ var result: [String: Any] = [
155
162
  "type_": "AUTHORIZATION_CODE_FLOW",
156
163
  "interactionId": interactionId,
157
164
  "authorizationCodeFlowUrl": authorizationCodeFlowUrl,
158
165
  "protocol": `protocol`
159
166
  ];
167
+ if let ecosystem = ecosystem {
168
+ result["ecosystem"] = ecosystem
169
+ }
170
+ return result as NSDictionary;
160
171
  }
161
172
  }
162
173
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procivis/react-native-one-core",
3
- "version": "1.115964.0",
3
+ "version": "1.120826.0",
4
4
  "author": "Procivis AG (https://procivis.ch)",
5
5
  "license": "Apache-2.0",
6
6
  "description": "ONE core bindings for React Native",
@@ -37,7 +37,7 @@
37
37
  "babel-jest": "^29.5.0",
38
38
  "husky": "^7.0.4",
39
39
  "jest": "^29.5.0",
40
- "react-native": "0.72.17",
40
+ "react-native": "0.83.0",
41
41
  "typedoc": "^0.28.6",
42
42
  "typescript": "^5.1.6"
43
43
  },