@pagopa/io-react-native-wallet 0.9.2 → 0.10.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 (75) hide show
  1. package/lib/commonjs/credential/issuance/06-obtain-credential.js +2 -34
  2. package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
  3. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +169 -0
  4. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -0
  5. package/lib/commonjs/credential/issuance/08-confirm-credential.js +6 -0
  6. package/lib/commonjs/credential/issuance/08-confirm-credential.js.map +1 -0
  7. package/lib/commonjs/credential/issuance/const.js +6 -1
  8. package/lib/commonjs/credential/issuance/const.js.map +1 -1
  9. package/lib/commonjs/credential/issuance/index.js +7 -0
  10. package/lib/commonjs/credential/issuance/index.js.map +1 -1
  11. package/lib/commonjs/index.js +3 -1
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/sd-jwt/__test__/index.test.js +33 -1
  14. package/lib/commonjs/sd-jwt/__test__/index.test.js.map +1 -1
  15. package/lib/commonjs/sd-jwt/index.js +15 -6
  16. package/lib/commonjs/sd-jwt/index.js.map +1 -1
  17. package/lib/commonjs/sd-jwt/types.js +1 -1
  18. package/lib/commonjs/trust/types.js +5 -0
  19. package/lib/commonjs/trust/types.js.map +1 -1
  20. package/lib/commonjs/utils/misc.js +2 -2
  21. package/lib/commonjs/utils/misc.js.map +1 -1
  22. package/lib/module/credential/issuance/06-obtain-credential.js +3 -34
  23. package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
  24. package/lib/module/credential/issuance/07-verify-and-parse-credential.js +163 -0
  25. package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -0
  26. package/lib/module/credential/issuance/08-confirm-credential.js +2 -0
  27. package/lib/module/credential/issuance/08-confirm-credential.js.map +1 -0
  28. package/lib/module/credential/issuance/const.js +2 -0
  29. package/lib/module/credential/issuance/const.js.map +1 -1
  30. package/lib/module/credential/issuance/index.js +2 -1
  31. package/lib/module/credential/issuance/index.js.map +1 -1
  32. package/lib/module/index.js +2 -1
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/sd-jwt/__test__/index.test.js +33 -1
  35. package/lib/module/sd-jwt/__test__/index.test.js.map +1 -1
  36. package/lib/module/sd-jwt/index.js +10 -6
  37. package/lib/module/sd-jwt/index.js.map +1 -1
  38. package/lib/module/sd-jwt/types.js +1 -1
  39. package/lib/module/trust/types.js +5 -0
  40. package/lib/module/trust/types.js.map +1 -1
  41. package/lib/module/utils/misc.js +2 -2
  42. package/lib/module/utils/misc.js.map +1 -1
  43. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts +2 -1
  44. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
  45. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +36 -0
  46. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -0
  47. package/lib/typescript/credential/issuance/08-confirm-credential.d.ts +11 -0
  48. package/lib/typescript/credential/issuance/08-confirm-credential.d.ts.map +1 -0
  49. package/lib/typescript/credential/issuance/const.d.ts +3 -0
  50. package/lib/typescript/credential/issuance/const.d.ts.map +1 -1
  51. package/lib/typescript/credential/issuance/index.d.ts +4 -3
  52. package/lib/typescript/credential/issuance/index.d.ts.map +1 -1
  53. package/lib/typescript/index.d.ts +2 -1
  54. package/lib/typescript/index.d.ts.map +1 -1
  55. package/lib/typescript/sd-jwt/index.d.ts +222 -5
  56. package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
  57. package/lib/typescript/sd-jwt/types.d.ts +1 -1
  58. package/lib/typescript/trust/index.d.ts +8 -0
  59. package/lib/typescript/trust/index.d.ts.map +1 -1
  60. package/lib/typescript/trust/types.d.ts +232 -0
  61. package/lib/typescript/trust/types.d.ts.map +1 -1
  62. package/lib/typescript/utils/misc.d.ts +1 -1
  63. package/lib/typescript/utils/misc.d.ts.map +1 -1
  64. package/package.json +1 -1
  65. package/src/credential/issuance/06-obtain-credential.ts +3 -51
  66. package/src/credential/issuance/07-verify-and-parse-credential.ts +229 -0
  67. package/src/credential/issuance/08-confirm-credential.ts +14 -0
  68. package/src/credential/issuance/const.ts +6 -0
  69. package/src/credential/issuance/index.ts +7 -1
  70. package/src/index.ts +2 -0
  71. package/src/sd-jwt/__test__/index.test.ts +32 -1
  72. package/src/sd-jwt/index.ts +14 -8
  73. package/src/sd-jwt/types.ts +1 -1
  74. package/src/trust/types.ts +4 -0
  75. package/src/utils/misc.ts +4 -2
@@ -0,0 +1,36 @@
1
+ import type { Out } from "../../utils/misc";
2
+ import type { EvaluateIssuerTrust } from "./02-evaluate-issuer-trust";
3
+ import type { ObtainCredential } from "./06-obtain-credential";
4
+ import type { CryptoContext } from "@pagopa/io-react-native-jwt";
5
+ export type VerifyAndParseCredential = (issuerConf: Out<EvaluateIssuerTrust>["issuerConf"], credential: Out<ObtainCredential>["credential"], format: Out<ObtainCredential>["format"], context: {
6
+ credentialCryptoContext: CryptoContext;
7
+ ignoreMissingAttributes?: boolean;
8
+ }) => Promise<{
9
+ parsedCredential: ParsedCredential;
10
+ }>;
11
+ type ParsedCredential = Record<
12
+ /** Attribute key */
13
+ string, {
14
+ /** Human-readable name of the attribute */
15
+ name: /* if i18n is provided */ Record<string, string> | /* if no i18n is provided */ string;
16
+ /** If in defined as mandatory by the Issuer */
17
+ mandatory: boolean;
18
+ /** The actual value of the attribute */
19
+ value: unknown;
20
+ }>;
21
+ /**
22
+ * Verify and parse an encoded credential
23
+ *
24
+ * @param issuerConf The Issuer configuration
25
+ * @param credential The encoded credential
26
+ * @param format The format of the credentual
27
+ * @param context.credentialCryptoContext The context to access the key the Credential will be bound to
28
+ * @param context.ignoreMissingAttributes (optional) Whether to fail if a defined attribute is note present in the credentual. Default: false
29
+ * @returns A parsed credential with attributes in plain value
30
+ * @throws If the credential signature is not verified with the Issuer key set
31
+ * @throws If the credential is not bound to the provided user key
32
+ * @throws If the credential data fail to parse
33
+ */
34
+ export declare const verifyAndParseCredential: VerifyAndParseCredential;
35
+ export {};
36
+ //# sourceMappingURL=07-verify-and-parse-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"07-verify-and-parse-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/07-verify-and-parse-credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,CACrC,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAClD,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAC/C,MAAM,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EACvC,OAAO,EAAE;IACP,uBAAuB,EAAE,aAAa,CAAC;IACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,KACE,OAAO,CAAC;IAAE,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAGrD,KAAK,gBAAgB,GAAG,MAAM;AAC5B,oBAAoB;AACpB,MAAM,EACN;IACE,2CAA2C;IAC3C,IAAI,EACA,yBAAyB,CAAC,MAAM,CAC9B,MAAM,EACN,MAAM,CACP,GACD,4BAA4B,CAAC,MAAM,CAAC;IACxC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;CAChB,CACF,CAAC;AAkKF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,wBAiBtC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ObtainCredential } from "./06-obtain-credential";
2
+ import type { Out } from "../../utils/misc";
3
+ /**
4
+ * The end of the issuing flow.
5
+ * The User accepted the Credential and it can be stored in the device according to the app implementation preferences.
6
+ * To be implemented.
7
+ *
8
+ * @returns The type of the Credential to be issued and the url of the Issuer
9
+ */
10
+ export type ConfirmCredential = (credential: Out<ObtainCredential>["credential"], format: Out<ObtainCredential>["format"]) => Promise<void>;
11
+ //# sourceMappingURL=08-confirm-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"08-confirm-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/08-confirm-credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAC/C,MAAM,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KACpC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1,2 +1,5 @@
1
+ import * as z from "zod";
1
2
  export declare const ASSERTION_TYPE = "urn:ietf:params:oauth:client-assertion-type:jwt-client-attestation";
3
+ export type SupportedCredentialFormat = z.infer<typeof SupportedCredentialFormat>;
4
+ export declare const SupportedCredentialFormat: z.ZodLiteral<"vc+sd-jwt">;
2
5
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,uEAC2C,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/const.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,eAAO,MAAM,cAAc,uEAC2C,CAAC;AAEvE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,yBAAyB,CACjC,CAAC;AACF,eAAO,MAAM,yBAAyB,2BAAyB,CAAC"}
@@ -4,7 +4,8 @@ import { startUserAuthorization, type StartUserAuthorization } from "./03-start-
4
4
  import { type CompleteUserAuthorization } from "./04-complete-user-authorization";
5
5
  import { authorizeAccess, type AuthorizeAccess } from "./05-authorize-access";
6
6
  import { obtainCredential, type ObtainCredential } from "./06-obtain-credential";
7
- import type { ConfirmCredential } from "./07-confirm-credential";
8
- export { evaluateIssuerTrust, startUserAuthorization, authorizeAccess, obtainCredential, };
9
- export type { StartFlow, EvaluateIssuerTrust, StartUserAuthorization, CompleteUserAuthorization, AuthorizeAccess, ObtainCredential, ConfirmCredential, };
7
+ import { verifyAndParseCredential, type VerifyAndParseCredential } from "./07-verify-and-parse-credential";
8
+ import type { ConfirmCredential } from "./08-confirm-credential";
9
+ export { evaluateIssuerTrust, startUserAuthorization, authorizeAccess, obtainCredential, verifyAndParseCredential, };
10
+ export type { StartFlow, EvaluateIssuerTrust, StartUserAuthorization, CompleteUserAuthorization, AuthorizeAccess, ObtainCredential, VerifyAndParseCredential, ConfirmCredential, };
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,GACjB,CAAC;AACF,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,CAAC;AACF,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,GAClB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import "react-native-url-polyfill/auto";
2
2
  import * as Credential from "./credential";
3
3
  import * as PID from "./pid";
4
+ import * as SdJwt from "./sd-jwt";
4
5
  import * as Errors from "./utils/errors";
5
6
  import * as WalletInstanceAttestation from "./wallet-instance-attestation";
6
7
  import * as Trust from "./trust";
7
8
  import { AuthorizationDetail, AuthorizationDetails } from "./utils/par";
8
9
  import { createCryptoContextFor } from "./utils/crypto";
9
- export { PID, Credential, WalletInstanceAttestation, Errors, Trust, createCryptoContextFor, AuthorizationDetail, AuthorizationDetails, };
10
+ export { SdJwt, PID, Credential, WalletInstanceAttestation, Errors, Trust, createCryptoContextFor, AuthorizationDetail, AuthorizationDetails, };
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,gCAAgC,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,yBAAyB,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,GAAG,EACH,UAAU,EACV,yBAAyB,EACzB,MAAM,EACN,KAAK,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GACrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,gCAAgC,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,yBAAyB,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,KAAK,EACL,GAAG,EACH,UAAU,EACV,yBAAyB,EACzB,MAAM,EACN,KAAK,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GACrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { Disclosure, type DisclosureWithEncoded } from "./types";
2
+ import { Disclosure, SdJwt4VC, type DisclosureWithEncoded } from "./types";
3
3
  import type { JWK } from "../utils/jwk";
4
4
  /**
5
5
  * Decode a given SD-JWT with Disclosures to get the parsed SD-JWT object they define.
@@ -10,12 +10,120 @@ import type { JWK } from "../utils/jwk";
10
10
  *
11
11
  * @function
12
12
  * @param token The encoded token that represents a valid sd-jwt for verifiable credentials
13
- * @param schema Schema to use to parse the SD-JWT
13
+ * @param customSchema (optional) Schema to use to parse the SD-JWT. Default: SdJwt4VC
14
14
  *
15
15
  * @returns The parsed SD-JWT token and the parsed disclosures
16
16
  *
17
17
  */
18
- export declare const decode: <S extends z.AnyZodObject>(token: string, schema: S) => {
18
+ export declare const decode: <S extends z.ZodType<{
19
+ header: {
20
+ alg: string;
21
+ typ: "vc+sd-jwt";
22
+ trust_chain: string[];
23
+ kid?: string | undefined;
24
+ };
25
+ payload: {
26
+ type: string;
27
+ status: string;
28
+ iss: string;
29
+ sub: string;
30
+ jti: string;
31
+ iat: number;
32
+ exp: number;
33
+ cnf: {
34
+ jwk: {
35
+ kty: "RSA" | "EC";
36
+ alg?: string | undefined;
37
+ crv?: string | undefined;
38
+ d?: string | undefined;
39
+ dp?: string | undefined;
40
+ dq?: string | undefined;
41
+ e?: string | undefined;
42
+ ext?: boolean | undefined;
43
+ k?: string | undefined;
44
+ key_ops?: string[] | undefined;
45
+ kid?: string | undefined;
46
+ n?: string | undefined;
47
+ p?: string | undefined;
48
+ q?: string | undefined;
49
+ qi?: string | undefined;
50
+ use?: string | undefined;
51
+ x?: string | undefined;
52
+ y?: string | undefined;
53
+ x5c?: string[] | undefined;
54
+ x5t?: string | undefined;
55
+ "x5t#S256"?: string | undefined;
56
+ x5u?: string | undefined;
57
+ };
58
+ };
59
+ verified_claims: {
60
+ verification: {
61
+ trust_framework: "eidas";
62
+ assurance_level: string;
63
+ } & {
64
+ _sd: string[];
65
+ };
66
+ claims: {
67
+ _sd: string[];
68
+ };
69
+ };
70
+ _sd_alg: "sha-256";
71
+ };
72
+ }, z.ZodTypeDef, {
73
+ header: {
74
+ alg: string;
75
+ typ: "vc+sd-jwt";
76
+ trust_chain: string[];
77
+ kid?: string | undefined;
78
+ };
79
+ payload: {
80
+ type: string;
81
+ status: string;
82
+ iss: string;
83
+ sub: string;
84
+ jti: string;
85
+ iat: number;
86
+ exp: number;
87
+ cnf: {
88
+ jwk: {
89
+ kty: "RSA" | "EC";
90
+ alg?: string | undefined;
91
+ crv?: string | undefined;
92
+ d?: string | undefined;
93
+ dp?: string | undefined;
94
+ dq?: string | undefined;
95
+ e?: string | undefined;
96
+ ext?: boolean | undefined;
97
+ k?: string | undefined;
98
+ key_ops?: string[] | undefined;
99
+ kid?: string | undefined;
100
+ n?: string | undefined;
101
+ p?: string | undefined;
102
+ q?: string | undefined;
103
+ qi?: string | undefined;
104
+ use?: string | undefined;
105
+ x?: string | undefined;
106
+ y?: string | undefined;
107
+ x5c?: string[] | undefined;
108
+ x5t?: string | undefined;
109
+ "x5t#S256"?: string | undefined;
110
+ x5u?: string | undefined;
111
+ };
112
+ };
113
+ verified_claims: {
114
+ verification: {
115
+ trust_framework: "eidas";
116
+ assurance_level: string;
117
+ } & {
118
+ _sd: string[];
119
+ };
120
+ claims: {
121
+ _sd: string[];
122
+ };
123
+ };
124
+ _sd_alg: "sha-256";
125
+ };
126
+ }>>(token: string, customSchema?: S | undefined) => {
19
127
  sdJwt: z.TypeOf<S>;
20
128
  disclosures: DisclosureWithEncoded[];
21
129
  };
@@ -50,13 +158,122 @@ export declare const disclose: (token: string, claims: string[]) => Promise<{
50
158
  *
51
159
  * @param token The encoded token that represents a valid sd-jwt for verifiable credentials
52
160
  * @param publicKey The single public key or an array of public keys to validate the signature.
53
- * @param schema Schema to use to parse the SD-JWT
161
+ * @param customSchema Schema to use to parse the SD-JWT
54
162
  *
55
163
  * @returns The parsed SD-JWT token and the parsed disclosures
56
164
  *
57
165
  */
58
- export declare const verify: <S extends z.AnyZodObject>(token: string, publicKey: JWK | JWK[], schema: S) => Promise<{
166
+ export declare const verify: <S extends z.ZodType<{
167
+ header: {
168
+ alg: string;
169
+ typ: "vc+sd-jwt";
170
+ trust_chain: string[];
171
+ kid?: string | undefined;
172
+ };
173
+ payload: {
174
+ type: string;
175
+ status: string;
176
+ iss: string;
177
+ sub: string;
178
+ jti: string;
179
+ iat: number;
180
+ exp: number;
181
+ cnf: {
182
+ jwk: {
183
+ kty: "RSA" | "EC";
184
+ alg?: string | undefined;
185
+ crv?: string | undefined;
186
+ d?: string | undefined;
187
+ dp?: string | undefined;
188
+ dq?: string | undefined;
189
+ e?: string | undefined;
190
+ ext?: boolean | undefined;
191
+ k?: string | undefined;
192
+ key_ops?: string[] | undefined;
193
+ kid?: string | undefined;
194
+ n?: string | undefined;
195
+ p?: string | undefined;
196
+ q?: string | undefined;
197
+ qi?: string | undefined;
198
+ use?: string | undefined;
199
+ x?: string | undefined;
200
+ y?: string | undefined;
201
+ x5c?: string[] | undefined;
202
+ x5t?: string | undefined;
203
+ "x5t#S256"?: string | undefined;
204
+ x5u?: string | undefined;
205
+ };
206
+ };
207
+ verified_claims: {
208
+ verification: {
209
+ trust_framework: "eidas";
210
+ assurance_level: string;
211
+ } & {
212
+ _sd: string[];
213
+ };
214
+ claims: {
215
+ _sd: string[];
216
+ };
217
+ };
218
+ _sd_alg: "sha-256";
219
+ };
220
+ }, z.ZodTypeDef, {
221
+ header: {
222
+ alg: string;
223
+ typ: "vc+sd-jwt";
224
+ trust_chain: string[];
225
+ kid?: string | undefined;
226
+ };
227
+ payload: {
228
+ type: string;
229
+ status: string;
230
+ iss: string;
231
+ sub: string;
232
+ jti: string;
233
+ iat: number;
234
+ exp: number;
235
+ cnf: {
236
+ jwk: {
237
+ kty: "RSA" | "EC";
238
+ alg?: string | undefined;
239
+ crv?: string | undefined;
240
+ d?: string | undefined;
241
+ dp?: string | undefined;
242
+ dq?: string | undefined;
243
+ e?: string | undefined;
244
+ ext?: boolean | undefined;
245
+ k?: string | undefined;
246
+ key_ops?: string[] | undefined;
247
+ kid?: string | undefined;
248
+ n?: string | undefined;
249
+ p?: string | undefined;
250
+ q?: string | undefined;
251
+ qi?: string | undefined;
252
+ use?: string | undefined;
253
+ x?: string | undefined;
254
+ y?: string | undefined;
255
+ x5c?: string[] | undefined;
256
+ x5t?: string | undefined;
257
+ "x5t#S256"?: string | undefined;
258
+ x5u?: string | undefined;
259
+ };
260
+ };
261
+ verified_claims: {
262
+ verification: {
263
+ trust_framework: "eidas";
264
+ assurance_level: string;
265
+ } & {
266
+ _sd: string[];
267
+ };
268
+ claims: {
269
+ _sd: string[];
270
+ };
271
+ };
272
+ _sd_alg: "sha-256";
273
+ };
274
+ }>>(token: string, publicKey: JWK | JWK[], customSchema?: S | undefined) => Promise<{
59
275
  sdJwt: z.TypeOf<S>;
60
276
  disclosures: Disclosure[];
61
277
  }>;
278
+ export { SdJwt4VC };
62
279
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sd-jwt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,UAAU,EAAY,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAWxC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,oCACV,MAAM;;iBAIA,qBAAqB,EAAE;CAsBrC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,UACZ,MAAM,UACL,MAAM,EAAE;WACE,MAAM;WAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;EA8CnE,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,oCACV,MAAM,aACF,GAAG,GAAG,GAAG,EAAE;;iBAEqB,UAAU,EAAE;EAwBxD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sd-jwt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAWxC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WACV,MAAM;;iBAIA,qBAAqB,EAAE;CA0BrC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,UACZ,MAAM,UACL,MAAM,EAAE;WACE,MAAM;WAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;EA8CnE,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WACV,MAAM,aACF,GAAG,GAAG,GAAG,EAAE;;iBAEqB,UAAU,EAAE;EAwBxD,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -23,7 +23,7 @@ export declare const Disclosure: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodUnkn
23
23
  * For such reason, we may find conveninent to have encoded and decode values stored explicitly in the same structure.
24
24
  * Please note that `encoded` can always decode into `decode`, but `decode` may or may not be encoded with the same value of `encoded`
25
25
  *
26
- * @see https://www.ietf.org/id/draft-ietf-oauth-selective-disclosure-jwt-05.html#name-disclosures-for-object-prop
26
+ * @see https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-05.html#name-disclosures-for-object-prop
27
27
  */
28
28
  export type DisclosureWithEncoded = {
29
29
  decoded: Disclosure;
@@ -102,6 +102,7 @@ export declare const getWalletProviderEntityConfiguration: (entityBaseUrl: Param
102
102
  federation_resolve_endpoint?: string | undefined;
103
103
  federation_trust_mark_status_endpoint?: string | undefined;
104
104
  federation_trust_mark_list_endpoint?: string | undefined;
105
+ organization_name?: string | undefined;
105
106
  homepage_uri?: string | undefined;
106
107
  policy_uri?: string | undefined;
107
108
  logo_uri?: string | undefined;
@@ -201,6 +202,7 @@ export declare const getCredentialIssuerEntityConfiguration: (entityBaseUrl: Par
201
202
  federation_resolve_endpoint?: string | undefined;
202
203
  federation_trust_mark_status_endpoint?: string | undefined;
203
204
  federation_trust_mark_list_endpoint?: string | undefined;
205
+ organization_name?: string | undefined;
204
206
  homepage_uri?: string | undefined;
205
207
  policy_uri?: string | undefined;
206
208
  logo_uri?: string | undefined;
@@ -383,6 +385,7 @@ export declare const getTrustAnchorEntityConfiguration: (entityBaseUrl: Paramete
383
385
  federation_resolve_endpoint?: string | undefined;
384
386
  federation_trust_mark_status_endpoint?: string | undefined;
385
387
  federation_trust_mark_list_endpoint?: string | undefined;
388
+ organization_name?: string | undefined;
386
389
  homepage_uri?: string | undefined;
387
390
  policy_uri?: string | undefined;
388
391
  logo_uri?: string | undefined;
@@ -442,6 +445,7 @@ export declare const getRelyingPartyEntityConfiguration: (entityBaseUrl: Paramet
442
445
  federation_resolve_endpoint?: string | undefined;
443
446
  federation_trust_mark_status_endpoint?: string | undefined;
444
447
  federation_trust_mark_list_endpoint?: string | undefined;
448
+ organization_name?: string | undefined;
445
449
  homepage_uri?: string | undefined;
446
450
  policy_uri?: string | undefined;
447
451
  logo_uri?: string | undefined;
@@ -538,6 +542,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
538
542
  federation_resolve_endpoint?: string | undefined;
539
543
  federation_trust_mark_status_endpoint?: string | undefined;
540
544
  federation_trust_mark_list_endpoint?: string | undefined;
545
+ organization_name?: string | undefined;
541
546
  homepage_uri?: string | undefined;
542
547
  policy_uri?: string | undefined;
543
548
  logo_uri?: string | undefined;
@@ -596,6 +601,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
596
601
  federation_resolve_endpoint?: string | undefined;
597
602
  federation_trust_mark_status_endpoint?: string | undefined;
598
603
  federation_trust_mark_list_endpoint?: string | undefined;
604
+ organization_name?: string | undefined;
599
605
  homepage_uri?: string | undefined;
600
606
  policy_uri?: string | undefined;
601
607
  logo_uri?: string | undefined;
@@ -777,6 +783,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
777
783
  federation_resolve_endpoint?: string | undefined;
778
784
  federation_trust_mark_status_endpoint?: string | undefined;
779
785
  federation_trust_mark_list_endpoint?: string | undefined;
786
+ organization_name?: string | undefined;
780
787
  homepage_uri?: string | undefined;
781
788
  policy_uri?: string | undefined;
782
789
  logo_uri?: string | undefined;
@@ -872,6 +879,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
872
879
  federation_resolve_endpoint?: string | undefined;
873
880
  federation_trust_mark_status_endpoint?: string | undefined;
874
881
  federation_trust_mark_list_endpoint?: string | undefined;
882
+ organization_name?: string | undefined;
875
883
  homepage_uri?: string | undefined;
876
884
  policy_uri?: string | undefined;
877
885
  logo_uri?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/trust/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/trust/index.ts"],"names":[],"mappings":"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"}