@credo-ts/anoncreds 0.6.0-pr-2539-20251127090105 → 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.
Files changed (59) hide show
  1. package/build/AnonCredsApi.d.mts +5 -5
  2. package/build/AnonCredsApi.d.mts.map +1 -1
  3. package/build/AnonCredsApi.mjs +17 -97
  4. package/build/AnonCredsApi.mjs.map +1 -1
  5. package/build/_virtual/{_@oxc-project_runtime@0.97.0 → _@oxc-project_runtime@0.99.0}/helpers/decorate.mjs +1 -1
  6. package/build/_virtual/{_@oxc-project_runtime@0.97.0 → _@oxc-project_runtime@0.99.0}/helpers/decorateMetadata.mjs +1 -1
  7. package/build/_virtual/{_@oxc-project_runtime@0.97.0 → _@oxc-project_runtime@0.99.0}/helpers/decorateParam.mjs +1 -1
  8. package/build/anoncreds-rs/AnonCredsDataIntegrityService.mjs +1 -1
  9. package/build/anoncreds-rs/AnonCredsRsHolderService.mjs +1 -1
  10. package/build/anoncreds-rs/AnonCredsRsIssuerService.mjs +1 -1
  11. package/build/anoncreds-rs/AnonCredsRsVerifierService.mjs +1 -1
  12. package/build/formats/DataIntegrityDidCommCredentialFormatService.mjs +1 -1
  13. package/build/formats/DataIntegrityDidCommCredentialFormatService.mjs.map +1 -1
  14. package/build/models/AnonCredsCredentialProposal.mjs +2 -2
  15. package/build/models/AnonCredsProofRequest.mjs +2 -2
  16. package/build/models/AnonCredsRequestedAttribute.mjs +2 -2
  17. package/build/models/AnonCredsRequestedPredicate.mjs +2 -2
  18. package/build/models/AnonCredsRestriction.mjs +2 -2
  19. package/build/models/AnonCredsRestrictionWrapper.mjs +2 -2
  20. package/build/models/AnonCredsRevocationInterval.mjs +2 -2
  21. package/build/protocols/credentials/v1/messages/DidCommCredentialV1AckMessage.d.mts +2 -2
  22. package/build/protocols/credentials/v1/messages/DidCommCredentialV1AckMessage.mjs +2 -2
  23. package/build/protocols/credentials/v1/messages/DidCommCredentialV1Preview.d.mts +2 -2
  24. package/build/protocols/credentials/v1/messages/DidCommCredentialV1Preview.mjs +2 -2
  25. package/build/protocols/credentials/v1/messages/DidCommCredentialV1ProblemReportMessage.d.mts +2 -2
  26. package/build/protocols/credentials/v1/messages/DidCommCredentialV1ProblemReportMessage.mjs +2 -2
  27. package/build/protocols/credentials/v1/messages/DidCommIssueCredentialV1Message.d.mts +2 -2
  28. package/build/protocols/credentials/v1/messages/DidCommIssueCredentialV1Message.mjs +2 -2
  29. package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.d.mts +2 -2
  30. package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.d.mts.map +1 -1
  31. package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.mjs +2 -2
  32. package/build/protocols/credentials/v1/messages/DidCommProposeCredentialV1Message.d.mts +2 -2
  33. package/build/protocols/credentials/v1/messages/DidCommProposeCredentialV1Message.mjs +2 -2
  34. package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.d.mts +2 -2
  35. package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.d.mts.map +1 -1
  36. package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.mjs +2 -2
  37. package/build/protocols/proofs/v1/messages/DidCommPresentationV1AckMessage.mjs +2 -2
  38. package/build/protocols/proofs/v1/messages/DidCommPresentationV1Message.mjs +2 -2
  39. package/build/protocols/proofs/v1/messages/DidCommPresentationV1ProblemReportMessage.mjs +2 -2
  40. package/build/protocols/proofs/v1/messages/DidCommProposePresentationV1Message.mjs +2 -2
  41. package/build/protocols/proofs/v1/messages/DidCommRequestPresentationV1Message.mjs +2 -2
  42. package/build/protocols/proofs/v1/models/DidCommPresentationV1Preview.mjs +2 -2
  43. package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.mjs +3 -3
  44. package/build/repository/AnonCredsCredentialDefinitionRepository.mjs +3 -3
  45. package/build/repository/AnonCredsCredentialRepository.mjs +3 -3
  46. package/build/repository/AnonCredsKeyCorrectnessProofRepository.mjs +3 -3
  47. package/build/repository/AnonCredsLinkSecretRepository.mjs +3 -3
  48. package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.mjs +3 -3
  49. package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.mjs +3 -3
  50. package/build/repository/AnonCredsSchemaRepository.mjs +3 -3
  51. package/build/services/registry/AnonCredsRegistry.d.mts +14 -2
  52. package/build/services/registry/AnonCredsRegistry.d.mts.map +1 -1
  53. package/build/services/registry/AnonCredsRegistryService.d.mts +11 -1
  54. package/build/services/registry/AnonCredsRegistryService.d.mts.map +1 -1
  55. package/build/services/registry/AnonCredsRegistryService.mjs +209 -2
  56. package/build/services/registry/AnonCredsRegistryService.mjs.map +1 -1
  57. package/build/services/registry/base.d.mts +43 -1
  58. package/build/services/registry/base.d.mts.map +1 -1
  59. package/package.json +6 -10
@@ -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":"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"}
1
+ {"version":3,"file":"AnonCredsApi.d.mts","names":[],"sources":["../src/AnonCredsApi.ts"],"sourcesContent":[],"mappings":"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"}
@@ -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.97.0/helpers/decorateMetadata.mjs";
6
- import { __decorateParam } from "./_virtual/_@oxc-project_runtime@0.97.0/helpers/decorateParam.mjs";
7
- import { __decorate } from "./_virtual/_@oxc-project_runtime@0.97.0/helpers/decorate.mjs";
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
- const failedReturnBase = {
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
- const failedReturnBase = {
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 schemaRegistry = this.findRegistryForIdentifier(options.credentialDefinition.schemaId);
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
- }, { indyLedgerSchemaSeqNo: schemaResult.schemaMetadata.indyLedgerSeqNo });
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
- const failedReturnBase = {
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 registry.getCredentialDefinition(this.agentContext, credentialDefinitionId);
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
- const failedReturnBase = {
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 registry.getRevocationRegistryDefinition(this.agentContext, revocationRegistryDefinitionId);
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 registry.getRevocationRegistryDefinition(this.agentContext, revocationRegistryDefinitionId);
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.97.0/helpers/decorate.js
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.97.0/helpers/decorateMetadata.js
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
- //#region \0@oxc-project+runtime@0.97.0/helpers/decorateParam.js
1
+ //#region \0@oxc-project+runtime@0.99.0/helpers/decorateParam.js
2
2
  function __decorateParam(paramIndex, decorator) {
3
3
  return function(target, key) {
4
4
  decorator(target, key, paramIndex);
@@ -1,4 +1,4 @@
1
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.97.0/helpers/decorate.mjs";
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.97.0/helpers/decorate.mjs";
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.97.0/helpers/decorate.mjs";
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.97.0/helpers/decorate.mjs";
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.jwkTypehumanDescription}, does not support the JWS signature alg '${alg}'`);
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, {