@credo-ts/anoncreds 0.6.0-pr-2539-20251127092008 → 0.6.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/build/AnonCredsApi.d.mts +5 -5
- package/build/AnonCredsApi.d.mts.map +1 -1
- package/build/AnonCredsApi.mjs +17 -97
- package/build/AnonCredsApi.mjs.map +1 -1
- package/build/_virtual/{_@oxc-project_runtime@0.97.0 → _@oxc-project_runtime@0.99.0}/helpers/decorate.mjs +1 -1
- package/build/_virtual/{_@oxc-project_runtime@0.97.0 → _@oxc-project_runtime@0.99.0}/helpers/decorateMetadata.mjs +1 -1
- package/build/_virtual/{_@oxc-project_runtime@0.97.0 → _@oxc-project_runtime@0.99.0}/helpers/decorateParam.mjs +1 -1
- package/build/anoncreds-rs/AnonCredsDataIntegrityService.mjs +1 -1
- package/build/anoncreds-rs/AnonCredsRsHolderService.mjs +1 -1
- package/build/anoncreds-rs/AnonCredsRsIssuerService.mjs +1 -1
- package/build/anoncreds-rs/AnonCredsRsVerifierService.mjs +1 -1
- package/build/formats/DataIntegrityDidCommCredentialFormatService.mjs +1 -1
- package/build/formats/DataIntegrityDidCommCredentialFormatService.mjs.map +1 -1
- package/build/models/AnonCredsCredentialProposal.mjs +2 -2
- package/build/models/AnonCredsProofRequest.mjs +2 -2
- package/build/models/AnonCredsRequestedAttribute.mjs +2 -2
- package/build/models/AnonCredsRequestedPredicate.mjs +2 -2
- package/build/models/AnonCredsRestriction.mjs +2 -2
- package/build/models/AnonCredsRestrictionWrapper.mjs +2 -2
- package/build/models/AnonCredsRevocationInterval.mjs +2 -2
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1AckMessage.mjs +2 -2
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1Preview.mjs +2 -2
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1ProblemReportMessage.mjs +2 -2
- package/build/protocols/credentials/v1/messages/DidCommIssueCredentialV1Message.mjs +2 -2
- package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.mjs +2 -2
- package/build/protocols/credentials/v1/messages/DidCommProposeCredentialV1Message.mjs +2 -2
- package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.mjs +2 -2
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1AckMessage.mjs +2 -2
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1Message.mjs +2 -2
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1ProblemReportMessage.mjs +2 -2
- package/build/protocols/proofs/v1/messages/DidCommProposePresentationV1Message.mjs +2 -2
- package/build/protocols/proofs/v1/messages/DidCommRequestPresentationV1Message.mjs +2 -2
- package/build/protocols/proofs/v1/models/DidCommPresentationV1Preview.mjs +2 -2
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.mjs +3 -3
- package/build/repository/AnonCredsCredentialDefinitionRepository.mjs +3 -3
- package/build/repository/AnonCredsCredentialRepository.mjs +3 -3
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.mjs +3 -3
- package/build/repository/AnonCredsLinkSecretRepository.mjs +3 -3
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.mjs +3 -3
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.mjs +3 -3
- package/build/repository/AnonCredsSchemaRepository.mjs +3 -3
- package/build/services/registry/AnonCredsRegistry.d.mts +14 -2
- package/build/services/registry/AnonCredsRegistry.d.mts.map +1 -1
- package/build/services/registry/AnonCredsRegistryService.d.mts +11 -1
- package/build/services/registry/AnonCredsRegistryService.d.mts.map +1 -1
- package/build/services/registry/AnonCredsRegistryService.mjs +209 -2
- package/build/services/registry/AnonCredsRegistryService.mjs.map +1 -1
- package/build/services/registry/base.d.mts +43 -1
- package/build/services/registry/base.d.mts.map +1 -1
- package/package.json +5 -5
package/build/AnonCredsApi.d.mts
CHANGED
|
@@ -5,7 +5,7 @@ import { AnonCredsCreateLinkSecretOptions, AnonCredsRegisterCredentialDefinition
|
|
|
5
5
|
import { GetCredentialsOptions } from "./services/AnonCredsHolderServiceOptions.mjs";
|
|
6
6
|
import { AnonCredsHolderService } from "./services/AnonCredsHolderService.mjs";
|
|
7
7
|
import { AnonCredsIssuerService } from "./services/AnonCredsIssuerService.mjs";
|
|
8
|
-
import { Extensible } from "./services/registry/base.mjs";
|
|
8
|
+
import { AnonCredsResolutionOptions, Extensible } from "./services/registry/base.mjs";
|
|
9
9
|
import { GetCredentialDefinitionReturn, RegisterCredentialDefinitionReturn } from "./services/registry/CredentialDefinitionOptions.mjs";
|
|
10
10
|
import { GetRevocationRegistryDefinitionReturn, RegisterRevocationRegistryDefinitionReturn } from "./services/registry/RevocationRegistryDefinitionOptions.mjs";
|
|
11
11
|
import { GetRevocationStatusListReturn, RegisterRevocationStatusListReturn } from "./services/registry/RevocationStatusListOptions.mjs";
|
|
@@ -54,27 +54,27 @@ declare class AnonCredsApi {
|
|
|
54
54
|
* Retrieve a {@link AnonCredsSchema} from the registry associated
|
|
55
55
|
* with the {@link schemaId}
|
|
56
56
|
*/
|
|
57
|
-
getSchema(schemaId: string): Promise<GetSchemaReturn>;
|
|
57
|
+
getSchema(schemaId: string, options?: AnonCredsResolutionOptions): Promise<GetSchemaReturn>;
|
|
58
58
|
registerSchema<T extends Extensible = Extensible>(options: AnonCredsRegisterSchema<T>): Promise<RegisterSchemaReturn>;
|
|
59
59
|
getCreatedSchemas(query: SimpleQuery<AnonCredsSchemaRecord>): Promise<AnonCredsSchemaRecord[]>;
|
|
60
60
|
/**
|
|
61
61
|
* Retrieve a {@link GetCredentialDefinitionReturn} from the registry associated
|
|
62
62
|
* with the {@link credentialDefinitionId}
|
|
63
63
|
*/
|
|
64
|
-
getCredentialDefinition(credentialDefinitionId: string): Promise<GetCredentialDefinitionReturn>;
|
|
64
|
+
getCredentialDefinition(credentialDefinitionId: string, options?: AnonCredsResolutionOptions): Promise<GetCredentialDefinitionReturn>;
|
|
65
65
|
registerCredentialDefinition<T extends Extensible>(options: AnonCredsRegisterCredentialDefinition<T>): Promise<RegisterCredentialDefinitionReturn>;
|
|
66
66
|
getCreatedCredentialDefinitions(query: SimpleQuery<AnonCredsCredentialDefinitionRecord>): Promise<AnonCredsCredentialDefinitionRecord[]>;
|
|
67
67
|
/**
|
|
68
68
|
* Retrieve a {@link AnonCredsRevocationRegistryDefinition} from the registry associated
|
|
69
69
|
* with the {@link revocationRegistryDefinitionId}
|
|
70
70
|
*/
|
|
71
|
-
getRevocationRegistryDefinition(revocationRegistryDefinitionId: string): Promise<GetRevocationRegistryDefinitionReturn>;
|
|
71
|
+
getRevocationRegistryDefinition(revocationRegistryDefinitionId: string, options?: AnonCredsResolutionOptions): Promise<GetRevocationRegistryDefinitionReturn>;
|
|
72
72
|
registerRevocationRegistryDefinition<T extends Extensible = Extensible>(options: AnonCredsRegisterRevocationRegistryDefinition<T>): Promise<RegisterRevocationRegistryDefinitionReturn>;
|
|
73
73
|
/**
|
|
74
74
|
* Retrieve the {@link AnonCredsRevocationStatusList} for the given {@link timestamp} from the registry associated
|
|
75
75
|
* with the {@link revocationRegistryDefinitionId}
|
|
76
76
|
*/
|
|
77
|
-
getRevocationStatusList(revocationRegistryDefinitionId: string, timestamp: number): Promise<GetRevocationStatusListReturn>;
|
|
77
|
+
getRevocationStatusList(revocationRegistryDefinitionId: string, timestamp: number, options?: Omit<AnonCredsResolutionOptions, 'useLocalRecord'>): Promise<GetRevocationStatusListReturn>;
|
|
78
78
|
registerRevocationStatusList<T extends Extensible = Extensible>(options: AnonCredsRegisterRevocationStatusList<T>): Promise<RegisterRevocationStatusListReturn>;
|
|
79
79
|
updateRevocationStatusList<T extends Extensible = Extensible>(options: AnonCredsUpdateRevocationStatusList<T>): Promise<RegisterRevocationStatusListReturn>;
|
|
80
80
|
getCredential(id: string): Promise<AnonCredsCredentialInfo>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnonCredsApi.d.mts","names":[],"sources":["../src/AnonCredsApi.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqDa,YAAA;UACI;;;;;;;;;;;;4BAeC,wCACY,kCAClB,+CACsD,gDACA,mDACnC,4EACsB,yGACO,iGACf,yFACO,wFACR,uEACT;EA3BtB;;;;;EAmBqD,gBAAA,CAAA,OAAA,CAAA,EA6BxB,gCA7BwB,CAAA,EA6BW,OA7BX,CAAA,MAAA,CAAA;EACA;;;EAGN,gBAAA,CAAA,CAAA,EA0CzB,OA1CyB,CAAA,MAAA,EAAA,CAAA;EACf;;;;EAwBH,SAAA,CAAA,QAAA,EAAA,MAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"AnonCredsApi.d.mts","names":[],"sources":["../src/AnonCredsApi.ts"],"sourcesContent":[],"mappings":"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"}
|
package/build/AnonCredsApi.mjs
CHANGED
|
@@ -2,9 +2,9 @@ import { AnonCredsModuleConfig } from "./AnonCredsModuleConfig.mjs";
|
|
|
2
2
|
import { AnonCredsStoreRecordError } from "./error/AnonCredsStoreRecordError.mjs";
|
|
3
3
|
import "./error/index.mjs";
|
|
4
4
|
import { AnonCredsCredentialDefinitionPrivateRecord } from "./repository/AnonCredsCredentialDefinitionPrivateRecord.mjs";
|
|
5
|
-
import { __decorateMetadata } from "./_virtual/_@oxc-project_runtime@0.
|
|
6
|
-
import { __decorateParam } from "./_virtual/_@oxc-project_runtime@0.
|
|
7
|
-
import { __decorate } from "./_virtual/_@oxc-project_runtime@0.
|
|
5
|
+
import { __decorateMetadata } from "./_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
6
|
+
import { __decorateParam } from "./_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs";
|
|
7
|
+
import { __decorate } from "./_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
8
8
|
import { AnonCredsCredentialDefinitionPrivateRepository } from "./repository/AnonCredsCredentialDefinitionPrivateRepository.mjs";
|
|
9
9
|
import { AnonCredsCredentialDefinitionRecord } from "./repository/AnonCredsCredentialDefinitionRecord.mjs";
|
|
10
10
|
import { AnonCredsCredentialDefinitionRepository } from "./repository/AnonCredsCredentialDefinitionRepository.mjs";
|
|
@@ -70,27 +70,8 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
70
70
|
* Retrieve a {@link AnonCredsSchema} from the registry associated
|
|
71
71
|
* with the {@link schemaId}
|
|
72
72
|
*/
|
|
73
|
-
async getSchema(schemaId) {
|
|
74
|
-
|
|
75
|
-
resolutionMetadata: {
|
|
76
|
-
error: "error",
|
|
77
|
-
message: `Unable to resolve schema ${schemaId}`
|
|
78
|
-
},
|
|
79
|
-
schemaId,
|
|
80
|
-
schemaMetadata: {}
|
|
81
|
-
};
|
|
82
|
-
const registry = this.findRegistryForIdentifier(schemaId);
|
|
83
|
-
if (!registry) {
|
|
84
|
-
failedReturnBase.resolutionMetadata.error = "unsupportedAnonCredsMethod";
|
|
85
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve schema ${schemaId}: No registry found for identifier ${schemaId}`;
|
|
86
|
-
return failedReturnBase;
|
|
87
|
-
}
|
|
88
|
-
try {
|
|
89
|
-
return await registry.getSchema(this.agentContext, schemaId);
|
|
90
|
-
} catch (error) {
|
|
91
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve schema ${schemaId}: ${error.message}`;
|
|
92
|
-
return failedReturnBase;
|
|
93
|
-
}
|
|
73
|
+
async getSchema(schemaId, options = {}) {
|
|
74
|
+
return this.anonCredsRegistryService.getSchema(this.agentContext, schemaId, options);
|
|
94
75
|
}
|
|
95
76
|
async registerSchema(options) {
|
|
96
77
|
const failedReturnBase = {
|
|
@@ -127,27 +108,8 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
127
108
|
* Retrieve a {@link GetCredentialDefinitionReturn} from the registry associated
|
|
128
109
|
* with the {@link credentialDefinitionId}
|
|
129
110
|
*/
|
|
130
|
-
async getCredentialDefinition(credentialDefinitionId) {
|
|
131
|
-
|
|
132
|
-
resolutionMetadata: {
|
|
133
|
-
error: "error",
|
|
134
|
-
message: `Unable to resolve credential definition ${credentialDefinitionId}`
|
|
135
|
-
},
|
|
136
|
-
credentialDefinitionId,
|
|
137
|
-
credentialDefinitionMetadata: {}
|
|
138
|
-
};
|
|
139
|
-
const registry = this.findRegistryForIdentifier(credentialDefinitionId);
|
|
140
|
-
if (!registry) {
|
|
141
|
-
failedReturnBase.resolutionMetadata.error = "unsupportedAnonCredsMethod";
|
|
142
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve credential definition ${credentialDefinitionId}: No registry found for identifier ${credentialDefinitionId}`;
|
|
143
|
-
return failedReturnBase;
|
|
144
|
-
}
|
|
145
|
-
try {
|
|
146
|
-
return await registry.getCredentialDefinition(this.agentContext, credentialDefinitionId);
|
|
147
|
-
} catch (error) {
|
|
148
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve credential definition ${credentialDefinitionId}: ${error.message}`;
|
|
149
|
-
return failedReturnBase;
|
|
150
|
-
}
|
|
111
|
+
async getCredentialDefinition(credentialDefinitionId, options = {}) {
|
|
112
|
+
return this.anonCredsRegistryService.getCredentialDefinition(this.agentContext, credentialDefinitionId, options);
|
|
151
113
|
}
|
|
152
114
|
async registerCredentialDefinition(options) {
|
|
153
115
|
const failedReturnBase = {
|
|
@@ -169,12 +131,7 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
169
131
|
try {
|
|
170
132
|
if (isFullCredentialDefinitionInput(options.credentialDefinition)) credentialDefinition = options.credentialDefinition;
|
|
171
133
|
else {
|
|
172
|
-
const
|
|
173
|
-
if (!schemaRegistry) {
|
|
174
|
-
failedReturnBase.credentialDefinitionState.reason = `Unable to register credential definition. No registry found for schemaId ${options.credentialDefinition.schemaId}`;
|
|
175
|
-
return failedReturnBase;
|
|
176
|
-
}
|
|
177
|
-
const schemaResult = await schemaRegistry.getSchema(this.agentContext, options.credentialDefinition.schemaId);
|
|
134
|
+
const schemaResult = await this.getSchema(options.credentialDefinition.schemaId);
|
|
178
135
|
if (!schemaResult.schema) {
|
|
179
136
|
failedReturnBase.credentialDefinitionState.reason = `error resolving schema with id ${options.credentialDefinition.schemaId}: ${schemaResult.resolutionMetadata.error} ${schemaResult.resolutionMetadata.message}`;
|
|
180
137
|
return failedReturnBase;
|
|
@@ -185,7 +142,7 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
185
142
|
tag: options.credentialDefinition.tag,
|
|
186
143
|
supportRevocation: options.options.supportRevocation,
|
|
187
144
|
schema: schemaResult.schema
|
|
188
|
-
}
|
|
145
|
+
});
|
|
189
146
|
credentialDefinition = createCredentialDefinitionResult.credentialDefinition;
|
|
190
147
|
credentialDefinitionPrivate = createCredentialDefinitionResult.credentialDefinitionPrivate;
|
|
191
148
|
keyCorrectnessProof = createCredentialDefinitionResult.keyCorrectnessProof;
|
|
@@ -213,27 +170,8 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
213
170
|
* Retrieve a {@link AnonCredsRevocationRegistryDefinition} from the registry associated
|
|
214
171
|
* with the {@link revocationRegistryDefinitionId}
|
|
215
172
|
*/
|
|
216
|
-
async getRevocationRegistryDefinition(revocationRegistryDefinitionId) {
|
|
217
|
-
|
|
218
|
-
resolutionMetadata: {
|
|
219
|
-
error: "error",
|
|
220
|
-
message: `Unable to resolve revocation registry ${revocationRegistryDefinitionId}`
|
|
221
|
-
},
|
|
222
|
-
revocationRegistryDefinitionId,
|
|
223
|
-
revocationRegistryDefinitionMetadata: {}
|
|
224
|
-
};
|
|
225
|
-
const registry = this.findRegistryForIdentifier(revocationRegistryDefinitionId);
|
|
226
|
-
if (!registry) {
|
|
227
|
-
failedReturnBase.resolutionMetadata.error = "unsupportedAnonCredsMethod";
|
|
228
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation registry ${revocationRegistryDefinitionId}: No registry found for identifier ${revocationRegistryDefinitionId}`;
|
|
229
|
-
return failedReturnBase;
|
|
230
|
-
}
|
|
231
|
-
try {
|
|
232
|
-
return await registry.getRevocationRegistryDefinition(this.agentContext, revocationRegistryDefinitionId);
|
|
233
|
-
} catch (error) {
|
|
234
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation registry ${revocationRegistryDefinitionId}: ${error.message}`;
|
|
235
|
-
return failedReturnBase;
|
|
236
|
-
}
|
|
173
|
+
async getRevocationRegistryDefinition(revocationRegistryDefinitionId, options = {}) {
|
|
174
|
+
return this.anonCredsRegistryService.getRevocationRegistryDefinition(this.agentContext, revocationRegistryDefinitionId, options);
|
|
237
175
|
}
|
|
238
176
|
async registerRevocationRegistryDefinition(options) {
|
|
239
177
|
const { issuerId, tag, credentialDefinitionId, maximumCredentialNumber } = options.revocationRegistryDefinition;
|
|
@@ -252,7 +190,7 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
252
190
|
failedReturnBase.revocationRegistryDefinitionState.reason = `Unable to register revocation registry definition. No registry found for issuerId ${issuerId}`;
|
|
253
191
|
return failedReturnBase;
|
|
254
192
|
}
|
|
255
|
-
const { credentialDefinition } = await
|
|
193
|
+
const { credentialDefinition } = await this.getCredentialDefinition(credentialDefinitionId);
|
|
256
194
|
if (!credentialDefinition) {
|
|
257
195
|
failedReturnBase.revocationRegistryDefinitionState.reason = `Unable to register revocation registry definition. No credential definition found for id ${credentialDefinitionId}`;
|
|
258
196
|
return failedReturnBase;
|
|
@@ -294,26 +232,8 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
294
232
|
* Retrieve the {@link AnonCredsRevocationStatusList} for the given {@link timestamp} from the registry associated
|
|
295
233
|
* with the {@link revocationRegistryDefinitionId}
|
|
296
234
|
*/
|
|
297
|
-
async getRevocationStatusList(revocationRegistryDefinitionId, timestamp) {
|
|
298
|
-
|
|
299
|
-
resolutionMetadata: {
|
|
300
|
-
error: "error",
|
|
301
|
-
message: `Unable to resolve revocation status list for revocation registry ${revocationRegistryDefinitionId}`
|
|
302
|
-
},
|
|
303
|
-
revocationStatusListMetadata: {}
|
|
304
|
-
};
|
|
305
|
-
const registry = this.findRegistryForIdentifier(revocationRegistryDefinitionId);
|
|
306
|
-
if (!registry) {
|
|
307
|
-
failedReturnBase.resolutionMetadata.error = "unsupportedAnonCredsMethod";
|
|
308
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation status list for revocation registry ${revocationRegistryDefinitionId}: No registry found for identifier ${revocationRegistryDefinitionId}`;
|
|
309
|
-
return failedReturnBase;
|
|
310
|
-
}
|
|
311
|
-
try {
|
|
312
|
-
return await registry.getRevocationStatusList(this.agentContext, revocationRegistryDefinitionId, timestamp);
|
|
313
|
-
} catch (error) {
|
|
314
|
-
failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation status list for revocation registry ${revocationRegistryDefinitionId}: ${error.message}`;
|
|
315
|
-
return failedReturnBase;
|
|
316
|
-
}
|
|
235
|
+
async getRevocationStatusList(revocationRegistryDefinitionId, timestamp, options = {}) {
|
|
236
|
+
return this.anonCredsRegistryService.getRevocationStatusList(this.agentContext, revocationRegistryDefinitionId, timestamp, options);
|
|
317
237
|
}
|
|
318
238
|
async registerRevocationStatusList(options) {
|
|
319
239
|
const { issuerId, revocationRegistryDefinitionId } = options.revocationStatusList;
|
|
@@ -330,7 +250,7 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
330
250
|
failedReturnBase.revocationStatusListState.reason = `Unable to register revocation status list. No registry found for issuerId ${issuerId}`;
|
|
331
251
|
return failedReturnBase;
|
|
332
252
|
}
|
|
333
|
-
const { revocationRegistryDefinition } = await
|
|
253
|
+
const { revocationRegistryDefinition } = await this.getRevocationRegistryDefinition(revocationRegistryDefinitionId);
|
|
334
254
|
if (!revocationRegistryDefinition) {
|
|
335
255
|
failedReturnBase.revocationStatusListState.reason = `Unable to register revocation status list. No revocation registry definition found for ${revocationRegistryDefinitionId}`;
|
|
336
256
|
return failedReturnBase;
|
|
@@ -371,12 +291,12 @@ let AnonCredsApi = class AnonCredsApi$1 {
|
|
|
371
291
|
failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No registry found for id ${options.revocationStatusList.revocationRegistryDefinitionId}`;
|
|
372
292
|
return failedReturnBase;
|
|
373
293
|
}
|
|
374
|
-
const { revocationRegistryDefinition } = await
|
|
294
|
+
const { revocationRegistryDefinition } = await this.getRevocationRegistryDefinition(revocationRegistryDefinitionId);
|
|
375
295
|
if (!revocationRegistryDefinition) {
|
|
376
296
|
failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No revocation registry definition found for ${revocationRegistryDefinitionId}`;
|
|
377
297
|
return failedReturnBase;
|
|
378
298
|
}
|
|
379
|
-
const { revocationStatusList: previousRevocationStatusList } = await this.getRevocationStatusList(revocationRegistryDefinitionId, dateToTimestamp(/* @__PURE__ */ new Date()));
|
|
299
|
+
const { revocationStatusList: previousRevocationStatusList } = await this.getRevocationStatusList(revocationRegistryDefinitionId, dateToTimestamp(/* @__PURE__ */ new Date()), { useCache: false });
|
|
380
300
|
if (!previousRevocationStatusList) {
|
|
381
301
|
failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No previous revocation status list found for ${options.revocationStatusList.revocationRegistryDefinitionId}`;
|
|
382
302
|
return failedReturnBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnonCredsApi.mjs","names":["AnonCredsApi","anonCredsIssuerService: AnonCredsIssuerService","anonCredsHolderService: AnonCredsHolderService","credentialDefinition: AnonCredsCredentialDefinition","credentialDefinitionPrivate: Record<string, unknown> | undefined","keyCorrectnessProof: Record<string, unknown> | undefined"],"sources":["../src/AnonCredsApi.ts"],"sourcesContent":["import type { SimpleQuery } from '@credo-ts/core'\nimport { AgentContext, inject, injectable } from '@credo-ts/core'\nimport type {\n AnonCredsCreateLinkSecretOptions,\n AnonCredsRegisterCredentialDefinitionOptions,\n AnonCredsRegisterRevocationRegistryDefinitionOptions,\n AnonCredsRegisterRevocationStatusListOptions,\n AnonCredsUpdateRevocationStatusListOptions,\n} from './AnonCredsApiOptions'\nimport { AnonCredsModuleConfig } from './AnonCredsModuleConfig'\nimport { AnonCredsStoreRecordError } from './error'\nimport type { AnonCredsCredentialDefinition, AnonCredsSchema } from './models'\nimport {\n AnonCredsCredentialDefinitionPrivateRecord,\n AnonCredsCredentialDefinitionPrivateRepository,\n AnonCredsKeyCorrectnessProofRecord,\n AnonCredsKeyCorrectnessProofRepository,\n AnonCredsLinkSecretRepository,\n AnonCredsRevocationRegistryDefinitionPrivateRecord,\n AnonCredsRevocationRegistryDefinitionPrivateRepository,\n AnonCredsRevocationRegistryDefinitionRecord,\n AnonCredsRevocationRegistryDefinitionRepository,\n AnonCredsRevocationRegistryState,\n} from './repository'\nimport { AnonCredsCredentialDefinitionRecord } from './repository/AnonCredsCredentialDefinitionRecord'\nimport { AnonCredsCredentialDefinitionRepository } from './repository/AnonCredsCredentialDefinitionRepository'\nimport { AnonCredsSchemaRecord } from './repository/AnonCredsSchemaRecord'\nimport { AnonCredsSchemaRepository } from './repository/AnonCredsSchemaRepository'\nimport { AnonCredsCredentialDefinitionRecordMetadataKeys } from './repository/anonCredsCredentialDefinitionRecordMetadataTypes'\nimport { AnonCredsRevocationRegistryDefinitionRecordMetadataKeys } from './repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes'\nimport type {\n AnonCredsRegistry,\n GetCredentialDefinitionReturn,\n GetCredentialsOptions,\n GetRevocationRegistryDefinitionReturn,\n GetRevocationStatusListReturn,\n GetSchemaReturn,\n RegisterCredentialDefinitionReturn,\n RegisterRevocationRegistryDefinitionReturn,\n RegisterRevocationStatusListReturn,\n RegisterSchemaReturn,\n} from './services'\nimport {\n type AnonCredsHolderService,\n AnonCredsHolderServiceSymbol,\n type AnonCredsIssuerService,\n AnonCredsIssuerServiceSymbol,\n} from './services'\nimport { AnonCredsRegistryService } from './services/registry/AnonCredsRegistryService'\nimport type { Extensible } from './services/registry/base'\nimport { dateToTimestamp, storeLinkSecret } from './utils'\n\n@injectable()\nexport class AnonCredsApi {\n public config: AnonCredsModuleConfig\n\n private agentContext: AgentContext\n private anonCredsRegistryService: AnonCredsRegistryService\n private anonCredsSchemaRepository: AnonCredsSchemaRepository\n private anonCredsCredentialDefinitionRepository: AnonCredsCredentialDefinitionRepository\n private anonCredsCredentialDefinitionPrivateRepository: AnonCredsCredentialDefinitionPrivateRepository\n private anonCredsRevocationRegistryDefinitionRepository: AnonCredsRevocationRegistryDefinitionRepository\n private anonCredsRevocationRegistryDefinitionPrivateRepository: AnonCredsRevocationRegistryDefinitionPrivateRepository\n private anonCredsKeyCorrectnessProofRepository: AnonCredsKeyCorrectnessProofRepository\n private anonCredsLinkSecretRepository: AnonCredsLinkSecretRepository\n private anonCredsIssuerService: AnonCredsIssuerService\n private anonCredsHolderService: AnonCredsHolderService\n\n public constructor(\n agentContext: AgentContext,\n anonCredsRegistryService: AnonCredsRegistryService,\n config: AnonCredsModuleConfig,\n @inject(AnonCredsIssuerServiceSymbol) anonCredsIssuerService: AnonCredsIssuerService,\n @inject(AnonCredsHolderServiceSymbol) anonCredsHolderService: AnonCredsHolderService,\n anonCredsSchemaRepository: AnonCredsSchemaRepository,\n anonCredsRevocationRegistryDefinitionRepository: AnonCredsRevocationRegistryDefinitionRepository,\n anonCredsRevocationRegistryDefinitionPrivateRepository: AnonCredsRevocationRegistryDefinitionPrivateRepository,\n anonCredsCredentialDefinitionRepository: AnonCredsCredentialDefinitionRepository,\n anonCredsCredentialDefinitionPrivateRepository: AnonCredsCredentialDefinitionPrivateRepository,\n anonCredsKeyCorrectnessProofRepository: AnonCredsKeyCorrectnessProofRepository,\n anonCredsLinkSecretRepository: AnonCredsLinkSecretRepository\n ) {\n this.agentContext = agentContext\n this.anonCredsRegistryService = anonCredsRegistryService\n this.config = config\n this.anonCredsIssuerService = anonCredsIssuerService\n this.anonCredsHolderService = anonCredsHolderService\n this.anonCredsSchemaRepository = anonCredsSchemaRepository\n this.anonCredsRevocationRegistryDefinitionRepository = anonCredsRevocationRegistryDefinitionRepository\n this.anonCredsRevocationRegistryDefinitionPrivateRepository = anonCredsRevocationRegistryDefinitionPrivateRepository\n this.anonCredsCredentialDefinitionRepository = anonCredsCredentialDefinitionRepository\n this.anonCredsCredentialDefinitionPrivateRepository = anonCredsCredentialDefinitionPrivateRepository\n this.anonCredsKeyCorrectnessProofRepository = anonCredsKeyCorrectnessProofRepository\n this.anonCredsLinkSecretRepository = anonCredsLinkSecretRepository\n }\n\n /**\n * Create a Link Secret, optionally indicating its ID and if it will be the default one\n * If there is no default Link Secret, this will be set as default (even if setAsDefault is false).\n *\n */\n public async createLinkSecret(options?: AnonCredsCreateLinkSecretOptions): Promise<string> {\n const { linkSecretId, linkSecretValue } = await this.anonCredsHolderService.createLinkSecret(this.agentContext, {\n linkSecretId: options?.linkSecretId,\n })\n\n await storeLinkSecret(this.agentContext, {\n linkSecretId,\n linkSecretValue,\n setAsDefault: options?.setAsDefault,\n })\n\n return linkSecretId\n }\n\n /**\n * Get a list of ids for the created link secrets\n */\n public async getLinkSecretIds(): Promise<string[]> {\n const linkSecrets = await this.anonCredsLinkSecretRepository.getAll(this.agentContext)\n\n return linkSecrets.map((linkSecret) => linkSecret.linkSecretId)\n }\n\n /**\n * Retrieve a {@link AnonCredsSchema} from the registry associated\n * with the {@link schemaId}\n */\n public async getSchema(schemaId: string): Promise<GetSchemaReturn> {\n const failedReturnBase = {\n resolutionMetadata: {\n error: 'error',\n message: `Unable to resolve schema ${schemaId}`,\n },\n schemaId,\n schemaMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(schemaId)\n if (!registry) {\n failedReturnBase.resolutionMetadata.error = 'unsupportedAnonCredsMethod'\n failedReturnBase.resolutionMetadata.message = `Unable to resolve schema ${schemaId}: No registry found for identifier ${schemaId}`\n return failedReturnBase\n }\n\n try {\n const result = await registry.getSchema(this.agentContext, schemaId)\n return result\n } catch (error) {\n failedReturnBase.resolutionMetadata.message = `Unable to resolve schema ${schemaId}: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async registerSchema<T extends Extensible = Extensible>(\n options: AnonCredsRegisterSchema<T>\n ): Promise<RegisterSchemaReturn> {\n const failedReturnBase = {\n schemaState: {\n state: 'failed' as const,\n schema: options.schema,\n reason: `Error registering schema for issuerId ${options.schema.issuerId}`,\n },\n registrationMetadata: {},\n schemaMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(options.schema.issuerId)\n if (!registry) {\n failedReturnBase.schemaState.reason = `Unable to register schema. No registry found for issuerId ${options.schema.issuerId}`\n return failedReturnBase\n }\n\n try {\n const result = await registry.registerSchema(this.agentContext, options)\n if (result.schemaState.state === 'finished') {\n await this.storeSchemaRecord(registry, result)\n }\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.schemaState.reason = `Error storing schema record: ${error.message}`\n return failedReturnBase\n }\n\n // In theory registerSchema SHOULD NOT throw, but we can't know for sure\n failedReturnBase.schemaState.reason = `Error registering schema: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async getCreatedSchemas(query: SimpleQuery<AnonCredsSchemaRecord>) {\n return this.anonCredsSchemaRepository.findByQuery(this.agentContext, query)\n }\n\n /**\n * Retrieve a {@link GetCredentialDefinitionReturn} from the registry associated\n * with the {@link credentialDefinitionId}\n */\n public async getCredentialDefinition(credentialDefinitionId: string): Promise<GetCredentialDefinitionReturn> {\n const failedReturnBase = {\n resolutionMetadata: {\n error: 'error',\n message: `Unable to resolve credential definition ${credentialDefinitionId}`,\n },\n credentialDefinitionId,\n credentialDefinitionMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(credentialDefinitionId)\n if (!registry) {\n failedReturnBase.resolutionMetadata.error = 'unsupportedAnonCredsMethod'\n failedReturnBase.resolutionMetadata.message = `Unable to resolve credential definition ${credentialDefinitionId}: No registry found for identifier ${credentialDefinitionId}`\n return failedReturnBase\n }\n\n try {\n const result = await registry.getCredentialDefinition(this.agentContext, credentialDefinitionId)\n return result\n } catch (error) {\n failedReturnBase.resolutionMetadata.message = `Unable to resolve credential definition ${credentialDefinitionId}: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async registerCredentialDefinition<T extends Extensible>(\n options: AnonCredsRegisterCredentialDefinition<T>\n ): Promise<RegisterCredentialDefinitionReturn> {\n const failedReturnBase = {\n credentialDefinitionState: {\n state: 'failed' as const,\n reason: `Error registering credential definition for issuerId ${options.credentialDefinition.issuerId}`,\n },\n registrationMetadata: {},\n credentialDefinitionMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(options.credentialDefinition.issuerId)\n if (!registry) {\n failedReturnBase.credentialDefinitionState.reason = `Unable to register credential definition. No registry found for issuerId ${options.credentialDefinition.issuerId}`\n return failedReturnBase\n }\n\n let credentialDefinition: AnonCredsCredentialDefinition\n let credentialDefinitionPrivate: Record<string, unknown> | undefined\n let keyCorrectnessProof: Record<string, unknown> | undefined\n\n try {\n if (isFullCredentialDefinitionInput(options.credentialDefinition)) {\n credentialDefinition = options.credentialDefinition\n } else {\n // If the input credential definition is not a full credential definition, we need to create one first\n // There's a caveat to when the input contains a full credential, that the credential definition private\n // and key correctness proof must already be stored in the wallet\n const schemaRegistry = this.findRegistryForIdentifier(options.credentialDefinition.schemaId)\n if (!schemaRegistry) {\n failedReturnBase.credentialDefinitionState.reason = `Unable to register credential definition. No registry found for schemaId ${options.credentialDefinition.schemaId}`\n return failedReturnBase\n }\n\n const schemaResult = await schemaRegistry.getSchema(this.agentContext, options.credentialDefinition.schemaId)\n\n if (!schemaResult.schema) {\n failedReturnBase.credentialDefinitionState.reason = `error resolving schema with id ${options.credentialDefinition.schemaId}: ${schemaResult.resolutionMetadata.error} ${schemaResult.resolutionMetadata.message}`\n return failedReturnBase\n }\n\n const createCredentialDefinitionResult = await this.anonCredsIssuerService.createCredentialDefinition(\n this.agentContext,\n {\n issuerId: options.credentialDefinition.issuerId,\n schemaId: options.credentialDefinition.schemaId,\n tag: options.credentialDefinition.tag,\n supportRevocation: options.options.supportRevocation,\n schema: schemaResult.schema,\n },\n // NOTE: indy-sdk support has been removed from main repo, but keeping\n // this in place to allow the indy-sdk to still be used as a custom package for some time\n // FIXME: Indy SDK requires the schema seq no to be passed in here. This is not ideal.\n {\n indyLedgerSchemaSeqNo: schemaResult.schemaMetadata.indyLedgerSeqNo,\n }\n )\n\n credentialDefinition = createCredentialDefinitionResult.credentialDefinition\n credentialDefinitionPrivate = createCredentialDefinitionResult.credentialDefinitionPrivate\n keyCorrectnessProof = createCredentialDefinitionResult.keyCorrectnessProof\n }\n\n const result = await registry.registerCredentialDefinition(this.agentContext, {\n credentialDefinition,\n options: options.options,\n })\n\n // Once a credential definition is created, the credential definition private and the key correctness proof must be stored because they change even if they the credential is recreated with the same arguments.\n // To avoid having unregistered credential definitions in the wallet, the credential definitions itself are stored only when the credential definition status is finished, meaning that the credential definition has been successfully registered.\n await this.storeCredentialDefinitionPrivateAndKeyCorrectnessRecord(\n result,\n credentialDefinitionPrivate,\n keyCorrectnessProof\n )\n if (result.credentialDefinitionState.state === 'finished') {\n await this.storeCredentialDefinitionRecord(registry, result)\n }\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.credentialDefinitionState.reason = `Error storing credential definition records: ${error.message}`\n return failedReturnBase\n }\n\n // In theory registerCredentialDefinition SHOULD NOT throw, but we can't know for sure\n failedReturnBase.credentialDefinitionState.reason = `Error registering credential definition: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async getCreatedCredentialDefinitions(query: SimpleQuery<AnonCredsCredentialDefinitionRecord>) {\n return this.anonCredsCredentialDefinitionRepository.findByQuery(this.agentContext, query)\n }\n\n /**\n * Retrieve a {@link AnonCredsRevocationRegistryDefinition} from the registry associated\n * with the {@link revocationRegistryDefinitionId}\n */\n public async getRevocationRegistryDefinition(\n revocationRegistryDefinitionId: string\n ): Promise<GetRevocationRegistryDefinitionReturn> {\n const failedReturnBase = {\n resolutionMetadata: {\n error: 'error',\n message: `Unable to resolve revocation registry ${revocationRegistryDefinitionId}`,\n },\n revocationRegistryDefinitionId,\n revocationRegistryDefinitionMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(revocationRegistryDefinitionId)\n if (!registry) {\n failedReturnBase.resolutionMetadata.error = 'unsupportedAnonCredsMethod'\n failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation registry ${revocationRegistryDefinitionId}: No registry found for identifier ${revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n try {\n const result = await registry.getRevocationRegistryDefinition(this.agentContext, revocationRegistryDefinitionId)\n return result\n } catch (error) {\n failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation registry ${revocationRegistryDefinitionId}: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async registerRevocationRegistryDefinition<T extends Extensible = Extensible>(\n options: AnonCredsRegisterRevocationRegistryDefinition<T>\n ): Promise<RegisterRevocationRegistryDefinitionReturn> {\n const { issuerId, tag, credentialDefinitionId, maximumCredentialNumber } = options.revocationRegistryDefinition\n\n const tailsFileService = this.agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService\n\n const tailsDirectoryPath = await tailsFileService.getTailsBasePath(this.agentContext)\n\n const failedReturnBase = {\n revocationRegistryDefinitionState: {\n state: 'failed' as const,\n reason: `Error registering revocation registry definition for issuerId ${issuerId}`,\n },\n registrationMetadata: {},\n revocationRegistryDefinitionMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(issuerId)\n if (!registry) {\n failedReturnBase.revocationRegistryDefinitionState.reason = `Unable to register revocation registry definition. No registry found for issuerId ${issuerId}`\n return failedReturnBase\n }\n\n const { credentialDefinition } = await registry.getCredentialDefinition(this.agentContext, credentialDefinitionId)\n\n if (!credentialDefinition) {\n failedReturnBase.revocationRegistryDefinitionState.reason = `Unable to register revocation registry definition. No credential definition found for id ${credentialDefinitionId}`\n return failedReturnBase\n }\n try {\n const { revocationRegistryDefinition, revocationRegistryDefinitionPrivate } =\n await this.anonCredsIssuerService.createRevocationRegistryDefinition(this.agentContext, {\n issuerId,\n tag,\n credentialDefinitionId,\n credentialDefinition,\n maximumCredentialNumber,\n tailsDirectoryPath,\n })\n\n // At this moment, tails file should be published and a valid public URL will be received\n const localTailsLocation = revocationRegistryDefinition.value.tailsLocation\n\n const { tailsFileUrl } = await tailsFileService.uploadTailsFile(this.agentContext, {\n revocationRegistryDefinition,\n })\n revocationRegistryDefinition.value.tailsLocation = tailsFileUrl\n\n const result = await registry.registerRevocationRegistryDefinition(this.agentContext, {\n revocationRegistryDefinition,\n options: options.options,\n })\n\n // To avoid having unregistered revocation registry definitions in the wallet, the revocation registry definition itself are stored only when the revocation registry definition status is finished, meaning that the revocation registry definition has been successfully registered.\n if (result.revocationRegistryDefinitionState.state === 'finished') {\n await this.storeRevocationRegistryDefinitionRecord(result, revocationRegistryDefinitionPrivate)\n }\n\n return {\n ...result,\n revocationRegistryDefinitionMetadata: { ...result.revocationRegistryDefinitionMetadata, localTailsLocation },\n }\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.revocationRegistryDefinitionState.reason = `Error storing revocation registry definition records: ${error.message}`\n return failedReturnBase\n }\n\n failedReturnBase.revocationRegistryDefinitionState.reason = `Error registering revocation registry definition: ${error.message}`\n return failedReturnBase\n }\n }\n\n /**\n * Retrieve the {@link AnonCredsRevocationStatusList} for the given {@link timestamp} from the registry associated\n * with the {@link revocationRegistryDefinitionId}\n */\n public async getRevocationStatusList(\n revocationRegistryDefinitionId: string,\n timestamp: number\n ): Promise<GetRevocationStatusListReturn> {\n const failedReturnBase = {\n resolutionMetadata: {\n error: 'error',\n message: `Unable to resolve revocation status list for revocation registry ${revocationRegistryDefinitionId}`,\n },\n revocationStatusListMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(revocationRegistryDefinitionId)\n if (!registry) {\n failedReturnBase.resolutionMetadata.error = 'unsupportedAnonCredsMethod'\n failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation status list for revocation registry ${revocationRegistryDefinitionId}: No registry found for identifier ${revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n try {\n const result = await registry.getRevocationStatusList(\n this.agentContext,\n revocationRegistryDefinitionId,\n timestamp\n )\n return result\n } catch (error) {\n failedReturnBase.resolutionMetadata.message = `Unable to resolve revocation status list for revocation registry ${revocationRegistryDefinitionId}: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async registerRevocationStatusList<T extends Extensible = Extensible>(\n options: AnonCredsRegisterRevocationStatusList<T>\n ): Promise<RegisterRevocationStatusListReturn> {\n const { issuerId, revocationRegistryDefinitionId } = options.revocationStatusList\n\n const failedReturnBase = {\n revocationStatusListState: {\n state: 'failed' as const,\n reason: `Error registering revocation status list for issuerId ${issuerId}`,\n },\n registrationMetadata: {},\n revocationStatusListMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(issuerId)\n if (!registry) {\n failedReturnBase.revocationStatusListState.reason = `Unable to register revocation status list. No registry found for issuerId ${issuerId}`\n return failedReturnBase\n }\n\n const { revocationRegistryDefinition } = await registry.getRevocationRegistryDefinition(\n this.agentContext,\n revocationRegistryDefinitionId\n )\n\n if (!revocationRegistryDefinition) {\n failedReturnBase.revocationStatusListState.reason = `Unable to register revocation status list. No revocation registry definition found for ${revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n const tailsFileService = this.agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService\n const { tailsFilePath } = await tailsFileService.getTailsFile(this.agentContext, {\n revocationRegistryDefinition,\n })\n\n try {\n const revocationStatusList = await this.anonCredsIssuerService.createRevocationStatusList(this.agentContext, {\n issuerId,\n revocationRegistryDefinition,\n revocationRegistryDefinitionId,\n tailsFilePath,\n })\n\n const result = await registry.registerRevocationStatusList(this.agentContext, {\n revocationStatusList,\n options: options.options,\n })\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.revocationStatusListState.reason = `Error storing revocation status list records: ${error.message}`\n return failedReturnBase\n }\n\n failedReturnBase.revocationStatusListState.reason = `Error registering revocation status list: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async updateRevocationStatusList<T extends Extensible = Extensible>(\n options: AnonCredsUpdateRevocationStatusList<T>\n ): Promise<RegisterRevocationStatusListReturn> {\n const { issuedCredentialIndexes, revokedCredentialIndexes, revocationRegistryDefinitionId } =\n options.revocationStatusList\n\n const failedReturnBase = {\n revocationStatusListState: {\n state: 'failed' as const,\n reason: `Error updating revocation status list for revocation registry definition id ${options.revocationStatusList.revocationRegistryDefinitionId}`,\n },\n registrationMetadata: {},\n revocationStatusListMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(options.revocationStatusList.revocationRegistryDefinitionId)\n if (!registry) {\n failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No registry found for id ${options.revocationStatusList.revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n const { revocationRegistryDefinition } = await registry.getRevocationRegistryDefinition(\n this.agentContext,\n revocationRegistryDefinitionId\n )\n\n if (!revocationRegistryDefinition) {\n failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No revocation registry definition found for ${revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n const { revocationStatusList: previousRevocationStatusList } = await this.getRevocationStatusList(\n revocationRegistryDefinitionId,\n dateToTimestamp(new Date())\n )\n\n if (!previousRevocationStatusList) {\n failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No previous revocation status list found for ${options.revocationStatusList.revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n const tailsFileService = this.agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService\n const { tailsFilePath } = await tailsFileService.getTailsFile(this.agentContext, {\n revocationRegistryDefinition,\n })\n\n try {\n const revocationStatusList = await this.anonCredsIssuerService.updateRevocationStatusList(this.agentContext, {\n issued: issuedCredentialIndexes,\n revoked: revokedCredentialIndexes,\n revocationStatusList: previousRevocationStatusList,\n revocationRegistryDefinition,\n tailsFilePath,\n })\n\n const result = await registry.registerRevocationStatusList(this.agentContext, {\n revocationStatusList,\n options: options.options,\n })\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.revocationStatusListState.reason = `Error storing revocation status list records: ${error.message}`\n return failedReturnBase\n }\n\n failedReturnBase.revocationStatusListState.reason = `Error registering revocation status list: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async getCredential(id: string) {\n return this.anonCredsHolderService.getCredential(this.agentContext, { id })\n }\n\n public async getCredentials(options: GetCredentialsOptions) {\n return this.anonCredsHolderService.getCredentials(this.agentContext, options)\n }\n\n private async storeRevocationRegistryDefinitionRecord(\n result: RegisterRevocationRegistryDefinitionReturn,\n revocationRegistryDefinitionPrivate?: Record<string, unknown>\n ): Promise<void> {\n try {\n // If we have both the revocationRegistryDefinition and the revocationRegistryDefinitionId we will store a copy\n // of the credential definition. We may need to handle an edge case in the future where we e.g. don't have the\n // id yet, and it is registered through a different channel\n if (\n result.revocationRegistryDefinitionState.revocationRegistryDefinition &&\n result.revocationRegistryDefinitionState.revocationRegistryDefinitionId\n ) {\n const revocationRegistryDefinitionRecord = new AnonCredsRevocationRegistryDefinitionRecord({\n revocationRegistryDefinitionId: result.revocationRegistryDefinitionState.revocationRegistryDefinitionId,\n revocationRegistryDefinition: result.revocationRegistryDefinitionState.revocationRegistryDefinition,\n })\n\n // TODO: do we need to store this metadata? For indy, the registration metadata contains e.g.\n // the indyLedgerSeqNo and the didIndyNamespace, but it can get quite big if complete transactions\n // are stored in the metadata\n revocationRegistryDefinitionRecord.metadata.set(\n AnonCredsRevocationRegistryDefinitionRecordMetadataKeys.RevocationRegistryDefinitionMetadata,\n result.revocationRegistryDefinitionMetadata\n )\n revocationRegistryDefinitionRecord.metadata.set(\n AnonCredsRevocationRegistryDefinitionRecordMetadataKeys.RevocationRegistryDefinitionRegistrationMetadata,\n result.registrationMetadata\n )\n\n await this.anonCredsRevocationRegistryDefinitionRepository.save(\n this.agentContext,\n revocationRegistryDefinitionRecord\n )\n\n // Store Revocation Registry Definition private data (if provided by issuer service)\n if (revocationRegistryDefinitionPrivate) {\n const revocationRegistryDefinitionPrivateRecord = new AnonCredsRevocationRegistryDefinitionPrivateRecord({\n revocationRegistryDefinitionId: result.revocationRegistryDefinitionState.revocationRegistryDefinitionId,\n credentialDefinitionId: result.revocationRegistryDefinitionState.revocationRegistryDefinition.credDefId,\n value: revocationRegistryDefinitionPrivate,\n state: AnonCredsRevocationRegistryState.Active,\n })\n await this.anonCredsRevocationRegistryDefinitionPrivateRepository.save(\n this.agentContext,\n revocationRegistryDefinitionPrivateRecord\n )\n }\n }\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing revocation registry definition records', { cause: error })\n }\n }\n\n private async storeCredentialDefinitionPrivateAndKeyCorrectnessRecord(\n result: RegisterCredentialDefinitionReturn,\n credentialDefinitionPrivate?: Record<string, unknown>,\n keyCorrectnessProof?: Record<string, unknown>\n ): Promise<void> {\n try {\n if (!result.credentialDefinitionState.credentialDefinitionId) return\n\n // Store Credential Definition private data (if provided by issuer service)\n if (credentialDefinitionPrivate) {\n const credentialDefinitionPrivateRecord = new AnonCredsCredentialDefinitionPrivateRecord({\n credentialDefinitionId: result.credentialDefinitionState.credentialDefinitionId,\n value: credentialDefinitionPrivate,\n })\n await this.anonCredsCredentialDefinitionPrivateRepository.save(\n this.agentContext,\n credentialDefinitionPrivateRecord\n )\n }\n\n if (keyCorrectnessProof) {\n const keyCorrectnessProofRecord = new AnonCredsKeyCorrectnessProofRecord({\n credentialDefinitionId: result.credentialDefinitionState.credentialDefinitionId,\n value: keyCorrectnessProof,\n })\n await this.anonCredsKeyCorrectnessProofRepository.save(this.agentContext, keyCorrectnessProofRecord)\n }\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing credential definition key-correctness-proof and private', {\n cause: error,\n })\n }\n }\n\n private async storeCredentialDefinitionRecord(\n registry: AnonCredsRegistry,\n result: RegisterCredentialDefinitionReturn\n ): Promise<void> {\n try {\n // If we have both the credentialDefinition and the credentialDefinitionId we will store a copy of the credential definition. We may need to handle an\n // edge case in the future where we e.g. don't have the id yet, and it is registered through a different channel\n if (\n !result.credentialDefinitionState.credentialDefinition ||\n !result.credentialDefinitionState.credentialDefinitionId\n ) {\n return\n }\n const credentialDefinitionRecord = new AnonCredsCredentialDefinitionRecord({\n credentialDefinitionId: result.credentialDefinitionState.credentialDefinitionId,\n credentialDefinition: result.credentialDefinitionState.credentialDefinition,\n methodName: registry.methodName,\n })\n\n // TODO: do we need to store this metadata? For indy, the registration metadata contains e.g.\n // the indyLedgerSeqNo and the didIndyNamespace, but it can get quite big if complete transactions\n // are stored in the metadata\n credentialDefinitionRecord.metadata.set(\n AnonCredsCredentialDefinitionRecordMetadataKeys.CredentialDefinitionMetadata,\n result.credentialDefinitionMetadata\n )\n credentialDefinitionRecord.metadata.set(\n AnonCredsCredentialDefinitionRecordMetadataKeys.CredentialDefinitionRegistrationMetadata,\n result.registrationMetadata\n )\n\n await this.anonCredsCredentialDefinitionRepository.save(this.agentContext, credentialDefinitionRecord)\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing credential definition records', { cause: error })\n }\n }\n\n private async storeSchemaRecord(registry: AnonCredsRegistry, result: RegisterSchemaReturn): Promise<void> {\n try {\n // If we have both the schema and the schemaId we will store a copy of the schema. We may need to handle an\n // edge case in the future where we e.g. don't have the id yet, and it is registered through a different channel\n if (result.schemaState.schema && result.schemaState.schemaId) {\n const schemaRecord = new AnonCredsSchemaRecord({\n schemaId: result.schemaState.schemaId,\n schema: result.schemaState.schema,\n methodName: registry.methodName,\n })\n\n await this.anonCredsSchemaRepository.save(this.agentContext, schemaRecord)\n }\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing schema record', { cause: error })\n }\n }\n\n private findRegistryForIdentifier(identifier: string) {\n try {\n return this.anonCredsRegistryService.getRegistryForIdentifier(this.agentContext, identifier)\n } catch {\n return null\n }\n }\n}\n\nexport interface AnonCredsRegisterCredentialDefinitionApiOptions {\n supportRevocation: boolean\n}\n\ninterface AnonCredsRegisterCredentialDefinition<T extends Extensible = Extensible> {\n credentialDefinition: AnonCredsRegisterCredentialDefinitionOptions\n options: T & AnonCredsRegisterCredentialDefinitionApiOptions\n}\n\ninterface AnonCredsRegisterSchema<T extends Extensible = Extensible> {\n schema: AnonCredsSchema\n options: T\n}\n\ninterface AnonCredsRegisterRevocationRegistryDefinition<T extends Extensible = Extensible> {\n revocationRegistryDefinition: AnonCredsRegisterRevocationRegistryDefinitionOptions\n options: T\n}\n\ninterface AnonCredsRegisterRevocationStatusList<T extends Extensible = Extensible> {\n revocationStatusList: AnonCredsRegisterRevocationStatusListOptions\n options: T\n}\n\ninterface AnonCredsUpdateRevocationStatusList<T extends Extensible = Extensible> {\n revocationStatusList: AnonCredsUpdateRevocationStatusListOptions\n options: T\n}\n\nfunction isFullCredentialDefinitionInput(\n credentialDefinition: AnonCredsRegisterCredentialDefinitionOptions\n): credentialDefinition is AnonCredsCredentialDefinition {\n return 'value' in credentialDefinition\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AnonCredsApi.mjs","names":["AnonCredsApi","anonCredsIssuerService: AnonCredsIssuerService","anonCredsHolderService: AnonCredsHolderService","credentialDefinition: AnonCredsCredentialDefinition","credentialDefinitionPrivate: Record<string, unknown> | undefined","keyCorrectnessProof: Record<string, unknown> | undefined"],"sources":["../src/AnonCredsApi.ts"],"sourcesContent":["import type { SimpleQuery } from '@credo-ts/core'\nimport { AgentContext, inject, injectable } from '@credo-ts/core'\nimport type {\n AnonCredsCreateLinkSecretOptions,\n AnonCredsRegisterCredentialDefinitionOptions,\n AnonCredsRegisterRevocationRegistryDefinitionOptions,\n AnonCredsRegisterRevocationStatusListOptions,\n AnonCredsUpdateRevocationStatusListOptions,\n} from './AnonCredsApiOptions'\nimport { AnonCredsModuleConfig } from './AnonCredsModuleConfig'\nimport { AnonCredsStoreRecordError } from './error'\nimport type { AnonCredsCredentialDefinition, AnonCredsSchema } from './models'\nimport {\n AnonCredsCredentialDefinitionPrivateRecord,\n AnonCredsCredentialDefinitionPrivateRepository,\n AnonCredsKeyCorrectnessProofRecord,\n AnonCredsKeyCorrectnessProofRepository,\n AnonCredsLinkSecretRepository,\n AnonCredsRevocationRegistryDefinitionPrivateRecord,\n AnonCredsRevocationRegistryDefinitionPrivateRepository,\n AnonCredsRevocationRegistryDefinitionRecord,\n AnonCredsRevocationRegistryDefinitionRepository,\n AnonCredsRevocationRegistryState,\n} from './repository'\nimport { AnonCredsCredentialDefinitionRecord } from './repository/AnonCredsCredentialDefinitionRecord'\nimport { AnonCredsCredentialDefinitionRepository } from './repository/AnonCredsCredentialDefinitionRepository'\nimport { AnonCredsSchemaRecord } from './repository/AnonCredsSchemaRecord'\nimport { AnonCredsSchemaRepository } from './repository/AnonCredsSchemaRepository'\nimport { AnonCredsCredentialDefinitionRecordMetadataKeys } from './repository/anonCredsCredentialDefinitionRecordMetadataTypes'\nimport { AnonCredsRevocationRegistryDefinitionRecordMetadataKeys } from './repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes'\nimport type {\n AnonCredsRegistry,\n GetCredentialDefinitionReturn,\n GetCredentialsOptions,\n GetRevocationRegistryDefinitionReturn,\n GetRevocationStatusListReturn,\n GetSchemaReturn,\n RegisterCredentialDefinitionReturn,\n RegisterRevocationRegistryDefinitionReturn,\n RegisterRevocationStatusListReturn,\n RegisterSchemaReturn,\n} from './services'\nimport {\n type AnonCredsHolderService,\n AnonCredsHolderServiceSymbol,\n type AnonCredsIssuerService,\n AnonCredsIssuerServiceSymbol,\n} from './services'\nimport { AnonCredsRegistryService } from './services/registry/AnonCredsRegistryService'\nimport type { AnonCredsResolutionOptions, Extensible } from './services/registry/base'\nimport { dateToTimestamp, storeLinkSecret } from './utils'\n\n@injectable()\nexport class AnonCredsApi {\n public config: AnonCredsModuleConfig\n\n private agentContext: AgentContext\n private anonCredsRegistryService: AnonCredsRegistryService\n private anonCredsSchemaRepository: AnonCredsSchemaRepository\n private anonCredsCredentialDefinitionRepository: AnonCredsCredentialDefinitionRepository\n private anonCredsCredentialDefinitionPrivateRepository: AnonCredsCredentialDefinitionPrivateRepository\n private anonCredsRevocationRegistryDefinitionRepository: AnonCredsRevocationRegistryDefinitionRepository\n private anonCredsRevocationRegistryDefinitionPrivateRepository: AnonCredsRevocationRegistryDefinitionPrivateRepository\n private anonCredsKeyCorrectnessProofRepository: AnonCredsKeyCorrectnessProofRepository\n private anonCredsLinkSecretRepository: AnonCredsLinkSecretRepository\n private anonCredsIssuerService: AnonCredsIssuerService\n private anonCredsHolderService: AnonCredsHolderService\n\n public constructor(\n agentContext: AgentContext,\n anonCredsRegistryService: AnonCredsRegistryService,\n config: AnonCredsModuleConfig,\n @inject(AnonCredsIssuerServiceSymbol) anonCredsIssuerService: AnonCredsIssuerService,\n @inject(AnonCredsHolderServiceSymbol) anonCredsHolderService: AnonCredsHolderService,\n anonCredsSchemaRepository: AnonCredsSchemaRepository,\n anonCredsRevocationRegistryDefinitionRepository: AnonCredsRevocationRegistryDefinitionRepository,\n anonCredsRevocationRegistryDefinitionPrivateRepository: AnonCredsRevocationRegistryDefinitionPrivateRepository,\n anonCredsCredentialDefinitionRepository: AnonCredsCredentialDefinitionRepository,\n anonCredsCredentialDefinitionPrivateRepository: AnonCredsCredentialDefinitionPrivateRepository,\n anonCredsKeyCorrectnessProofRepository: AnonCredsKeyCorrectnessProofRepository,\n anonCredsLinkSecretRepository: AnonCredsLinkSecretRepository\n ) {\n this.agentContext = agentContext\n this.anonCredsRegistryService = anonCredsRegistryService\n this.config = config\n this.anonCredsIssuerService = anonCredsIssuerService\n this.anonCredsHolderService = anonCredsHolderService\n this.anonCredsSchemaRepository = anonCredsSchemaRepository\n this.anonCredsRevocationRegistryDefinitionRepository = anonCredsRevocationRegistryDefinitionRepository\n this.anonCredsRevocationRegistryDefinitionPrivateRepository = anonCredsRevocationRegistryDefinitionPrivateRepository\n this.anonCredsCredentialDefinitionRepository = anonCredsCredentialDefinitionRepository\n this.anonCredsCredentialDefinitionPrivateRepository = anonCredsCredentialDefinitionPrivateRepository\n this.anonCredsKeyCorrectnessProofRepository = anonCredsKeyCorrectnessProofRepository\n this.anonCredsLinkSecretRepository = anonCredsLinkSecretRepository\n }\n\n /**\n * Create a Link Secret, optionally indicating its ID and if it will be the default one\n * If there is no default Link Secret, this will be set as default (even if setAsDefault is false).\n *\n */\n public async createLinkSecret(options?: AnonCredsCreateLinkSecretOptions): Promise<string> {\n const { linkSecretId, linkSecretValue } = await this.anonCredsHolderService.createLinkSecret(this.agentContext, {\n linkSecretId: options?.linkSecretId,\n })\n\n await storeLinkSecret(this.agentContext, {\n linkSecretId,\n linkSecretValue,\n setAsDefault: options?.setAsDefault,\n })\n\n return linkSecretId\n }\n\n /**\n * Get a list of ids for the created link secrets\n */\n public async getLinkSecretIds(): Promise<string[]> {\n const linkSecrets = await this.anonCredsLinkSecretRepository.getAll(this.agentContext)\n\n return linkSecrets.map((linkSecret) => linkSecret.linkSecretId)\n }\n\n /**\n * Retrieve a {@link AnonCredsSchema} from the registry associated\n * with the {@link schemaId}\n */\n public async getSchema(schemaId: string, options: AnonCredsResolutionOptions = {}): Promise<GetSchemaReturn> {\n return this.anonCredsRegistryService.getSchema(this.agentContext, schemaId, options)\n }\n\n public async registerSchema<T extends Extensible = Extensible>(\n options: AnonCredsRegisterSchema<T>\n ): Promise<RegisterSchemaReturn> {\n const failedReturnBase = {\n schemaState: {\n state: 'failed' as const,\n schema: options.schema,\n reason: `Error registering schema for issuerId ${options.schema.issuerId}`,\n },\n registrationMetadata: {},\n schemaMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(options.schema.issuerId)\n if (!registry) {\n failedReturnBase.schemaState.reason = `Unable to register schema. No registry found for issuerId ${options.schema.issuerId}`\n return failedReturnBase\n }\n\n try {\n const result = await registry.registerSchema(this.agentContext, options)\n if (result.schemaState.state === 'finished') {\n await this.storeSchemaRecord(registry, result)\n }\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.schemaState.reason = `Error storing schema record: ${error.message}`\n return failedReturnBase\n }\n\n // In theory registerSchema SHOULD NOT throw, but we can't know for sure\n failedReturnBase.schemaState.reason = `Error registering schema: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async getCreatedSchemas(query: SimpleQuery<AnonCredsSchemaRecord>) {\n return this.anonCredsSchemaRepository.findByQuery(this.agentContext, query)\n }\n\n /**\n * Retrieve a {@link GetCredentialDefinitionReturn} from the registry associated\n * with the {@link credentialDefinitionId}\n */\n public async getCredentialDefinition(\n credentialDefinitionId: string,\n options: AnonCredsResolutionOptions = {}\n ): Promise<GetCredentialDefinitionReturn> {\n return this.anonCredsRegistryService.getCredentialDefinition(this.agentContext, credentialDefinitionId, options)\n }\n\n public async registerCredentialDefinition<T extends Extensible>(\n options: AnonCredsRegisterCredentialDefinition<T>\n ): Promise<RegisterCredentialDefinitionReturn> {\n const failedReturnBase = {\n credentialDefinitionState: {\n state: 'failed' as const,\n reason: `Error registering credential definition for issuerId ${options.credentialDefinition.issuerId}`,\n },\n registrationMetadata: {},\n credentialDefinitionMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(options.credentialDefinition.issuerId)\n if (!registry) {\n failedReturnBase.credentialDefinitionState.reason = `Unable to register credential definition. No registry found for issuerId ${options.credentialDefinition.issuerId}`\n return failedReturnBase\n }\n\n let credentialDefinition: AnonCredsCredentialDefinition\n let credentialDefinitionPrivate: Record<string, unknown> | undefined\n let keyCorrectnessProof: Record<string, unknown> | undefined\n\n try {\n if (isFullCredentialDefinitionInput(options.credentialDefinition)) {\n credentialDefinition = options.credentialDefinition\n } else {\n const schemaResult = await this.getSchema(options.credentialDefinition.schemaId)\n if (!schemaResult.schema) {\n failedReturnBase.credentialDefinitionState.reason = `error resolving schema with id ${options.credentialDefinition.schemaId}: ${schemaResult.resolutionMetadata.error} ${schemaResult.resolutionMetadata.message}`\n return failedReturnBase\n }\n\n const createCredentialDefinitionResult = await this.anonCredsIssuerService.createCredentialDefinition(\n this.agentContext,\n {\n issuerId: options.credentialDefinition.issuerId,\n schemaId: options.credentialDefinition.schemaId,\n tag: options.credentialDefinition.tag,\n supportRevocation: options.options.supportRevocation,\n schema: schemaResult.schema,\n }\n )\n\n credentialDefinition = createCredentialDefinitionResult.credentialDefinition\n credentialDefinitionPrivate = createCredentialDefinitionResult.credentialDefinitionPrivate\n keyCorrectnessProof = createCredentialDefinitionResult.keyCorrectnessProof\n }\n\n const result = await registry.registerCredentialDefinition(this.agentContext, {\n credentialDefinition,\n options: options.options,\n })\n\n // Once a credential definition is created, the credential definition private and the key correctness proof must be stored because they change even if they the credential is recreated with the same arguments.\n // To avoid having unregistered credential definitions in the wallet, the credential definitions itself are stored only when the credential definition status is finished, meaning that the credential definition has been successfully registered.\n await this.storeCredentialDefinitionPrivateAndKeyCorrectnessRecord(\n result,\n credentialDefinitionPrivate,\n keyCorrectnessProof\n )\n if (result.credentialDefinitionState.state === 'finished') {\n await this.storeCredentialDefinitionRecord(registry, result)\n }\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.credentialDefinitionState.reason = `Error storing credential definition records: ${error.message}`\n return failedReturnBase\n }\n\n // In theory registerCredentialDefinition SHOULD NOT throw, but we can't know for sure\n failedReturnBase.credentialDefinitionState.reason = `Error registering credential definition: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async getCreatedCredentialDefinitions(query: SimpleQuery<AnonCredsCredentialDefinitionRecord>) {\n return this.anonCredsCredentialDefinitionRepository.findByQuery(this.agentContext, query)\n }\n\n /**\n * Retrieve a {@link AnonCredsRevocationRegistryDefinition} from the registry associated\n * with the {@link revocationRegistryDefinitionId}\n */\n public async getRevocationRegistryDefinition(\n revocationRegistryDefinitionId: string,\n options: AnonCredsResolutionOptions = {}\n ): Promise<GetRevocationRegistryDefinitionReturn> {\n return this.anonCredsRegistryService.getRevocationRegistryDefinition(\n this.agentContext,\n revocationRegistryDefinitionId,\n options\n )\n }\n\n public async registerRevocationRegistryDefinition<T extends Extensible = Extensible>(\n options: AnonCredsRegisterRevocationRegistryDefinition<T>\n ): Promise<RegisterRevocationRegistryDefinitionReturn> {\n const { issuerId, tag, credentialDefinitionId, maximumCredentialNumber } = options.revocationRegistryDefinition\n\n const tailsFileService = this.agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService\n\n const tailsDirectoryPath = await tailsFileService.getTailsBasePath(this.agentContext)\n\n const failedReturnBase = {\n revocationRegistryDefinitionState: {\n state: 'failed' as const,\n reason: `Error registering revocation registry definition for issuerId ${issuerId}`,\n },\n registrationMetadata: {},\n revocationRegistryDefinitionMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(issuerId)\n if (!registry) {\n failedReturnBase.revocationRegistryDefinitionState.reason = `Unable to register revocation registry definition. No registry found for issuerId ${issuerId}`\n return failedReturnBase\n }\n\n const { credentialDefinition } = await this.getCredentialDefinition(credentialDefinitionId)\n\n if (!credentialDefinition) {\n failedReturnBase.revocationRegistryDefinitionState.reason = `Unable to register revocation registry definition. No credential definition found for id ${credentialDefinitionId}`\n return failedReturnBase\n }\n try {\n const { revocationRegistryDefinition, revocationRegistryDefinitionPrivate } =\n await this.anonCredsIssuerService.createRevocationRegistryDefinition(this.agentContext, {\n issuerId,\n tag,\n credentialDefinitionId,\n credentialDefinition,\n maximumCredentialNumber,\n tailsDirectoryPath,\n })\n\n // At this moment, tails file should be published and a valid public URL will be received\n const localTailsLocation = revocationRegistryDefinition.value.tailsLocation\n\n const { tailsFileUrl } = await tailsFileService.uploadTailsFile(this.agentContext, {\n revocationRegistryDefinition,\n })\n revocationRegistryDefinition.value.tailsLocation = tailsFileUrl\n\n const result = await registry.registerRevocationRegistryDefinition(this.agentContext, {\n revocationRegistryDefinition,\n options: options.options,\n })\n\n // To avoid having unregistered revocation registry definitions in the wallet, the revocation registry definition itself are stored only when the revocation registry definition status is finished, meaning that the revocation registry definition has been successfully registered.\n if (result.revocationRegistryDefinitionState.state === 'finished') {\n await this.storeRevocationRegistryDefinitionRecord(result, revocationRegistryDefinitionPrivate)\n }\n\n return {\n ...result,\n revocationRegistryDefinitionMetadata: { ...result.revocationRegistryDefinitionMetadata, localTailsLocation },\n }\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.revocationRegistryDefinitionState.reason = `Error storing revocation registry definition records: ${error.message}`\n return failedReturnBase\n }\n\n failedReturnBase.revocationRegistryDefinitionState.reason = `Error registering revocation registry definition: ${error.message}`\n return failedReturnBase\n }\n }\n\n /**\n * Retrieve the {@link AnonCredsRevocationStatusList} for the given {@link timestamp} from the registry associated\n * with the {@link revocationRegistryDefinitionId}\n */\n public async getRevocationStatusList(\n revocationRegistryDefinitionId: string,\n timestamp: number,\n options: Omit<AnonCredsResolutionOptions, 'useLocalRecord'> = {}\n ): Promise<GetRevocationStatusListReturn> {\n return this.anonCredsRegistryService.getRevocationStatusList(\n this.agentContext,\n revocationRegistryDefinitionId,\n timestamp,\n options\n )\n }\n\n public async registerRevocationStatusList<T extends Extensible = Extensible>(\n options: AnonCredsRegisterRevocationStatusList<T>\n ): Promise<RegisterRevocationStatusListReturn> {\n const { issuerId, revocationRegistryDefinitionId } = options.revocationStatusList\n\n const failedReturnBase = {\n revocationStatusListState: {\n state: 'failed' as const,\n reason: `Error registering revocation status list for issuerId ${issuerId}`,\n },\n registrationMetadata: {},\n revocationStatusListMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(issuerId)\n if (!registry) {\n failedReturnBase.revocationStatusListState.reason = `Unable to register revocation status list. No registry found for issuerId ${issuerId}`\n return failedReturnBase\n }\n\n const { revocationRegistryDefinition } = await this.getRevocationRegistryDefinition(revocationRegistryDefinitionId)\n\n if (!revocationRegistryDefinition) {\n failedReturnBase.revocationStatusListState.reason = `Unable to register revocation status list. No revocation registry definition found for ${revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n const tailsFileService = this.agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService\n const { tailsFilePath } = await tailsFileService.getTailsFile(this.agentContext, {\n revocationRegistryDefinition,\n })\n\n try {\n const revocationStatusList = await this.anonCredsIssuerService.createRevocationStatusList(this.agentContext, {\n issuerId,\n revocationRegistryDefinition,\n revocationRegistryDefinitionId,\n tailsFilePath,\n })\n\n const result = await registry.registerRevocationStatusList(this.agentContext, {\n revocationStatusList,\n options: options.options,\n })\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.revocationStatusListState.reason = `Error storing revocation status list records: ${error.message}`\n return failedReturnBase\n }\n\n failedReturnBase.revocationStatusListState.reason = `Error registering revocation status list: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async updateRevocationStatusList<T extends Extensible = Extensible>(\n options: AnonCredsUpdateRevocationStatusList<T>\n ): Promise<RegisterRevocationStatusListReturn> {\n const { issuedCredentialIndexes, revokedCredentialIndexes, revocationRegistryDefinitionId } =\n options.revocationStatusList\n\n const failedReturnBase = {\n revocationStatusListState: {\n state: 'failed' as const,\n reason: `Error updating revocation status list for revocation registry definition id ${options.revocationStatusList.revocationRegistryDefinitionId}`,\n },\n registrationMetadata: {},\n revocationStatusListMetadata: {},\n }\n\n const registry = this.findRegistryForIdentifier(options.revocationStatusList.revocationRegistryDefinitionId)\n if (!registry) {\n failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No registry found for id ${options.revocationStatusList.revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n const { revocationRegistryDefinition } = await this.getRevocationRegistryDefinition(revocationRegistryDefinitionId)\n\n if (!revocationRegistryDefinition) {\n failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No revocation registry definition found for ${revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n const { revocationStatusList: previousRevocationStatusList } = await this.getRevocationStatusList(\n revocationRegistryDefinitionId,\n dateToTimestamp(new Date()),\n // We want the latest state here.\n {\n useCache: false,\n }\n )\n\n if (!previousRevocationStatusList) {\n failedReturnBase.revocationStatusListState.reason = `Unable to update revocation status list. No previous revocation status list found for ${options.revocationStatusList.revocationRegistryDefinitionId}`\n return failedReturnBase\n }\n\n const tailsFileService = this.agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService\n const { tailsFilePath } = await tailsFileService.getTailsFile(this.agentContext, {\n revocationRegistryDefinition,\n })\n\n try {\n const revocationStatusList = await this.anonCredsIssuerService.updateRevocationStatusList(this.agentContext, {\n issued: issuedCredentialIndexes,\n revoked: revokedCredentialIndexes,\n revocationStatusList: previousRevocationStatusList,\n revocationRegistryDefinition,\n tailsFilePath,\n })\n\n const result = await registry.registerRevocationStatusList(this.agentContext, {\n revocationStatusList,\n options: options.options,\n })\n\n return result\n } catch (error) {\n // Storage failed\n if (error instanceof AnonCredsStoreRecordError) {\n failedReturnBase.revocationStatusListState.reason = `Error storing revocation status list records: ${error.message}`\n return failedReturnBase\n }\n\n failedReturnBase.revocationStatusListState.reason = `Error registering revocation status list: ${error.message}`\n return failedReturnBase\n }\n }\n\n public async getCredential(id: string) {\n return this.anonCredsHolderService.getCredential(this.agentContext, { id })\n }\n\n public async getCredentials(options: GetCredentialsOptions) {\n return this.anonCredsHolderService.getCredentials(this.agentContext, options)\n }\n\n private async storeRevocationRegistryDefinitionRecord(\n result: RegisterRevocationRegistryDefinitionReturn,\n revocationRegistryDefinitionPrivate?: Record<string, unknown>\n ): Promise<void> {\n try {\n // If we have both the revocationRegistryDefinition and the revocationRegistryDefinitionId we will store a copy\n // of the credential definition. We may need to handle an edge case in the future where we e.g. don't have the\n // id yet, and it is registered through a different channel\n if (\n result.revocationRegistryDefinitionState.revocationRegistryDefinition &&\n result.revocationRegistryDefinitionState.revocationRegistryDefinitionId\n ) {\n const revocationRegistryDefinitionRecord = new AnonCredsRevocationRegistryDefinitionRecord({\n revocationRegistryDefinitionId: result.revocationRegistryDefinitionState.revocationRegistryDefinitionId,\n revocationRegistryDefinition: result.revocationRegistryDefinitionState.revocationRegistryDefinition,\n })\n\n // TODO: do we need to store this metadata? For indy, the registration metadata contains e.g.\n // the indyLedgerSeqNo and the didIndyNamespace, but it can get quite big if complete transactions\n // are stored in the metadata\n revocationRegistryDefinitionRecord.metadata.set(\n AnonCredsRevocationRegistryDefinitionRecordMetadataKeys.RevocationRegistryDefinitionMetadata,\n result.revocationRegistryDefinitionMetadata\n )\n revocationRegistryDefinitionRecord.metadata.set(\n AnonCredsRevocationRegistryDefinitionRecordMetadataKeys.RevocationRegistryDefinitionRegistrationMetadata,\n result.registrationMetadata\n )\n\n await this.anonCredsRevocationRegistryDefinitionRepository.save(\n this.agentContext,\n revocationRegistryDefinitionRecord\n )\n\n // Store Revocation Registry Definition private data (if provided by issuer service)\n if (revocationRegistryDefinitionPrivate) {\n const revocationRegistryDefinitionPrivateRecord = new AnonCredsRevocationRegistryDefinitionPrivateRecord({\n revocationRegistryDefinitionId: result.revocationRegistryDefinitionState.revocationRegistryDefinitionId,\n credentialDefinitionId: result.revocationRegistryDefinitionState.revocationRegistryDefinition.credDefId,\n value: revocationRegistryDefinitionPrivate,\n state: AnonCredsRevocationRegistryState.Active,\n })\n await this.anonCredsRevocationRegistryDefinitionPrivateRepository.save(\n this.agentContext,\n revocationRegistryDefinitionPrivateRecord\n )\n }\n }\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing revocation registry definition records', { cause: error })\n }\n }\n\n private async storeCredentialDefinitionPrivateAndKeyCorrectnessRecord(\n result: RegisterCredentialDefinitionReturn,\n credentialDefinitionPrivate?: Record<string, unknown>,\n keyCorrectnessProof?: Record<string, unknown>\n ): Promise<void> {\n try {\n if (!result.credentialDefinitionState.credentialDefinitionId) return\n\n // Store Credential Definition private data (if provided by issuer service)\n if (credentialDefinitionPrivate) {\n const credentialDefinitionPrivateRecord = new AnonCredsCredentialDefinitionPrivateRecord({\n credentialDefinitionId: result.credentialDefinitionState.credentialDefinitionId,\n value: credentialDefinitionPrivate,\n })\n await this.anonCredsCredentialDefinitionPrivateRepository.save(\n this.agentContext,\n credentialDefinitionPrivateRecord\n )\n }\n\n if (keyCorrectnessProof) {\n const keyCorrectnessProofRecord = new AnonCredsKeyCorrectnessProofRecord({\n credentialDefinitionId: result.credentialDefinitionState.credentialDefinitionId,\n value: keyCorrectnessProof,\n })\n await this.anonCredsKeyCorrectnessProofRepository.save(this.agentContext, keyCorrectnessProofRecord)\n }\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing credential definition key-correctness-proof and private', {\n cause: error,\n })\n }\n }\n\n private async storeCredentialDefinitionRecord(\n registry: AnonCredsRegistry,\n result: RegisterCredentialDefinitionReturn\n ): Promise<void> {\n try {\n // If we have both the credentialDefinition and the credentialDefinitionId we will store a copy of the credential definition. We may need to handle an\n // edge case in the future where we e.g. don't have the id yet, and it is registered through a different channel\n if (\n !result.credentialDefinitionState.credentialDefinition ||\n !result.credentialDefinitionState.credentialDefinitionId\n ) {\n return\n }\n const credentialDefinitionRecord = new AnonCredsCredentialDefinitionRecord({\n credentialDefinitionId: result.credentialDefinitionState.credentialDefinitionId,\n credentialDefinition: result.credentialDefinitionState.credentialDefinition,\n methodName: registry.methodName,\n })\n\n // TODO: do we need to store this metadata? For indy, the registration metadata contains e.g.\n // the indyLedgerSeqNo and the didIndyNamespace, but it can get quite big if complete transactions\n // are stored in the metadata\n credentialDefinitionRecord.metadata.set(\n AnonCredsCredentialDefinitionRecordMetadataKeys.CredentialDefinitionMetadata,\n result.credentialDefinitionMetadata\n )\n credentialDefinitionRecord.metadata.set(\n AnonCredsCredentialDefinitionRecordMetadataKeys.CredentialDefinitionRegistrationMetadata,\n result.registrationMetadata\n )\n\n await this.anonCredsCredentialDefinitionRepository.save(this.agentContext, credentialDefinitionRecord)\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing credential definition records', { cause: error })\n }\n }\n\n private async storeSchemaRecord(registry: AnonCredsRegistry, result: RegisterSchemaReturn): Promise<void> {\n try {\n // If we have both the schema and the schemaId we will store a copy of the schema. We may need to handle an\n // edge case in the future where we e.g. don't have the id yet, and it is registered through a different channel\n if (result.schemaState.schema && result.schemaState.schemaId) {\n const schemaRecord = new AnonCredsSchemaRecord({\n schemaId: result.schemaState.schemaId,\n schema: result.schemaState.schema,\n methodName: registry.methodName,\n })\n\n await this.anonCredsSchemaRepository.save(this.agentContext, schemaRecord)\n }\n } catch (error) {\n throw new AnonCredsStoreRecordError('Error storing schema record', { cause: error })\n }\n }\n\n private findRegistryForIdentifier(identifier: string) {\n try {\n return this.anonCredsRegistryService.getRegistryForIdentifier(this.agentContext, identifier)\n } catch {\n return null\n }\n }\n}\n\nexport interface AnonCredsRegisterCredentialDefinitionApiOptions {\n supportRevocation: boolean\n}\n\ninterface AnonCredsRegisterCredentialDefinition<T extends Extensible = Extensible> {\n credentialDefinition: AnonCredsRegisterCredentialDefinitionOptions\n options: T & AnonCredsRegisterCredentialDefinitionApiOptions\n}\n\ninterface AnonCredsRegisterSchema<T extends Extensible = Extensible> {\n schema: AnonCredsSchema\n options: T\n}\n\ninterface AnonCredsRegisterRevocationRegistryDefinition<T extends Extensible = Extensible> {\n revocationRegistryDefinition: AnonCredsRegisterRevocationRegistryDefinitionOptions\n options: T\n}\n\ninterface AnonCredsRegisterRevocationStatusList<T extends Extensible = Extensible> {\n revocationStatusList: AnonCredsRegisterRevocationStatusListOptions\n options: T\n}\n\ninterface AnonCredsUpdateRevocationStatusList<T extends Extensible = Extensible> {\n revocationStatusList: AnonCredsUpdateRevocationStatusListOptions\n options: T\n}\n\nfunction isFullCredentialDefinitionInput(\n credentialDefinition: AnonCredsRegisterCredentialDefinitionOptions\n): credentialDefinition is AnonCredsCredentialDefinition {\n return 'value' in credentialDefinition\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.
|
|
1
|
+
//#region \0@oxc-project+runtime@0.99.0/helpers/decorate.js
|
|
2
2
|
function __decorate(decorators, target, key, desc) {
|
|
3
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.
|
|
1
|
+
//#region \0@oxc-project+runtime@0.99.0/helpers/decorateMetadata.js
|
|
2
2
|
function __decorateMetadata(k, v) {
|
|
3
3
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
4
4
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
2
2
|
import { AnonCredsHolderServiceSymbol } from "../services/AnonCredsHolderService.mjs";
|
|
3
3
|
import { AnonCredsVerifierServiceSymbol } from "../services/AnonCredsVerifierService.mjs";
|
|
4
4
|
import "../services/index.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnonCredsModuleConfig } from "../AnonCredsModuleConfig.mjs";
|
|
2
2
|
import { AnonCredsRsError } from "../error/AnonCredsRsError.mjs";
|
|
3
3
|
import "../error/index.mjs";
|
|
4
|
-
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.
|
|
4
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
5
5
|
import { isUnqualifiedCredentialDefinitionId, isUnqualifiedIndyDid, isUnqualifiedSchemaId, unqualifiedCredentialDefinitionIdRegex } from "../utils/indyIdentifiers.mjs";
|
|
6
6
|
import { AnonCredsCredentialRepository } from "../repository/AnonCredsCredentialRepository.mjs";
|
|
7
7
|
import { AnonCredsLinkSecretRepository } from "../repository/AnonCredsLinkSecretRepository.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnonCredsRsError } from "../error/AnonCredsRsError.mjs";
|
|
2
2
|
import "../error/index.mjs";
|
|
3
|
-
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.
|
|
3
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
4
4
|
import { AnonCredsCredentialDefinitionPrivateRepository } from "../repository/AnonCredsCredentialDefinitionPrivateRepository.mjs";
|
|
5
5
|
import { getUnqualifiedSchemaId, isUnqualifiedCredentialDefinitionId, parseIndyDid, parseIndySchemaId } from "../utils/indyIdentifiers.mjs";
|
|
6
6
|
import { AnonCredsCredentialDefinitionRepository } from "../repository/AnonCredsCredentialDefinitionRepository.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
2
2
|
import { fetchRevocationStatusList } from "../utils/anonCredsObjects.mjs";
|
|
3
3
|
import "../utils/index.mjs";
|
|
4
4
|
import { getRevocationMetadata } from "./utils.mjs";
|
|
@@ -91,7 +91,7 @@ var DataIntegrityDidCommCredentialFormatService = class {
|
|
|
91
91
|
const { didDocument, keys } = await agentContext.dependencyManager.resolve(DidsApi).resolveCreatedDidDocumentWithKeys(parsedDid.did);
|
|
92
92
|
const publicJwk = getPublicJwkFromVerificationMethod(didDocument.dereferenceKey(kid));
|
|
93
93
|
const keyId = keys?.find(({ didDocumentRelativeKeyId }) => didDocumentRelativeKeyId === `#${parsedDid.fragment}`)?.kmsKeyId ?? publicJwk.legacyKeyId;
|
|
94
|
-
if (alg && !publicJwk.supportedSignatureAlgorithms.includes(alg)) throw new CredoError(`jwk ${publicJwk.
|
|
94
|
+
if (alg && !publicJwk.supportedSignatureAlgorithms.includes(alg)) throw new CredoError(`jwk ${publicJwk.jwkTypeHumanDescription}, does not support the JWS signature alg '${alg}'`);
|
|
95
95
|
const signingAlg = issuerSupportedAlgs.find((supportedAlg) => publicJwk.supportedSignatureAlgorithms.includes(supportedAlg) && (alg === void 0 || alg === supportedAlg));
|
|
96
96
|
if (!signingAlg) throw new CredoError("No signing algorithm supported by the issuer found");
|
|
97
97
|
const jws = await agentContext.dependencyManager.resolve(JwsService).createJws(agentContext, {
|