@credo-ts/core 0.6.0-pr-2094-20241124155338 → 0.6.0-pr-2100-20241125134343

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 (63) hide show
  1. package/build/agent/AgentModules.d.ts +2 -0
  2. package/build/agent/AgentModules.js +2 -0
  3. package/build/agent/AgentModules.js.map +1 -1
  4. package/build/index.d.ts +1 -0
  5. package/build/index.js +1 -0
  6. package/build/index.js.map +1 -1
  7. package/build/modules/dcql/DcqlError.d.ts +8 -0
  8. package/build/modules/dcql/DcqlError.js +12 -0
  9. package/build/modules/dcql/DcqlError.js.map +1 -0
  10. package/build/modules/dcql/DcqlModule.d.ts +10 -0
  11. package/build/modules/dcql/DcqlModule.js +23 -0
  12. package/build/modules/dcql/DcqlModule.js.map +1 -0
  13. package/build/modules/dcql/DcqlService.d.ts +140 -0
  14. package/build/modules/dcql/DcqlService.js +253 -0
  15. package/build/modules/dcql/DcqlService.js.map +1 -0
  16. package/build/modules/dcql/index.d.ts +5 -0
  17. package/build/modules/dcql/index.js +22 -0
  18. package/build/modules/dcql/index.js.map +1 -0
  19. package/build/modules/dcql/models/DcqlCredentialsForRequest.d.ts +20 -0
  20. package/build/modules/dcql/models/DcqlCredentialsForRequest.js +3 -0
  21. package/build/modules/dcql/models/DcqlCredentialsForRequest.js.map +1 -0
  22. package/build/modules/dcql/models/index.d.ts +20 -0
  23. package/build/modules/dcql/models/index.js +18 -0
  24. package/build/modules/dcql/models/index.js.map +1 -0
  25. package/build/modules/dcql/utils/DcqlPresentationsToCreate.d.ts +31 -0
  26. package/build/modules/dcql/utils/DcqlPresentationsToCreate.js +36 -0
  27. package/build/modules/dcql/utils/DcqlPresentationsToCreate.js.map +1 -0
  28. package/build/modules/dcql/utils/index.d.ts +1 -0
  29. package/build/modules/dcql/utils/index.js +18 -0
  30. package/build/modules/dcql/utils/index.js.map +1 -0
  31. package/build/modules/dif-presentation-exchange/utils/transform.d.ts +4 -2
  32. package/build/modules/dif-presentation-exchange/utils/transform.js +2 -19
  33. package/build/modules/dif-presentation-exchange/utils/transform.js.map +1 -1
  34. package/build/modules/mdoc/Mdoc.d.ts +14 -0
  35. package/build/modules/mdoc/Mdoc.js +23 -0
  36. package/build/modules/mdoc/Mdoc.js.map +1 -1
  37. package/build/modules/mdoc/MdocDeviceResponse.d.ts +14 -1
  38. package/build/modules/mdoc/MdocDeviceResponse.js +31 -4
  39. package/build/modules/mdoc/MdocDeviceResponse.js.map +1 -1
  40. package/build/modules/mdoc/MdocOptions.d.ts +12 -0
  41. package/build/modules/mdoc/mdocUtil.d.ts +1 -0
  42. package/build/modules/mdoc/mdocUtil.js +7 -0
  43. package/build/modules/mdoc/mdocUtil.js.map +1 -0
  44. package/build/modules/mdoc/repository/MdocRecord.d.ts +8 -0
  45. package/build/modules/mdoc/repository/MdocRecord.js +12 -0
  46. package/build/modules/mdoc/repository/MdocRecord.js.map +1 -1
  47. package/build/modules/sd-jwt-vc/SdJwtVcApi.d.ts +2 -0
  48. package/build/modules/sd-jwt-vc/SdJwtVcService.d.ts +12 -0
  49. package/build/modules/sd-jwt-vc/SdJwtVcService.js +29 -0
  50. package/build/modules/sd-jwt-vc/SdJwtVcService.js.map +1 -1
  51. package/build/modules/sd-jwt-vc/decodeSdJwtVc.d.ts +2 -7
  52. package/build/modules/sd-jwt-vc/decodeSdJwtVc.js +3 -0
  53. package/build/modules/sd-jwt-vc/decodeSdJwtVc.js.map +1 -1
  54. package/build/modules/sd-jwt-vc/disclosureFrame.d.ts +5 -0
  55. package/build/modules/sd-jwt-vc/disclosureFrame.js +32 -0
  56. package/build/modules/sd-jwt-vc/disclosureFrame.js.map +1 -0
  57. package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.d.ts +8 -1
  58. package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.js +10 -1
  59. package/build/modules/sd-jwt-vc/repository/SdJwtVcRecord.js.map +1 -1
  60. package/build/modules/vc/repository/W3cCredentialRecord.d.ts +4 -0
  61. package/build/modules/vc/repository/W3cCredentialRecord.js +6 -0
  62. package/build/modules/vc/repository/W3cCredentialRecord.js.map +1 -1
  63. package/package.json +3 -1
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DcqlCredentialsForRequest"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/dcql/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C"}
@@ -0,0 +1,31 @@
1
+ import type { SdJwtVcRecord } from '../../sd-jwt-vc';
2
+ import type { DcqlCredentialsForRequest } from '../models';
3
+ import type { DcqlSdJwtVcCredential, DcqlMdocCredential, DcqlW3cVcCredential } from 'dcql';
4
+ import { MdocRecord } from '../../mdoc';
5
+ import { W3cCredentialRecord, ClaimFormat } from '../../vc';
6
+ export interface DcqlSdJwtVcPresentationToCreate {
7
+ claimFormat: ClaimFormat.SdJwtVc;
8
+ subjectIds: [];
9
+ credentialRecord: SdJwtVcRecord;
10
+ disclosedPayload: DcqlSdJwtVcCredential.Claims;
11
+ }
12
+ export interface DcqlJwtVpPresentationToCreate {
13
+ claimFormat: ClaimFormat.JwtVp;
14
+ subjectIds: [string];
15
+ credentialRecord: W3cCredentialRecord;
16
+ disclosedPayload: DcqlW3cVcCredential.Claims;
17
+ }
18
+ export interface DcqlLdpVpPresentationToCreate {
19
+ claimFormat: ClaimFormat.LdpVp;
20
+ subjectIds: undefined | [string];
21
+ credentialRecord: W3cCredentialRecord;
22
+ disclosedPayload: DcqlW3cVcCredential.Claims;
23
+ }
24
+ export interface DcqlMdocPresentationToCreate {
25
+ claimFormat: ClaimFormat.MsoMdoc;
26
+ subjectIds: [];
27
+ credentialRecord: MdocRecord;
28
+ disclosedPayload: DcqlMdocCredential.NameSpaces;
29
+ }
30
+ export type DcqlPresentationToCreate = Record<string, DcqlSdJwtVcPresentationToCreate | DcqlJwtVpPresentationToCreate | DcqlLdpVpPresentationToCreate | DcqlMdocPresentationToCreate>;
31
+ export declare function dcqlGetPresentationsToCreate(credentialsForInputDescriptor: DcqlCredentialsForRequest): DcqlPresentationToCreate;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dcqlGetPresentationsToCreate = dcqlGetPresentationsToCreate;
4
+ const mdoc_1 = require("../../mdoc");
5
+ const vc_1 = require("../../vc");
6
+ function dcqlGetPresentationsToCreate(credentialsForInputDescriptor) {
7
+ const presentationsToCreate = {};
8
+ for (const [credentialQueryId, match] of Object.entries(credentialsForInputDescriptor)) {
9
+ if (match.credentialRecord instanceof vc_1.W3cCredentialRecord) {
10
+ presentationsToCreate[credentialQueryId] = {
11
+ claimFormat: match.credentialRecord.credential.claimFormat === vc_1.ClaimFormat.JwtVc ? vc_1.ClaimFormat.JwtVp : vc_1.ClaimFormat.LdpVp,
12
+ subjectIds: [match.credentialRecord.credential.credentialSubjectIds[0]],
13
+ credentialRecord: match.credentialRecord,
14
+ disclosedPayload: match.disclosedPayload,
15
+ };
16
+ }
17
+ else if (match.credentialRecord instanceof mdoc_1.MdocRecord) {
18
+ presentationsToCreate[credentialQueryId] = {
19
+ claimFormat: vc_1.ClaimFormat.MsoMdoc,
20
+ subjectIds: [],
21
+ credentialRecord: match.credentialRecord,
22
+ disclosedPayload: match.disclosedPayload,
23
+ };
24
+ }
25
+ else {
26
+ presentationsToCreate[credentialQueryId] = {
27
+ claimFormat: vc_1.ClaimFormat.SdJwtVc,
28
+ subjectIds: [],
29
+ credentialRecord: match.credentialRecord,
30
+ disclosedPayload: match.disclosedPayload,
31
+ };
32
+ }
33
+ }
34
+ return presentationsToCreate;
35
+ }
36
+ //# sourceMappingURL=DcqlPresentationsToCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DcqlPresentationsToCreate.js","sourceRoot":"","sources":["../../../../src/modules/dcql/utils/DcqlPresentationsToCreate.ts"],"names":[],"mappings":";;AA8CA,oEA+BC;AAzED,qCAAuC;AACvC,iCAA2D;AAyC3D,SAAgB,4BAA4B,CAC1C,6BAAwD;IAExD,MAAM,qBAAqB,GAA6B,EAAE,CAAA;IAC1D,KAAK,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC;QACvF,IAAI,KAAK,CAAC,gBAAgB,YAAY,wBAAmB,EAAE,CAAC;YAC1D,qBAAqB,CAAC,iBAAiB,CAAC,GAAG;gBACzC,WAAW,EACT,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,KAAK,gBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAW,CAAC,KAAK;gBAC7G,UAAU,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACvE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAA8C;aACvE,CAAA;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,gBAAgB,YAAY,iBAAU,EAAE,CAAC;YACxD,qBAAqB,CAAC,iBAAiB,CAAC,GAAG;gBACzC,WAAW,EAAE,gBAAW,CAAC,OAAO;gBAChC,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAiD;aAC1E,CAAA;QACH,CAAC;aAAM,CAAC;YACN,qBAAqB,CAAC,iBAAiB,CAAC,GAAG;gBACzC,WAAW,EAAE,gBAAW,CAAC,OAAO;gBAChC,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAA8C;aACvE,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,qBAAqB,CAAA;AAC9B,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './DcqlPresentationsToCreate';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DcqlPresentationsToCreate"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/dcql/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C"}
@@ -1,10 +1,12 @@
1
1
  import type { AgentContext } from '../../../agent';
2
+ import type { MdocRecord } from '../../mdoc';
2
3
  import type { SdJwtVcRecord } from '../../sd-jwt-vc';
4
+ import type { W3cCredentialRecord } from '../../vc';
3
5
  import type { W3cJsonPresentation } from '../../vc/models/presentation/W3cJsonPresentation';
4
6
  import type { VerifiablePresentation } from '../models';
5
7
  import type { OriginalVerifiableCredential as SphereonOriginalVerifiableCredential, OriginalVerifiablePresentation as SphereonOriginalVerifiablePresentation, W3CVerifiablePresentation as SphereonW3CVerifiablePresentation } from '@sphereon/ssi-types';
6
- import { MdocDeviceResponse, MdocRecord } from '../../mdoc';
7
- import { W3cCredentialRecord, W3cJsonLdVerifiablePresentation, W3cJwtVerifiablePresentation } from '../../vc';
8
+ import { MdocDeviceResponse } from '../../mdoc';
9
+ import { W3cJsonLdVerifiablePresentation, W3cJwtVerifiablePresentation } from '../../vc';
8
10
  export declare function getSphereonOriginalVerifiableCredential(credentialRecord: W3cCredentialRecord | SdJwtVcRecord | MdocRecord): SphereonOriginalVerifiableCredential;
9
11
  export declare function getSphereonOriginalVerifiablePresentation(verifiablePresentation: VerifiablePresentation): SphereonOriginalVerifiablePresentation;
10
12
  export declare function getVerifiablePresentationFromEncoded(agentContext: AgentContext, encodedVerifiablePresentation: string | W3cJsonPresentation | SphereonW3CVerifiablePresentation): MdocDeviceResponse | import("../../sd-jwt-vc").SdJwtVc<import("../../sd-jwt-vc").SdJwtVcHeader, import("../../sd-jwt-vc").SdJwtVcPayload> | W3cJsonLdVerifiablePresentation | W3cJwtVerifiablePresentation;
@@ -9,27 +9,10 @@ const mdoc_1 = require("../../mdoc");
9
9
  const sd_jwt_vc_1 = require("../../sd-jwt-vc");
10
10
  const vc_1 = require("../../vc");
11
11
  function getSphereonOriginalVerifiableCredential(credentialRecord) {
12
- if (credentialRecord instanceof vc_1.W3cCredentialRecord) {
13
- return credentialRecord.credential.encoded;
14
- }
15
- else if (credentialRecord instanceof mdoc_1.MdocRecord) {
16
- return credentialRecord.base64Url;
17
- }
18
- else {
19
- return credentialRecord.compactSdJwtVc;
20
- }
12
+ return credentialRecord.encoded;
21
13
  }
22
14
  function getSphereonOriginalVerifiablePresentation(verifiablePresentation) {
23
- if (verifiablePresentation instanceof vc_1.W3cJwtVerifiablePresentation ||
24
- verifiablePresentation instanceof vc_1.W3cJsonLdVerifiablePresentation) {
25
- return verifiablePresentation.encoded;
26
- }
27
- else if (verifiablePresentation instanceof mdoc_1.MdocDeviceResponse) {
28
- return verifiablePresentation.base64Url;
29
- }
30
- else {
31
- return verifiablePresentation.compact;
32
- }
15
+ return verifiablePresentation.encoded;
33
16
  }
34
17
  // TODO: we might want to move this to some generic vc transformation util
35
18
  function getVerifiablePresentationFromEncoded(agentContext, encodedVerifiablePresentation) {
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/modules/dif-presentation-exchange/utils/transform.ts"],"names":[],"mappings":";;AAgBA,0FAUC;AAED,8FAaC;AAGD,oFAcC;AAhDD,4CAAqC;AACrC,0CAAgD;AAChD,qCAA2D;AAC3D,+CAA4C;AAC5C,iCAA6G;AAE7G,SAAgB,uCAAuC,CACrD,gBAAkE;IAElE,IAAI,gBAAgB,YAAY,wBAAmB,EAAE,CAAC;QACpD,OAAO,gBAAgB,CAAC,UAAU,CAAC,OAA+C,CAAA;IACpF,CAAC;SAAM,IAAI,gBAAgB,YAAY,iBAAU,EAAE,CAAC;QAClD,OAAO,gBAAgB,CAAC,SAAS,CAAA;IACnC,CAAC;SAAM,CAAC;QACN,OAAO,gBAAgB,CAAC,cAAc,CAAA;IACxC,CAAC;AACH,CAAC;AAED,SAAgB,yCAAyC,CACvD,sBAA8C;IAE9C,IACE,sBAAsB,YAAY,iCAA4B;QAC9D,sBAAsB,YAAY,oCAA+B,EACjE,CAAC;QACD,OAAO,sBAAsB,CAAC,OAAiD,CAAA;IACjF,CAAC;SAAM,IAAI,sBAAsB,YAAY,yBAAkB,EAAE,CAAC;QAChE,OAAO,sBAAsB,CAAC,SAAS,CAAA;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,sBAAsB,CAAC,OAAO,CAAA;IACvC,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAgB,oCAAoC,CAClD,YAA0B,EAC1B,6BAA+F;IAE/F,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,6BAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrG,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,sBAAU,CAAC,CAAA;QACrE,OAAO,UAAU,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAA;IAC9D,CAAC;SAAM,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,YAAG,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC;QAC/G,OAAO,iCAA4B,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,CAAA;IACtF,CAAC;SAAM,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,UAAU,IAAI,6BAA6B,EAAE,CAAC;QAC5G,OAAO,uBAAe,CAAC,QAAQ,CAAC,6BAA6B,EAAE,oCAA+B,CAAC,CAAA;IACjG,CAAC;SAAM,CAAC;QACN,OAAO,yBAAkB,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAA;IACxE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/modules/dif-presentation-exchange/utils/transform.ts"],"names":[],"mappings":";;AAkBA,0FAIC;AAED,8FAIC;AAGD,oFAcC;AAjCD,4CAAqC;AACrC,0CAAgD;AAChD,qCAA+C;AAC/C,+CAA4C;AAC5C,iCAAwF;AAExF,SAAgB,uCAAuC,CACrD,gBAAkE;IAElE,OAAO,gBAAgB,CAAC,OAA+C,CAAA;AACzE,CAAC;AAED,SAAgB,yCAAyC,CACvD,sBAA8C;IAE9C,OAAO,sBAAsB,CAAC,OAAiD,CAAA;AACjF,CAAC;AAED,0EAA0E;AAC1E,SAAgB,oCAAoC,CAClD,YAA0B,EAC1B,6BAA+F;IAE/F,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,6BAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrG,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,sBAAU,CAAC,CAAA;QACrE,OAAO,UAAU,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAA;IAC9D,CAAC;SAAM,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,YAAG,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC;QAC/G,OAAO,iCAA4B,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,CAAA;IACtF,CAAC;SAAM,IAAI,OAAO,6BAA6B,KAAK,QAAQ,IAAI,UAAU,IAAI,6BAA6B,EAAE,CAAC;QAC5G,OAAO,uBAAe,CAAC,QAAQ,CAAC,6BAA6B,EAAE,oCAA+B,CAAC,CAAA;IACjG,CAAC;SAAM,CAAC;QACN,OAAO,yBAAkB,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAA;IACxE,CAAC;AACH,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { MdocSignOptions, MdocNameSpaces, MdocVerifyOptions } from './MdocOptions';
2
2
  import type { AgentContext } from '../../agent';
3
+ import type { Key } from '../../crypto';
3
4
  import { JwaSignatureAlgorithm } from '../../crypto';
5
+ import { ClaimFormat } from '../vc';
4
6
  /**
5
7
  * This class represents a IssuerSigned Mdoc Document,
6
8
  * which are the actual credentials being issued to holders.
@@ -9,10 +11,22 @@ export declare class Mdoc {
9
11
  private issuerSignedDocument;
10
12
  base64Url: string;
11
13
  private constructor();
14
+ /**
15
+ * claim format is convenience method added to all credential instances
16
+ */
17
+ get claimFormat(): ClaimFormat.MsoMdoc;
18
+ /**
19
+ * Encoded is convenience method added to all credential instances
20
+ */
21
+ get encoded(): string;
12
22
  static fromBase64Url(mdocBase64Url: string, expectedDocType?: string): Mdoc;
13
23
  static fromIssuerSignedDocument(issuerSignedBase64Url: string, expectedDocType?: string): Mdoc;
14
24
  static fromDeviceSignedDocument(issuerSignedBase64Url: string, deviceSignedBase64Url: string, expectedDocType?: string): Mdoc;
15
25
  get docType(): string;
26
+ /**
27
+ * Get the device key to which the mdoc is bound
28
+ */
29
+ get deviceKey(): Key | null;
16
30
  get alg(): JwaSignatureAlgorithm;
17
31
  get validityInfo(): import("@animo-id/mdoc").ValidityInfo;
18
32
  get deviceSignedNamespaces(): MdocNameSpaces;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Mdoc = void 0;
4
4
  const mdoc_1 = require("@animo-id/mdoc");
5
5
  const crypto_1 = require("../../crypto");
6
+ const vc_1 = require("../vc");
6
7
  const x509_1 = require("../x509");
7
8
  const utils_1 = require("./../../utils");
8
9
  const MdocContext_1 = require("./MdocContext");
@@ -17,6 +18,18 @@ class Mdoc {
17
18
  const issuerSigned = issuerSignedDocument.prepare().get('issuerSigned');
18
19
  this.base64Url = utils_1.TypedArrayEncoder.toBase64URL((0, mdoc_1.cborEncode)(issuerSigned));
19
20
  }
21
+ /**
22
+ * claim format is convenience method added to all credential instances
23
+ */
24
+ get claimFormat() {
25
+ return vc_1.ClaimFormat.MsoMdoc;
26
+ }
27
+ /**
28
+ * Encoded is convenience method added to all credential instances
29
+ */
30
+ get encoded() {
31
+ return this.base64Url;
32
+ }
20
33
  static fromBase64Url(mdocBase64Url, expectedDocType) {
21
34
  const issuerSignedDocument = (0, mdoc_1.parseIssuerSigned)(utils_1.TypedArrayEncoder.fromBase64(mdocBase64Url), expectedDocType);
22
35
  return new Mdoc(issuerSignedDocument);
@@ -32,6 +45,16 @@ class Mdoc {
32
45
  get docType() {
33
46
  return this.issuerSignedDocument.docType;
34
47
  }
48
+ /**
49
+ * Get the device key to which the mdoc is bound
50
+ */
51
+ get deviceKey() {
52
+ var _a;
53
+ const deviceKeyRaw = (_a = this.issuerSignedDocument.issuerSigned.issuerAuth.decodedPayload.deviceKeyInfo) === null || _a === void 0 ? void 0 : _a.deviceKey;
54
+ if (!deviceKeyRaw)
55
+ return null;
56
+ return (0, crypto_1.getJwkFromJson)(mdoc_1.COSEKey.import(deviceKeyRaw).toJWK()).key;
57
+ }
35
58
  get alg() {
36
59
  const algName = this.issuerSignedDocument.issuerSigned.issuerAuth.algName;
37
60
  if (!algName) {
@@ -1 +1 @@
1
- {"version":3,"file":"Mdoc.js","sourceRoot":"","sources":["../../../src/modules/mdoc/Mdoc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mdoc.js","sourceRoot":"","sources":["../../../src/modules/mdoc/Mdoc.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,21 @@
1
- import type { MdocDeviceResponseOpenId4VpOptions, MdocDeviceResponseVerifyOptions } from './MdocOptions';
1
+ import type { MdocDcqlDeviceResponseOpenId4VpOptions, MdocDeviceResponseOpenId4VpOptions, MdocDeviceResponseVerifyOptions } from './MdocOptions';
2
2
  import type { AgentContext } from '../../agent';
3
3
  import type { DifPresentationExchangeDefinition } from '../dif-presentation-exchange';
4
4
  import type { InputDescriptorV2 } from '@sphereon/pex-models';
5
+ import { ClaimFormat } from '../vc';
5
6
  import { Mdoc } from './Mdoc';
6
7
  export declare class MdocDeviceResponse {
7
8
  base64Url: string;
8
9
  documents: Mdoc[];
9
10
  private constructor();
11
+ /**
12
+ * claim format is convenience method added to all credential instances
13
+ */
14
+ get claimFormat(): ClaimFormat.MsoMdoc;
15
+ /**
16
+ * Encoded is convenience method added to all credential instances
17
+ */
18
+ get encoded(): string;
10
19
  static fromBase64Url(base64Url: string): MdocDeviceResponse;
11
20
  private static assertMdocInputDescriptor;
12
21
  static partitionPresentationDefinition: (pd: DifPresentationExchangeDefinition) => {
@@ -93,6 +102,10 @@ export declare class MdocDeviceResponse {
93
102
  [k: string]: unknown;
94
103
  };
95
104
  };
105
+ private static createDeviceResponse;
106
+ static createOpenId4VpDcqlDeviceResponse(agentContext: AgentContext, options: MdocDcqlDeviceResponseOpenId4VpOptions): Promise<{
107
+ deviceResponseBase64Url: string;
108
+ }>;
96
109
  static createOpenId4VpDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseOpenId4VpOptions): Promise<{
97
110
  deviceResponseBase64Url: string;
98
111
  presentationSubmission: {
@@ -5,17 +5,31 @@ exports.MdocDeviceResponse = void 0;
5
5
  const mdoc_1 = require("@animo-id/mdoc");
6
6
  const error_1 = require("../../error");
7
7
  const uuid_1 = require("../../utils/uuid");
8
+ const vc_1 = require("../vc");
8
9
  const X509Certificate_1 = require("../x509/X509Certificate");
9
10
  const X509ModuleConfig_1 = require("../x509/X509ModuleConfig");
10
11
  const utils_1 = require("./../../utils");
11
12
  const Mdoc_1 = require("./Mdoc");
12
13
  const MdocContext_1 = require("./MdocContext");
13
14
  const MdocError_1 = require("./MdocError");
15
+ const mdocUtil_1 = require("./mdocUtil");
14
16
  class MdocDeviceResponse {
15
17
  constructor(base64Url, documents) {
16
18
  this.base64Url = base64Url;
17
19
  this.documents = documents;
18
20
  }
21
+ /**
22
+ * claim format is convenience method added to all credential instances
23
+ */
24
+ get claimFormat() {
25
+ return vc_1.ClaimFormat.MsoMdoc;
26
+ }
27
+ /**
28
+ * Encoded is convenience method added to all credential instances
29
+ */
30
+ get encoded() {
31
+ return this.base64Url;
32
+ }
19
33
  static fromBase64Url(base64Url) {
20
34
  const parsed = (0, mdoc_1.parseDeviceResponse)(utils_1.TypedArrayEncoder.fromBase64(base64Url));
21
35
  if (parsed.status !== mdoc_1.MDocStatus.OK) {
@@ -81,10 +95,9 @@ class MdocDeviceResponse {
81
95
  }));
82
96
  return disclosedPayloadAsRecord;
83
97
  }
84
- static async createOpenId4VpDeviceResponse(agentContext, options) {
98
+ static async createDeviceResponse(agentContext, options) {
85
99
  var _b;
86
100
  const { sessionTranscriptOptions } = options;
87
- const presentationDefinition = this.partitionPresentationDefinition(options.presentationDefinition).mdocPresentationDefinition;
88
101
  const issuerSignedDocuments = options.mdocs.map((mdoc) => (0, mdoc_1.parseIssuerSigned)(utils_1.TypedArrayEncoder.fromBase64(mdoc.base64Url), mdoc.docType));
89
102
  const mdoc = new mdoc_1.MDoc(issuerSignedDocuments);
90
103
  // TODO: we need to implement this differently.
@@ -96,15 +109,29 @@ class MdocDeviceResponse {
96
109
  }
97
110
  const publicDeviceJwk = mdoc_1.COSEKey.import(deviceKeyInfo.deviceKey).toJWK();
98
111
  const deviceResponseBuilder = mdoc_1.DeviceResponse.from(mdoc)
99
- .usingPresentationDefinition(presentationDefinition)
100
112
  .usingSessionTranscriptForOID4VP(sessionTranscriptOptions)
101
113
  .authenticateWithSignature(publicDeviceJwk, 'ES256');
114
+ if (options.presentationDefinition) {
115
+ deviceResponseBuilder.usingPresentationDefinition(options.presentationDefinition);
116
+ }
117
+ else if (options.docRequests) {
118
+ const deviceRequest = mdoc_1.DeviceRequest.from('1.0', options.docRequests.map((r) => (Object.assign(Object.assign({}, r), { itemsRequestData: Object.assign(Object.assign({}, r.itemsRequestData), { nameSpaces: (0, mdocUtil_1.nameSpacesRecordToMap)(r.itemsRequestData.nameSpaces) }) }))));
119
+ deviceResponseBuilder.usingDeviceRequest(deviceRequest);
120
+ }
102
121
  for (const [nameSpace, nameSpaceValue] of Object.entries((_b = options.deviceNameSpaces) !== null && _b !== void 0 ? _b : {})) {
103
122
  deviceResponseBuilder.addDeviceNameSpace(nameSpace, nameSpaceValue);
104
123
  }
105
124
  const deviceResponseMdoc = await deviceResponseBuilder.sign((0, MdocContext_1.getMdocContext)(agentContext));
125
+ return { deviceResponseBase64Url: utils_1.TypedArrayEncoder.toBase64URL(deviceResponseMdoc.encode()) };
126
+ }
127
+ static async createOpenId4VpDcqlDeviceResponse(agentContext, options) {
128
+ return this.createDeviceResponse(agentContext, Object.assign(Object.assign({}, options), { docRequests: [options.docRequest], mdocs: [options.mdoc] }));
129
+ }
130
+ static async createOpenId4VpDeviceResponse(agentContext, options) {
131
+ const presentationDefinition = this.partitionPresentationDefinition(options.presentationDefinition).mdocPresentationDefinition;
132
+ const { deviceResponseBase64Url } = await this.createDeviceResponse(agentContext, Object.assign(Object.assign({}, options), { presentationDefinition }));
106
133
  return {
107
- deviceResponseBase64Url: utils_1.TypedArrayEncoder.toBase64URL(deviceResponseMdoc.encode()),
134
+ deviceResponseBase64Url,
108
135
  presentationSubmission: _a.createPresentationSubmission({
109
136
  id: 'MdocPresentationSubmission ' + (0, uuid_1.uuid)(),
110
137
  presentationDefinition,
@@ -1 +1 @@
1
- {"version":3,"file":"MdocDeviceResponse.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocDeviceResponse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MdocDeviceResponse.js","sourceRoot":"","sources":["../../../src/modules/mdoc/MdocDeviceResponse.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,18 @@ export type MdocDeviceResponseOpenId4VpOptions = {
26
26
  deviceNameSpaces?: MdocNameSpaces;
27
27
  sessionTranscriptOptions: MdocOpenId4VpSessionTranscriptOptions;
28
28
  };
29
+ export type MdocDocRequest = {
30
+ itemsRequestData: {
31
+ docType: string;
32
+ nameSpaces: Record<string, Record<string, boolean>>;
33
+ };
34
+ };
35
+ export type MdocDcqlDeviceResponseOpenId4VpOptions = {
36
+ mdoc: Mdoc;
37
+ docRequest: MdocDocRequest;
38
+ deviceNameSpaces?: MdocNameSpaces;
39
+ sessionTranscriptOptions: MdocOpenId4VpSessionTranscriptOptions;
40
+ };
29
41
  export type MdocDeviceResponseVerifyOptions = {
30
42
  trustedCertificates?: [string, ...string[]];
31
43
  sessionTranscriptOptions: MdocOpenId4VpSessionTranscriptOptions;
@@ -0,0 +1 @@
1
+ export declare function nameSpacesRecordToMap<NamespaceValue extends unknown, NameSpaces extends Record<string, Record<string, NamespaceValue>>>(nameSpaces: NameSpaces): Map<string, Map<string, NamespaceValue>>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nameSpacesRecordToMap = nameSpacesRecordToMap;
4
+ function nameSpacesRecordToMap(nameSpaces) {
5
+ return new Map(Object.entries(nameSpaces).map(([key, value]) => [key, new Map(Object.entries(value))]));
6
+ }
7
+ //# sourceMappingURL=mdocUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdocUtil.js","sourceRoot":"","sources":["../../../src/modules/mdoc/mdocUtil.ts"],"names":[],"mappings":";;AAAA,sDAMC;AAND,SAAgB,qBAAqB,CAInC,UAAsB;IACtB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAU,CAAC,CAAC,CAAA;AAClH,CAAC"}
@@ -21,6 +21,14 @@ export declare class MdocRecord extends BaseRecord<DefaultMdocRecordTags> {
21
21
  readonly type = "MdocRecord";
22
22
  base64Url: string;
23
23
  constructor(props: MdocRecordStorageProps);
24
+ /**
25
+ * credential is convenience method added to all credential records
26
+ */
27
+ get credential(): Mdoc;
28
+ /**
29
+ * encoded is convenience method added to all credential records
30
+ */
31
+ get encoded(): string;
24
32
  getTags(): {
25
33
  docType: string;
26
34
  alg: JwaSignatureAlgorithm;
@@ -17,6 +17,18 @@ class MdocRecord extends BaseRecord_1.BaseRecord {
17
17
  this._tags = (_c = props.tags) !== null && _c !== void 0 ? _c : {};
18
18
  }
19
19
  }
20
+ /**
21
+ * credential is convenience method added to all credential records
22
+ */
23
+ get credential() {
24
+ return Mdoc_1.Mdoc.fromBase64Url(this.base64Url);
25
+ }
26
+ /**
27
+ * encoded is convenience method added to all credential records
28
+ */
29
+ get encoded() {
30
+ return this.base64Url;
31
+ }
20
32
  getTags() {
21
33
  const mdoc = Mdoc_1.Mdoc.fromBase64Url(this.base64Url);
22
34
  const docType = mdoc.docType;
@@ -1 +1 @@
1
- {"version":3,"file":"MdocRecord.js","sourceRoot":"","sources":["../../../../src/modules/mdoc/repository/MdocRecord.ts"],"names":[],"mappings":";;;AAIA,4DAAwD;AACxD,0CAAgD;AAChD,8CAA0C;AAC1C,kCAA8B;AAmB9B,MAAa,UAAW,SAAQ,uBAAiC;IAK/D,YAAmB,KAA6B;;QAC9C,KAAK,EAAE,CAAA;QAJO,SAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAMpC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,GAAG,MAAA,KAAK,CAAC,EAAE,mCAAI,IAAA,WAAI,GAAE,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAA;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAA;QAC/B,CAAC;IACH,CAAC;IAEM,OAAO;QACZ,MAAM,IAAI,GAAG,WAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAEpB,uCACK,IAAI,CAAC,KAAK,KACb,OAAO;YACP,GAAG,IACJ;IACH,CAAC;IAEM,KAAK;QACV,OAAO,uBAAe,CAAC,QAAQ,CAAC,uBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAkC,CAAC,CAAA;IACxG,CAAC;;AA9BH,gCA+BC;AA9BwB,eAAI,GAAG,YAAY,AAAf,CAAe"}
1
+ {"version":3,"file":"MdocRecord.js","sourceRoot":"","sources":["../../../../src/modules/mdoc/repository/MdocRecord.ts"],"names":[],"mappings":";;;AAIA,4DAAwD;AACxD,0CAAgD;AAChD,8CAA0C;AAC1C,kCAA8B;AAmB9B,MAAa,UAAW,SAAQ,uBAAiC;IAK/D,YAAmB,KAA6B;;QAC9C,KAAK,EAAE,CAAA;QAJO,SAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAMpC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,GAAG,MAAA,KAAK,CAAC,EAAE,mCAAI,IAAA,WAAI,GAAE,CAAA;YAC5B,IAAI,CAAC,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAA;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAA;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,WAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAEM,OAAO;QACZ,MAAM,IAAI,GAAG,WAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAEpB,uCACK,IAAI,CAAC,KAAK,KACb,OAAO;YACP,GAAG,IACJ;IACH,CAAC;IAEM,KAAK;QACV,OAAO,uBAAe,CAAC,QAAQ,CAAC,uBAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAkC,CAAC,CAAA;IACxG,CAAC;;AA5CH,gCA6CC;AA5CwB,eAAI,GAAG,YAAY,AAAf,CAAe"}
@@ -20,6 +20,8 @@ export declare class SdJwtVcApi {
20
20
  readonly x5c: string[] | undefined;
21
21
  };
22
22
  payload: Payload;
23
+ claimFormat: import("../vc").ClaimFormat.SdJwtVc;
24
+ encoded: string;
23
25
  }>;
24
26
  /**
25
27
  *
@@ -2,9 +2,18 @@ import type { SdJwtVcSignOptions, SdJwtVcPresentOptions, SdJwtVcVerifyOptions, S
2
2
  import type { JwkJson } from '../../crypto';
3
3
  import type { Query, QueryOptions } from '../../storage/StorageService';
4
4
  import { AgentContext } from '../../agent';
5
+ import { ClaimFormat } from '../vc';
5
6
  import { SdJwtVcRecord, SdJwtVcRepository } from './repository';
6
7
  import { SdJwtVcTypeMetadata } from './typeMetadata';
7
8
  export interface SdJwtVc<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload> {
9
+ /**
10
+ * claim format is convenience method added to all credential instances
11
+ */
12
+ claimFormat: ClaimFormat.SdJwtVc;
13
+ /**
14
+ * encoded is convenience method added to all credential instances
15
+ */
16
+ encoded: string;
8
17
  compact: string;
9
18
  header: Header;
10
19
  payload: Payload;
@@ -43,8 +52,11 @@ export declare class SdJwtVcService {
43
52
  readonly x5c: string[] | undefined;
44
53
  };
45
54
  payload: Payload;
55
+ claimFormat: ClaimFormat.SdJwtVc;
56
+ encoded: string;
46
57
  }>;
47
58
  fromCompact<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload>(compactSdJwtVc: string, typeMetadata?: SdJwtVcTypeMetadata): SdJwtVc<Header, Payload>;
59
+ applyDisclosuresForPayload(compactSdJwtVc: string, requestedPayload: Record<string, unknown>): SdJwtVc;
48
60
  present<Payload extends SdJwtVcPayload = SdJwtVcPayload>(agentContext: AgentContext, { compactSdJwtVc, presentationFrame, verifierMetadata }: SdJwtVcPresentOptions<Payload>): Promise<string>;
49
61
  private assertValidX5cJwtIssuer;
50
62
  verify<Header extends SdJwtVcHeader = SdJwtVcHeader, Payload extends SdJwtVcPayload = SdJwtVcPayload>(agentContext: AgentContext, { compactSdJwtVc, keyBinding, requiredClaimKeys, fetchTypeMetadata }: SdJwtVcVerifyOptions): Promise<{
@@ -21,6 +21,8 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.SdJwtVcService = void 0;
24
+ const decode_1 = require("@sd-jwt/decode");
25
+ const present_1 = require("@sd-jwt/present");
24
26
  const sd_jwt_vc_1 = require("@sd-jwt/sd-jwt-vc");
25
27
  const utils_1 = require("@sd-jwt/utils");
26
28
  const tsyringe_1 = require("tsyringe");
@@ -31,9 +33,11 @@ const utils_2 = require("../../utils");
31
33
  const domain_1 = require("../../utils/domain");
32
34
  const fetch_1 = require("../../utils/fetch");
33
35
  const dids_1 = require("../dids");
36
+ const vc_1 = require("../vc");
34
37
  const x509_1 = require("../x509");
35
38
  const SdJwtVcError_1 = require("./SdJwtVcError");
36
39
  const decodeSdJwtVc_1 = require("./decodeSdJwtVc");
40
+ const disclosureFrame_1 = require("./disclosureFrame");
37
41
  const repository_1 = require("./repository");
38
42
  /**
39
43
  * @internal
@@ -76,11 +80,34 @@ let SdJwtVcService = class SdJwtVcService {
76
80
  prettyClaims,
77
81
  header: header,
78
82
  payload: sdjwtPayload,
83
+ claimFormat: vc_1.ClaimFormat.SdJwtVc,
84
+ encoded: compact,
79
85
  };
80
86
  }
81
87
  fromCompact(compactSdJwtVc, typeMetadata) {
82
88
  return (0, decodeSdJwtVc_1.decodeSdJwtVc)(compactSdJwtVc, typeMetadata);
83
89
  }
90
+ applyDisclosuresForPayload(compactSdJwtVc, requestedPayload) {
91
+ var _a;
92
+ const decoded = (0, decode_1.decodeSdJwtSync)(compactSdJwtVc, crypto_1.Hasher.hash);
93
+ const presentationFrame = (_a = (0, disclosureFrame_1.buildDisclosureFrameFromPayload)(requestedPayload)) !== null && _a !== void 0 ? _a : {};
94
+ if (decoded.kbJwt) {
95
+ throw new SdJwtVcError_1.SdJwtVcError('Cannot apply limit disclosure on an sd-jwt with key binding jwt');
96
+ }
97
+ const requiredDisclosures = (0, present_1.selectDisclosures)(decoded.jwt.payload,
98
+ // Map to sd-jwt disclosure format
99
+ decoded.disclosures.map((d) => ({
100
+ digest: d.digestSync({ alg: 'sha-256', hasher: crypto_1.Hasher.hash }),
101
+ encoded: d.encode(),
102
+ key: d.key,
103
+ salt: d.salt,
104
+ value: d.value,
105
+ })), presentationFrame);
106
+ const [jwt] = compactSdJwtVc.split('~');
107
+ const sdJwt = `${jwt}~${requiredDisclosures.map((d) => d.encoded).join('~')}~`;
108
+ const disclosedDecoded = (0, decodeSdJwtVc_1.decodeSdJwtVc)(sdJwt);
109
+ return disclosedDecoded;
110
+ }
84
111
  async present(agentContext, { compactSdJwtVc, presentationFrame, verifierMetadata }) {
85
112
  const sdjwt = new sd_jwt_vc_1.SDJwtVcInstance(this.getBaseSdJwtConfig(agentContext));
86
113
  const sdJwtVc = await sdjwt.decode(compactSdJwtVc);
@@ -140,6 +167,8 @@ let SdJwtVcService = class SdJwtVcService {
140
167
  header: sdJwtVc.jwt.header,
141
168
  compact: compactSdJwtVc,
142
169
  prettyClaims: await sdJwtVc.getClaims(decodeSdJwtVc_1.sdJwtVcHasher),
170
+ claimFormat: vc_1.ClaimFormat.SdJwtVc,
171
+ encoded: compactSdJwtVc,
143
172
  };
144
173
  try {
145
174
  const credentialIssuer = await this.parseIssuerFromCredential(agentContext, sdJwtVc);