@proof.com/proof-vc-common 0.1.3 → 0.2.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 (37) hide show
  1. package/README.md +29 -35
  2. package/dist/certificates/chain_validator.js +6 -6
  3. package/dist/certificates/chain_validator.js.map +1 -1
  4. package/dist/certificates/trust_store/index.d.ts +2 -2
  5. package/dist/certificates/trust_store/index.d.ts.map +1 -1
  6. package/dist/certificates/trust_store/index.js +3 -6
  7. package/dist/certificates/trust_store/index.js.map +1 -1
  8. package/dist/index.browser.d.ts +1 -0
  9. package/dist/index.browser.d.ts.map +1 -1
  10. package/dist/index.browser.js.map +1 -1
  11. package/dist/index.node.d.ts +3 -0
  12. package/dist/index.node.d.ts.map +1 -1
  13. package/dist/index.node.js +1 -0
  14. package/dist/index.node.js.map +1 -1
  15. package/dist/presentation/base_client.d.ts +22 -21
  16. package/dist/presentation/base_client.d.ts.map +1 -1
  17. package/dist/presentation/base_client.js +43 -54
  18. package/dist/presentation/base_client.js.map +1 -1
  19. package/dist/presentation/node_client.d.ts +23 -4
  20. package/dist/presentation/node_client.d.ts.map +1 -1
  21. package/dist/presentation/node_client.js +67 -4
  22. package/dist/presentation/node_client.js.map +1 -1
  23. package/dist/proof_credentials.d.ts +6 -11
  24. package/dist/proof_credentials.d.ts.map +1 -1
  25. package/dist/proof_credentials.js +14 -32
  26. package/dist/proof_credentials.js.map +1 -1
  27. package/dist/types.d.ts +1 -0
  28. package/dist/types.d.ts.map +1 -1
  29. package/dist/vc_presentation.browser.d.ts +2 -2
  30. package/dist/vc_presentation.browser.d.ts.map +1 -1
  31. package/dist/vc_presentation.browser.js +1 -1
  32. package/dist/vc_presentation.browser.js.map +1 -1
  33. package/dist/vc_presentation.node.d.ts +3 -3
  34. package/dist/vc_presentation.node.d.ts.map +1 -1
  35. package/dist/vc_presentation.node.js +1 -1
  36. package/dist/vc_presentation.node.js.map +1 -1
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -42,9 +42,9 @@ import { init } from "@proof.com/proof-vc-common";
42
42
 
43
43
  init({
44
44
  environment: "sandbox",
45
- client_id: "verifier-demo",
46
- response_mode: "direct_post",
47
- callback_uri: "http://localhost/verify_vp_token",
45
+ clientId: "verifier-demo",
46
+ responseMode: "direct_post",
47
+ callbackUri: "http://localhost/verify_vp_token",
48
48
  });
49
49
  ```
50
50
 
@@ -54,7 +54,7 @@ Proof supports `fragment` and `direct_post` response modes.
54
54
 
55
55
  #### fragment
56
56
 
57
- Using `fragment` the `vp_token` is returned as a fragment of the `callback_uri` when the user is 302 redirected from Proof to your website.
57
+ Using `fragment` the `vp_token` is returned as a fragment of the `callbackUri` when the user is 302 redirected from Proof to your website.
58
58
 
59
59
  ```
60
60
  GET http://localhost/verify_vp_token#vp_token=eyJwcm9vZl9pZF9...
@@ -62,7 +62,7 @@ GET http://localhost/verify_vp_token#vp_token=eyJwcm9vZl9pZF9...
62
62
 
63
63
  #### direct_post
64
64
 
65
- Using `direct_post` the `vp_token` is returned in the JSON body of a POST request to the `callback_uri` from Proof to your website. See the [OID4VP specification](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-response-mode-direct_post) for more details.
65
+ Using `direct_post` the `vp_token` is returned in the JSON body of a POST request to the `callbackUri` from Proof to your website. See the [OID4VP specification](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#name-response-mode-direct_post) for more details.
66
66
 
67
67
  ```
68
68
  POST http://localhost/verify_vp_token
@@ -73,14 +73,16 @@ POST http://localhost/verify_vp_token
73
73
 
74
74
  Proof supports [Pushed Authorization Requests](https://datatracker.ietf.org/doc/html/rfc9126) (PAR).
75
75
  You may want to use this feature when using [Transaction Templates](#transaction-templates) to avoid hitting URL size limits.
76
+ Note that PAR is available **only from the Node.js distribution**.
76
77
 
77
78
  ```javascript
78
79
  init({
79
80
  environment: "sandbox",
80
- client_id: "caxdw5a7d",
81
- response_mode: "direct_post",
82
- callback_uri: "http://localhost/verify_vp_token",
83
- use_pushed_authorization_request: true,
81
+ clientId: "caxdw5a7d",
82
+ clientSecret: "…",
83
+ responseMode: "direct_post",
84
+ callbackUri: "http://localhost/verify_vp_token",
85
+ usePushedAuthorizationRequest: true,
84
86
  });
85
87
  ```
86
88
 
@@ -110,11 +112,11 @@ Request a Verifiable Credential Presentation with an [OAuth 2.0](https://datatra
110
112
  ```javascript
111
113
  import { getAuthorizationRequestURL } from "@proof.com/proof-vc-common";
112
114
 
113
- const redirect = getAuthorizationRequestURL({
115
+ const redirect = await getAuthorizationRequestURL({
114
116
  nonce: "3e8e4918-e9fb-453a-a538-81152be15c1b",
115
117
  scope: "urn:proof:params:scope:verifiable-credentials:basic",
116
118
  state: "6A2B4CD830",
117
- login_hint: "frodo.baggins@theshire",
119
+ loginHint: "frodo.baggins@theshire",
118
120
  });
119
121
 
120
122
  window.location.href = redirect;
@@ -162,12 +164,12 @@ const data = transactionData.wireInstructions({
162
164
  currency: "USD",
163
165
  memo: "Invoice #2024-089",
164
166
  });
165
- const redirect = getAuthorizationRequestURL({
167
+ const redirect = await getAuthorizationRequestURL({
166
168
  nonce: "3e8e4918-e9fb-453a-a538-81152be15c1b",
167
169
  scope: "urn:proof:params:scope:verifiable-credentials:basic",
168
170
  state: "6A2B4CD830",
169
- login_hint: "frodo.baggins@theshire",
170
- transaction_data: data,
171
+ loginHint: "frodo.baggins@theshire",
172
+ transactionData: data,
171
173
  });
172
174
  ```
173
175
 
@@ -190,12 +192,12 @@ const data = transactionData.paymentItemized({
190
192
  { quantity: 2, unit_cost: 11.4, label: "Fees" },
191
193
  ],
192
194
  });
193
- const redirect = getAuthorizationRequestURL({
195
+ const redirect = await getAuthorizationRequestURL({
194
196
  nonce: "3e8e4918-e9fb-453a-a538-81152be15c1b",
195
197
  scope: "urn:proof:params:scope:verifiable-credentials:basic",
196
198
  state: "6A2B4CD830",
197
- login_hint: "frodo.baggins@theshire",
198
- transaction_data: data,
199
+ loginHint: "frodo.baggins@theshire",
200
+ transactionData: data,
199
201
  });
200
202
  ```
201
203
 
@@ -225,12 +227,12 @@ const data = transactionData.paymentMandate({
225
227
  amount: 500,
226
228
  currency: "USD",
227
229
  });
228
- const redirect = getAuthorizationRequestURL({
230
+ const redirect = await getAuthorizationRequestURL({
229
231
  nonce: "3e8e4918-e9fb-453a-a538-81152be15c1b",
230
232
  scope: "urn:proof:params:scope:verifiable-credentials:basic",
231
233
  state: "6A2B4CD830",
232
- login_hint: "frodo.baggins@theshire",
233
- transaction_data: data,
234
+ loginHint: "frodo.baggins@theshire",
235
+ transactionData: data,
234
236
  });
235
237
  ```
236
238
 
@@ -241,20 +243,16 @@ Decode and verify a Verifiable Presentation's `vp_token` server-side:
241
243
  ```javascript
242
244
  import { init, verifyVPToken } from "@proof.com/proof-vc-common";
243
245
 
244
- init({
245
- environment: "sandbox",
246
- client_id: "verifier-demo",
247
- callback_uri: "https://demo.next.proof.com/",
248
- });
246
+ init({ trustRoot: "production" });
249
247
 
250
248
  const vpToken = "eyJwcm9vZl9pZ...";
251
- const presentation = verifyVPToken({
249
+ const presentation = await verifyVPToken({
252
250
  encodedVPToken: vpToken,
253
251
  nonce: "3e8e4918-e9fb-453a-a538-81152be15c1b",
254
252
  });
255
253
  const verifiableCredential = presentation["proof_id_default"][0];
256
254
 
257
- if (verifiableCredential.isOver18()) {
255
+ if (verifiableCredential.isOver18) {
258
256
  purchaseItem();
259
257
  } else {
260
258
  userNotOver18();
@@ -266,19 +264,15 @@ Verify a single SD-JWT-VC:
266
264
  ```javascript
267
265
  import { init, verify } from "@proof.com/proof-vc-common";
268
266
 
269
- init({
270
- environment: "sandbox",
271
- client_id: "verifier-demo",
272
- callback_uri: "https://demo.next.proof.com/",
273
- });
267
+ init({ trustRoot: "production" });
274
268
 
275
269
  const encodedSDJWT = "eyJraWQiOiI3...";
276
- const verifiableCredential = verify({
270
+ const verifiableCredential = await verify({
277
271
  encodedSDJWT,
278
272
  nonce: "3e8e4918-e9fb-453a-a538-81152be15c1b",
279
273
  });
280
274
 
281
- if (verifiableCredential.isOver18()) {
275
+ if (verifiableCredential.isOver18) {
282
276
  purchaseItem();
283
277
  } else {
284
278
  userNotOver18();
@@ -293,7 +287,7 @@ following the CA/B Forum Baseline Requirements for the Issuance and Management o
293
287
  The Proof Root CA R1 Certificate is published at http://cert.proof.com/proof-root-ca-r1.crt and
294
288
  is also committed in this repository [proof-root-ca-r1.crt](src/certificates/trust_store/proof_root_ca_r1.ts).
295
289
 
296
- The sandbox Root CA R1 Development certificate is also committed in this repository [proof-root-ca-r1-development.crt](src/certificates/trust_store/proof_root_ca_r1_development.ts) and used when `environment: "sandbox"`.
290
+ The sandbox Root CA R1 Development certificate is also committed in this repository [proof-root-ca-r1-development.crt](src/certificates/trust_store/proof_root_ca_r1_development.ts) and used when `trustRoot: "development"`.
297
291
 
298
292
  ## Documentation
299
293
 
@@ -1,6 +1,6 @@
1
1
  export function verifyChain(chain, root) {
2
2
  if (chain.length === 0) {
3
- throw new Error("verifyChain: empty chain");
3
+ throw "verifyChain: empty chain";
4
4
  }
5
5
  const full = [...chain, root];
6
6
  const now = new Date();
@@ -10,20 +10,20 @@ export function verifyChain(chain, root) {
10
10
  const validFrom = new Date(cert.validFromDate);
11
11
  const validTo = new Date(cert.validToDate);
12
12
  if (now < validFrom || now > validTo) {
13
- throw new Error(`Certificate at index ${i} is expired or not yet valid`);
13
+ throw `Certificate at index ${i} is expired or not yet valid`;
14
14
  }
15
15
  if (!cert.checkIssued(issuer)) {
16
- throw new Error(`Certificate at index ${i} not issued by next in chain`);
16
+ throw `Certificate at index ${i} not issued by next in chain`;
17
17
  }
18
18
  if (!cert.verify(issuer.publicKey)) {
19
- throw new Error(`Certificate at index ${i} has invalid signature`);
19
+ throw `Certificate at index ${i} has invalid signature`;
20
20
  }
21
21
  }
22
22
  if (now > new Date(root.validToDate)) {
23
- throw new Error("Root certificate expired");
23
+ throw "Root certificate expired";
24
24
  }
25
25
  if (!root.verify(root.publicKey)) {
26
- throw new Error("Root is not self-signed");
26
+ throw "Root is not self-signed";
27
27
  }
28
28
  }
29
29
  //# sourceMappingURL=chain_validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain_validator.js","sourceRoot":"","sources":["../../src/certificates/chain_validator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,KAAwB,EACxB,IAAqB;IAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAE5B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,SAAS,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"chain_validator.js","sourceRoot":"","sources":["../../src/certificates/chain_validator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CACzB,KAAwB,EACxB,IAAqB;IAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,0BAA0B,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAE5B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,SAAS,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;YACrC,MAAM,wBAAwB,CAAC,8BAA8B,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,wBAAwB,CAAC,8BAA8B,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,wBAAwB,CAAC,wBAAwB,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,0BAA0B,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,yBAAyB,CAAC;IAClC,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { X509Certificate } from "node:crypto";
2
- import type { Environment } from "../../types.ts";
3
- export declare function getTrustRoot(env: Environment): X509Certificate;
2
+ import type { TrustRoot } from "../../types.ts";
3
+ export declare function getTrustRoot(trustRoot: TrustRoot): X509Certificate;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/certificates/trust_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe,CAU9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/certificates/trust_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOhD,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,CAOlE"}
@@ -3,14 +3,11 @@ import { PROOF_ROOT_CA_R1_PEM } from "./proof_root_ca_r1.js";
3
3
  import { PROOF_ROOT_CA_R1_DEVELOPMENT_PEM } from "./proof_root_ca_r1_development.js";
4
4
  const PRODUCTION_ROOT = new X509Certificate(PROOF_ROOT_CA_R1_PEM);
5
5
  const DEVELOPMENT_ROOT = new X509Certificate(PROOF_ROOT_CA_R1_DEVELOPMENT_PEM);
6
- export function getTrustRoot(env) {
7
- switch (env) {
6
+ export function getTrustRoot(trustRoot) {
7
+ switch (trustRoot) {
8
8
  case "production":
9
9
  return PRODUCTION_ROOT;
10
- case "localhost":
11
- case "next":
12
- case "staging":
13
- case "sandbox":
10
+ case "development":
14
11
  return DEVELOPMENT_ROOT;
15
12
  }
16
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/certificates/trust_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAErF,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;AAClE,MAAM,gBAAgB,GAAG,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAC;AAE/E,MAAM,UAAU,YAAY,CAAC,GAAgB;IAC3C,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,YAAY;YACf,OAAO,eAAe,CAAC;QACzB,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/certificates/trust_store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAErF,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;AAClE,MAAM,gBAAgB,GAAG,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAC;AAE/E,MAAM,UAAU,YAAY,CAAC,SAAoB;IAC/C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,eAAe,CAAC;QACzB,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export type * from "./types.ts";
2
2
  export type { TransactionData, WireInstructionsTransactionData, PaymentMandateTransactionData, PaymentItemizedTransactionData, SessionDataTransactionData, WireInstructionsPayload, PaymentMandatePayload, PaymentItemizedPayload, PaymentItemizedItem, SessionDataPayload, } from "./transaction_data.ts";
3
3
  export { TX_DATA_TYPE, transactionData } from "./transaction_data.ts";
4
+ export type { BrowserInitParams, AuthorizationRequestParams, } from "./presentation/base_client.ts";
4
5
  export { init, getAuthorizationRequestURL } from "./vc_presentation.browser.ts";
5
6
  //# sourceMappingURL=index.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAChC,YAAY,EACV,eAAe,EACf,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAChC,YAAY,EACV,eAAe,EACf,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,YAAY,EACV,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOtE,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,5 +1,8 @@
1
1
  export type * from "./types.ts";
2
2
  export type { TransactionData, WireInstructionsTransactionData, PaymentMandateTransactionData, PaymentItemizedTransactionData, SessionDataTransactionData, WireInstructionsPayload, PaymentMandatePayload, PaymentItemizedPayload, PaymentItemizedItem, SessionDataPayload, } from "./transaction_data.ts";
3
3
  export { TX_DATA_TYPE, transactionData } from "./transaction_data.ts";
4
+ export { ProofCredentialV1 } from "./proof_credentials.ts";
5
+ export type { AuthorizationRequestParams } from "./presentation/base_client.ts";
6
+ export type { NodeInitParams, VerifyParams, VerifyVPTokenParams, } from "./presentation/node_client.ts";
4
7
  export { init, getAuthorizationRequestURL, verify, verifyVPToken, } from "./vc_presentation.node.ts";
5
8
  //# sourceMappingURL=index.node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAChC,YAAY,EACV,eAAe,EACf,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EACL,IAAI,EACJ,0BAA0B,EAC1B,MAAM,EACN,aAAa,GACd,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAChC,YAAY,EACV,eAAe,EACf,+BAA+B,EAC/B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,YAAY,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,YAAY,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,IAAI,EACJ,0BAA0B,EAC1B,MAAM,EACN,aAAa,GACd,MAAM,2BAA2B,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { TX_DATA_TYPE, transactionData } from "./transaction_data.js";
2
+ export { ProofCredentialV1 } from "./proof_credentials.js";
2
3
  export { init, getAuthorizationRequestURL, verify, verifyVPToken, } from "./vc_presentation.node.js";
3
4
  //# sourceMappingURL=index.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.node.js","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EACL,IAAI,EACJ,0BAA0B,EAC1B,MAAM,EACN,aAAa,GACd,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.node.js","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAS3D,OAAO,EACL,IAAI,EACJ,0BAA0B,EAC1B,MAAM,EACN,aAAa,GACd,MAAM,2BAA2B,CAAC"}
@@ -1,35 +1,36 @@
1
1
  import type { Environment, ResponseMode, ResponseType, Scope } from "../types.ts";
2
2
  import { type TransactionData } from "../transaction_data.ts";
3
- export type VCPresentationClientParams = {
3
+ export type BrowserInitParams = {
4
4
  environment: Environment;
5
- client_id: string;
6
- client_secret?: string;
7
- use_pushed_authorization_request?: boolean;
8
- response_mode?: ResponseMode;
9
- callback_uri: string;
5
+ clientId: string;
6
+ callbackUri: string;
7
+ responseMode?: ResponseMode;
10
8
  };
11
9
  export type AuthorizationRequestParams = {
12
10
  scope: Scope;
13
11
  nonce: string;
14
12
  state?: string;
15
- login_hint?: string;
16
- transaction_data?: TransactionData | string;
13
+ loginHint?: string;
14
+ transactionData?: TransactionData | string;
17
15
  };
18
16
  export declare class VCPresentationClient {
19
- protected readonly environment: Environment;
20
- protected readonly client_id: string;
21
- protected readonly client_secret?: string;
22
- protected readonly use_pushed_authorization_request: boolean;
23
- protected readonly response_mode: ResponseMode;
24
- protected readonly response_type: ResponseType;
25
- protected readonly callback_uri: string;
26
- protected readonly oid4vp_uri = "/verifiable-credentials/v1/presentation";
27
- constructor({ environment, client_id, client_secret, use_pushed_authorization_request, response_mode, callback_uri, }: VCPresentationClientParams);
17
+ protected readonly environment?: Environment;
18
+ protected readonly clientId?: string;
19
+ protected readonly responseMode: ResponseMode;
20
+ protected readonly responseType: ResponseType;
21
+ protected readonly callbackUri?: string;
22
+ protected readonly oid4vpUri = "/verifiable-credentials/v1/presentation";
23
+ constructor(params: {
24
+ environment?: Environment;
25
+ clientId?: string;
26
+ responseMode?: ResponseMode;
27
+ callbackUri?: string;
28
+ });
28
29
  getAuthorizationRequestURL(params: AuthorizationRequestParams): Promise<string>;
30
+ protected requireRequestConfig(): void;
29
31
  protected baseURL(): string;
30
- private buildAuthorizeURL;
31
- private pushAuthorizationRequest;
32
- private buildParameters;
33
- private defaultAuthorizationRequestParameters;
32
+ protected buildAuthorizeURL(params: AuthorizationRequestParams): string;
33
+ protected buildParameters({ scope, nonce, state, loginHint, transactionData, }: AuthorizationRequestParams): URLSearchParams;
34
+ protected defaultAuthorizationRequestParameters(): Record<string, string>;
34
35
  }
35
36
  //# sourceMappingURL=base_client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base_client.d.ts","sourceRoot":"","sources":["../../src/presentation/base_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,KAAK,EACN,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;CAC7C,CAAC;AAEF,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,gCAAgC,EAAE,OAAO,CAAS;IACrE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAc;IAC5D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAc;IAC5D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,UAAU,6CAA6C;gBAE9D,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,gCAAgC,EAChC,aAAa,EACb,YAAY,GACb,EAAE,0BAA0B;IAgBhB,0BAA0B,CACrC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC;IAMlB,SAAS,CAAC,OAAO,IAAI,MAAM;IAe3B,OAAO,CAAC,iBAAiB;YAMX,wBAAwB;IA2BtC,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,qCAAqC;CAgB9C"}
1
+ {"version":3,"file":"base_client.d.ts","sourceRoot":"","sources":["../../src/presentation/base_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,KAAK,EACN,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;CAC5C,CAAC;AAEF,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAc;IAC3D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAc;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,SAAS,6CAA6C;gBAE7D,MAAM,EAAE;QAClB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IAeY,0BAA0B,CACrC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC;IAKlB,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAYtC,SAAS,CAAC,OAAO,IAAI,MAAM;IAiB3B,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,GAAG,MAAM;IAMvE,SAAS,CAAC,eAAe,CAAC,EACxB,KAAK,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,GAChB,EAAE,0BAA0B,GAAG,eAAe;IAiB/C,SAAS,CAAC,qCAAqC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAa1E"}
@@ -1,31 +1,39 @@
1
1
  import { encodeTransactionData, } from "../transaction_data.js";
2
2
  export class VCPresentationClient {
3
3
  environment;
4
- client_id;
5
- client_secret;
6
- use_pushed_authorization_request = false;
7
- response_mode = "fragment";
8
- response_type = "vp_token";
9
- callback_uri;
10
- oid4vp_uri = "/verifiable-credentials/v1/presentation";
11
- constructor({ environment, client_id, client_secret, use_pushed_authorization_request, response_mode, callback_uri, }) {
12
- this.environment = environment;
13
- this.client_id = client_id;
14
- this.callback_uri = callback_uri;
15
- if (client_secret !== undefined) {
16
- this.client_secret = client_secret;
4
+ clientId;
5
+ responseMode = "fragment";
6
+ responseType = "vp_token";
7
+ callbackUri;
8
+ oid4vpUri = "/verifiable-credentials/v1/presentation";
9
+ constructor(params) {
10
+ if (params.environment !== undefined) {
11
+ this.environment = params.environment;
17
12
  }
18
- if (use_pushed_authorization_request !== undefined) {
19
- this.use_pushed_authorization_request = use_pushed_authorization_request;
13
+ if (params.clientId !== undefined) {
14
+ this.clientId = params.clientId;
20
15
  }
21
- if (response_mode !== undefined) {
22
- this.response_mode = response_mode;
16
+ if (params.callbackUri !== undefined) {
17
+ this.callbackUri = params.callbackUri;
18
+ }
19
+ if (params.responseMode !== undefined) {
20
+ this.responseMode = params.responseMode;
23
21
  }
24
22
  }
25
23
  async getAuthorizationRequestURL(params) {
26
- return this.use_pushed_authorization_request
27
- ? this.pushAuthorizationRequest(params)
28
- : this.buildAuthorizeURL(params);
24
+ this.requireRequestConfig();
25
+ return this.buildAuthorizeURL(params);
26
+ }
27
+ requireRequestConfig() {
28
+ if (this.environment === undefined) {
29
+ throw "getAuthorizationRequestURL requires `environment` in init()";
30
+ }
31
+ if (this.clientId === undefined) {
32
+ throw "getAuthorizationRequestURL requires `clientId` in init()";
33
+ }
34
+ if (this.callbackUri === undefined) {
35
+ throw "getAuthorizationRequestURL requires `callbackUri` in init()";
36
+ }
29
37
  }
30
38
  baseURL() {
31
39
  switch (this.environment) {
@@ -39,41 +47,25 @@ export class VCPresentationClient {
39
47
  return "https://api.fairfax.proof.com";
40
48
  case "production":
41
49
  return "https://api.proof.com";
50
+ default:
51
+ throw "getAuthorizationRequestURL requires `environment` in init()";
42
52
  }
43
53
  }
44
54
  buildAuthorizeURL(params) {
45
- const url = new URL(`${this.oid4vp_uri}/authorize`, this.baseURL());
55
+ const url = new URL(`${this.oid4vpUri}/authorize`, this.baseURL());
46
56
  url.search = this.buildParameters(params).toString();
47
57
  return url.toString();
48
58
  }
49
- async pushAuthorizationRequest(params) {
50
- const parURL = new URL(`${this.oid4vp_uri}/par`, this.baseURL()).toString();
51
- const response = await fetch(parURL, {
52
- method: "POST",
53
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
54
- body: this.buildParameters(params).toString(),
55
- });
56
- const data = await response.json();
57
- if (!response.ok) {
58
- throw `${data["error"]}: ${data["error_description"]}`;
59
- }
60
- const authorizeURL = new URL(`${this.oid4vp_uri}/authorize`, this.baseURL());
61
- authorizeURL.search = new URLSearchParams({
62
- client_id: this.client_id,
63
- request_uri: data["request_uri"],
64
- }).toString();
65
- return authorizeURL.toString();
66
- }
67
- buildParameters({ scope, nonce, state, login_hint, transaction_data, }) {
68
- const encodedTransactionData = typeof transaction_data === "object"
69
- ? encodeTransactionData(transaction_data)
70
- : transaction_data;
59
+ buildParameters({ scope, nonce, state, loginHint, transactionData, }) {
60
+ const encodedTransactionData = typeof transactionData === "object"
61
+ ? encodeTransactionData(transactionData)
62
+ : transactionData;
71
63
  return new URLSearchParams({
72
64
  ...this.defaultAuthorizationRequestParameters(),
73
65
  scope,
74
66
  nonce,
75
67
  ...(state !== undefined && { state }),
76
- ...(login_hint !== undefined && { login_hint }),
68
+ ...(loginHint !== undefined && { login_hint: loginHint }),
77
69
  ...(encodedTransactionData !== undefined && {
78
70
  transaction_data: encodedTransactionData,
79
71
  }),
@@ -81,17 +73,14 @@ export class VCPresentationClient {
81
73
  }
82
74
  defaultAuthorizationRequestParameters() {
83
75
  return {
84
- client_id: this.client_id,
85
- ...(this.client_secret !== undefined && {
86
- client_secret: this.client_secret,
87
- }),
88
- response_mode: this.response_mode,
89
- response_type: this.response_type,
90
- ...(this.response_mode === "fragment" && {
91
- redirect_uri: this.callback_uri,
76
+ client_id: this.clientId,
77
+ response_mode: this.responseMode,
78
+ response_type: this.responseType,
79
+ ...(this.responseMode === "fragment" && {
80
+ redirect_uri: this.callbackUri,
92
81
  }),
93
- ...(this.response_mode === "direct_post" && {
94
- response_uri: this.callback_uri,
82
+ ...(this.responseMode === "direct_post" && {
83
+ response_uri: this.callbackUri,
95
84
  }),
96
85
  };
97
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base_client.js","sourceRoot":"","sources":["../../src/presentation/base_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base_client.js","sourceRoot":"","sources":["../../src/presentation/base_client.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,34 @@
1
- import type { ProofCredential, VPToken } from "../types.ts";
2
- import { VCPresentationClient } from "./base_client.ts";
1
+ import type { Environment, ProofCredential, ResponseMode, TrustRoot, VPToken } from "../types.ts";
2
+ import { VCPresentationClient, type AuthorizationRequestParams } from "./base_client.ts";
3
+ export type NodeInitParams = {
4
+ trustRoot?: TrustRoot;
5
+ environment?: Environment;
6
+ clientId?: string;
7
+ clientSecret?: string;
8
+ callbackUri?: string;
9
+ responseMode?: ResponseMode;
10
+ usePushedAuthorizationRequest?: boolean;
11
+ };
3
12
  export type VerifyParams = {
4
13
  encodedSDJWT: string;
5
14
  nonce?: string;
15
+ aud?: string;
6
16
  };
7
17
  export type VerifyVPTokenParams = {
8
18
  encodedVPToken: string;
9
19
  nonce?: string;
20
+ aud?: string;
10
21
  };
11
22
  export declare class NodeVCPresentationClient extends VCPresentationClient {
12
- verify({ encodedSDJWT, nonce, }: VerifyParams): Promise<ProofCredential>;
13
- verifyVPToken({ encodedVPToken, nonce, }: VerifyVPTokenParams): Promise<VPToken>;
23
+ protected readonly clientSecret?: string;
24
+ protected readonly usePushedAuthorizationRequest: boolean;
25
+ protected readonly trustRoot?: TrustRoot;
26
+ constructor(params: NodeInitParams);
27
+ getAuthorizationRequestURL(params: AuthorizationRequestParams): Promise<string>;
28
+ protected defaultAuthorizationRequestParameters(): Record<string, string>;
29
+ protected pushAuthorizationRequest(params: AuthorizationRequestParams): Promise<string>;
30
+ protected requireTrustRoot(): TrustRoot;
31
+ verify({ encodedSDJWT, nonce, aud, }: VerifyParams): Promise<ProofCredential>;
32
+ verifyVPToken({ encodedVPToken, nonce, aud, }: VerifyVPTokenParams): Promise<VPToken>;
14
33
  }
15
34
  //# sourceMappingURL=node_client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node_client.d.ts","sourceRoot":"","sources":["../../src/presentation/node_client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiCF,qBAAa,wBAAyB,SAAQ,oBAAoB;IACnD,MAAM,CAAC,EAClB,YAAY,EACZ,KAAK,GACN,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IA+C7B,aAAa,CAAC,EACzB,cAAc,EACd,KAAK,GACN,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAoB1C"}
1
+ {"version":3,"file":"node_client.d.ts","sourceRoot":"","sources":["../../src/presentation/node_client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,SAAS,EACT,OAAO,EACR,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,EAChC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAiCF,qBAAa,wBAAyB,SAAQ,oBAAoB;IAChE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,6BAA6B,EAAE,OAAO,CAAS;IAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;gBAE7B,MAAM,EAAE,cAAc;IAaZ,0BAA0B,CAC9C,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC;cAOC,qCAAqC,IAAI,MAAM,CAChE,MAAM,EACN,MAAM,CACP;cASe,wBAAwB,CACtC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC;IAyBlB,SAAS,CAAC,gBAAgB,IAAI,SAAS;IAO1B,MAAM,CAAC,EAClB,YAAY,EACZ,KAAK,EACL,GAAG,GACJ,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAoD7B,aAAa,CAAC,EACzB,cAAc,EACd,KAAK,EACL,GAAG,GACJ,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAqB1C"}
@@ -7,7 +7,7 @@ import { credentialIdAsType } from "../utils.js";
7
7
  import { getProofCredential } from "../proof_credential_factory.js";
8
8
  import { verifyChain } from "../certificates/chain_validator.js";
9
9
  import { getTrustRoot } from "../certificates/trust_store/index.js";
10
- import { VCPresentationClient } from "./base_client.js";
10
+ import { VCPresentationClient, } from "./base_client.js";
11
11
  const VERIFIERS = { ES256, ES384, ES512 };
12
12
  const EXPECTED_CURVE = {
13
13
  ES256: "P-256",
@@ -31,7 +31,63 @@ function kbVerifierFor(kbAlg) {
31
31
  };
32
32
  }
33
33
  export class NodeVCPresentationClient extends VCPresentationClient {
34
- async verify({ encodedSDJWT, nonce, }) {
34
+ clientSecret;
35
+ usePushedAuthorizationRequest = false;
36
+ trustRoot;
37
+ constructor(params) {
38
+ super(params);
39
+ if (params.clientSecret !== undefined) {
40
+ this.clientSecret = params.clientSecret;
41
+ }
42
+ if (params.usePushedAuthorizationRequest !== undefined) {
43
+ this.usePushedAuthorizationRequest = params.usePushedAuthorizationRequest;
44
+ }
45
+ if (params.trustRoot !== undefined) {
46
+ this.trustRoot = params.trustRoot;
47
+ }
48
+ }
49
+ async getAuthorizationRequestURL(params) {
50
+ this.requireRequestConfig();
51
+ return this.usePushedAuthorizationRequest
52
+ ? this.pushAuthorizationRequest(params)
53
+ : this.buildAuthorizeURL(params);
54
+ }
55
+ defaultAuthorizationRequestParameters() {
56
+ return {
57
+ ...super.defaultAuthorizationRequestParameters(),
58
+ ...(this.clientSecret !== undefined && {
59
+ client_secret: this.clientSecret,
60
+ }),
61
+ };
62
+ }
63
+ async pushAuthorizationRequest(params) {
64
+ if (this.clientSecret === undefined) {
65
+ throw "pushed authorization requests require `clientSecret` in init()";
66
+ }
67
+ const parURL = new URL(`${this.oid4vpUri}/par`, this.baseURL()).toString();
68
+ const response = await fetch(parURL, {
69
+ method: "POST",
70
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
71
+ body: this.buildParameters(params).toString(),
72
+ });
73
+ const data = await response.json();
74
+ if (!response.ok) {
75
+ throw `${data["error"]}: ${data["error_description"]}`;
76
+ }
77
+ const authorizeURL = new URL(`${this.oid4vpUri}/authorize`, this.baseURL());
78
+ authorizeURL.search = new URLSearchParams({
79
+ client_id: this.clientId,
80
+ request_uri: data["request_uri"],
81
+ }).toString();
82
+ return authorizeURL.toString();
83
+ }
84
+ requireTrustRoot() {
85
+ if (this.trustRoot === undefined) {
86
+ throw "verify requires `trustRoot` in init()";
87
+ }
88
+ return this.trustRoot;
89
+ }
90
+ async verify({ encodedSDJWT, nonce, aud, }) {
35
91
  const decoded = await new SDJwtVcInstance({ hasher }).decode(encodedSDJWT);
36
92
  const alg = decoded.jwt?.header?.["alg"];
37
93
  const x5c = decoded.jwt?.header?.["x5c"];
@@ -50,10 +106,16 @@ export class NodeVCPresentationClient extends VCPresentationClient {
50
106
  if (!isSupportedAlg(kbAlg)) {
51
107
  throw `Unsupported or missing KB JWT alg: ${kbAlg}`;
52
108
  }
109
+ if (aud !== undefined && decoded.kbJwt.payload?.aud !== aud) {
110
+ throw `KB JWT aud ${decoded.kbJwt.payload?.aud} does not match expected aud ${aud}`;
111
+ }
53
112
  kbVerifier = kbVerifierFor(kbAlg);
54
113
  }
114
+ else if (aud !== undefined) {
115
+ throw "aud was supplied for verification but the SD-JWT-VC contains no KB JWT";
116
+ }
55
117
  const chain = x5c.map((b64) => new X509Certificate(Buffer.from(b64, "base64")));
56
- verifyChain(chain, getTrustRoot(this.environment));
118
+ verifyChain(chain, getTrustRoot(this.requireTrustRoot()));
57
119
  const leafJwk = chain[0].publicKey.export({ format: "jwk" });
58
120
  if (leafJwk.crv !== EXPECTED_CURVE[alg]) {
59
121
  throw `Leaf cert curve ${leafJwk.crv} does not match alg ${alg}`;
@@ -69,7 +131,7 @@ export class NodeVCPresentationClient extends VCPresentationClient {
69
131
  });
70
132
  return getProofCredential(decoded);
71
133
  }
72
- async verifyVPToken({ encodedVPToken, nonce, }) {
134
+ async verifyVPToken({ encodedVPToken, nonce, aud, }) {
73
135
  const records = JSON.parse(base64urlDecode(encodedVPToken));
74
136
  const vpToken = {};
75
137
  for (const [key, encodedSDJWTs] of Object.entries(records)) {
@@ -79,6 +141,7 @@ export class NodeVCPresentationClient extends VCPresentationClient {
79
141
  const credential = await this.verify({
80
142
  encodedSDJWT,
81
143
  ...(nonce !== undefined && { nonce }),
144
+ ...(aud !== undefined && { aud }),
82
145
  });
83
146
  vpToken[credentialId].push(credential);
84
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node_client.js","sourceRoot":"","sources":["../../src/presentation/node_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node_client.js","sourceRoot":"","sources":["../../src/presentation/node_client.ts"],"names":[],"mappings":"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"}
@@ -23,20 +23,15 @@ type ProofCredentialV1Params = {
23
23
  is_over_65?: boolean;
24
24
  } & CredentialParams;
25
25
  export declare class ProofCredentialV1 extends Credential {
26
- private readonly given_name;
27
- private readonly family_name;
26
+ readonly givenName: string | undefined;
27
+ readonly familyName: string | undefined;
28
+ readonly isOver18: boolean | undefined;
29
+ readonly isOver21: boolean | undefined;
30
+ readonly isOver65: boolean | undefined;
28
31
  private readonly birth_date;
29
- private readonly is_over_18;
30
- private readonly is_over_21;
31
- private readonly is_over_65;
32
32
  constructor(params: ProofCredentialV1Params);
33
33
  credentialType(): CredentialType;
34
34
  format(): Format;
35
- givenName(): string | undefined;
36
- familyName(): string | undefined;
37
- dateOfBirth(): Date | undefined;
38
- isOver18(): boolean | undefined;
39
- isOver21(): boolean | undefined;
40
- isOver65(): boolean | undefined;
35
+ get dateOfBirth(): Date | undefined;
41
36
  }
42
37
  //# sourceMappingURL=proof_credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proof_credentials.d.ts","sourceRoot":"","sources":["../src/proof_credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,uBAAe,UAAW,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB;IAKzD,QAAQ,CAAC,cAAc,IAAI,cAAc;IACzC,QAAQ,CAAC,MAAM,IAAI,MAAM;IAElB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,QAAQ,IAAI,KAAK;CAGzB;AAED,KAAK,uBAAuB,GAAG;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,gBAAgB,CAAC;AAErB,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;gBAErC,MAAM,EAAE,uBAAuB;IAUpC,cAAc,IAAI,cAAc;IAIhC,MAAM,IAAI,MAAM;IAIhB,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,WAAW,IAAI,IAAI,GAAG,SAAS;IAQ/B,QAAQ,IAAI,OAAO,GAAG,SAAS;IAI/B,QAAQ,IAAI,OAAO,GAAG,SAAS;IAI/B,QAAQ,IAAI,OAAO,GAAG,SAAS;CAGvC"}
1
+ {"version":3,"file":"proof_credentials.d.ts","sourceRoot":"","sources":["../src/proof_credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,uBAAe,UAAW,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB;IAKzD,QAAQ,CAAC,cAAc,IAAI,cAAc;IACzC,QAAQ,CAAC,MAAM,IAAI,MAAM;IAElB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIpC,QAAQ,IAAI,KAAK;CAGzB;AAED,KAAK,uBAAuB,GAAG;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,gBAAgB,CAAC;AAErB,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,SAAgB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,SAAgB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,SAAgB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,SAAgB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,MAAM,EAAE,uBAAuB;IAUpC,cAAc,IAAI,cAAc;IAIhC,MAAM,IAAI,MAAM;IAIvB,IAAW,WAAW,IAAI,IAAI,GAAG,SAAS,CAIzC;CACF"}
@@ -13,20 +13,20 @@ class Credential {
13
13
  }
14
14
  }
15
15
  export class ProofCredentialV1 extends Credential {
16
- given_name;
17
- family_name;
16
+ givenName;
17
+ familyName;
18
+ isOver18;
19
+ isOver21;
20
+ isOver65;
18
21
  birth_date;
19
- is_over_18;
20
- is_over_21;
21
- is_over_65;
22
22
  constructor(params) {
23
23
  super(params);
24
- this.given_name = params.given_name;
25
- this.family_name = params.family_name;
24
+ this.givenName = params.given_name;
25
+ this.familyName = params.family_name;
26
26
  this.birth_date = params.birth_date;
27
- this.is_over_18 = params.is_over_18;
28
- this.is_over_21 = params.is_over_21;
29
- this.is_over_65 = params.is_over_65;
27
+ this.isOver18 = params.is_over_18;
28
+ this.isOver21 = params.is_over_21;
29
+ this.isOver65 = params.is_over_65;
30
30
  }
31
31
  credentialType() {
32
32
  return "ProofCredentialV1";
@@ -34,28 +34,10 @@ export class ProofCredentialV1 extends Credential {
34
34
  format() {
35
35
  return "dc+sd-jwt";
36
36
  }
37
- givenName() {
38
- return this.given_name;
39
- }
40
- familyName() {
41
- return this.family_name;
42
- }
43
- dateOfBirth() {
44
- if (this.birth_date !== undefined) {
45
- return new Date(this.birth_date);
46
- }
47
- else {
48
- return undefined;
49
- }
50
- }
51
- isOver18() {
52
- return this.is_over_18;
53
- }
54
- isOver21() {
55
- return this.is_over_21;
56
- }
57
- isOver65() {
58
- return this.is_over_65;
37
+ get dateOfBirth() {
38
+ return this.birth_date !== undefined
39
+ ? new Date(this.birth_date)
40
+ : undefined;
59
41
  }
60
42
  }
61
43
  //# sourceMappingURL=proof_credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proof_credentials.js","sourceRoot":"","sources":["../src/proof_credentials.ts"],"names":[],"mappings":"AAUA,MAAe,UAAU;IACN,KAAK,CAAQ;IACb,MAAM,CAA0B;IAEjD,YAAsB,EAAE,KAAK,EAAE,MAAM,EAAoB;QACvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAKM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAWD,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC9B,UAAU,CAAqB;IAC/B,WAAW,CAAqB;IAChC,UAAU,CAAqB;IAC/B,UAAU,CAAsB;IAChC,UAAU,CAAsB;IAChC,UAAU,CAAsB;IAEjD,YAAY,MAA+B;QACzC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACtC,CAAC;IAEM,cAAc;QACnB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEM,MAAM;QACX,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,WAAW;QAChB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"proof_credentials.js","sourceRoot":"","sources":["../src/proof_credentials.ts"],"names":[],"mappings":"AAUA,MAAe,UAAU;IACN,KAAK,CAAQ;IACb,MAAM,CAA0B;IAEjD,YAAsB,EAAE,KAAK,EAAE,MAAM,EAAoB;QACvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAKM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAWD,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAC/B,SAAS,CAAqB;IAC9B,UAAU,CAAqB;IAC/B,QAAQ,CAAsB;IAC9B,QAAQ,CAAsB;IAC9B,QAAQ,CAAsB;IAC7B,UAAU,CAAqB;IAEhD,YAAY,MAA+B;QACzC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IACpC,CAAC;IAEM,cAAc;QACnB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEM,MAAM;QACX,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC3B,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { SDJwt } from "@sd-jwt/core";
2
2
  export type Environment = "localhost" | "next" | "staging" | "sandbox" | "production";
3
+ export type TrustRoot = "development" | "production";
3
4
  export type ResponseMode = "fragment" | "direct_post";
4
5
  export type ResponseType = "vp_token";
5
6
  export type Scope = "urn:proof:params:scope:verifiable-credentials:basic";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,MAAM,GACN,SAAS,GACT,SAAS,GACT,YAAY,CAAC;AACjB,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AACtC,MAAM,MAAM,KAAK,GAAG,qDAAqD,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAC9C,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AACjD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC,MAAM,WAAW,eAAe;IAC9B,cAAc,IAAI,cAAc,CAAC;IACjC,MAAM,IAAI,MAAM,CAAC;IACjB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,IAAI,KAAK,CAAC;CACnB;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,MAAM,GACN,SAAS,GACT,SAAS,GACT,YAAY,CAAC;AACjB,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,YAAY,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AACtC,MAAM,MAAM,KAAK,GAAG,qDAAqD,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAC9C,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AACjD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC,MAAM,WAAW,eAAe;IAC9B,cAAc,IAAI,cAAc,CAAC;IACjC,MAAM,IAAI,MAAM,CAAC;IACjB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,IAAI,KAAK,CAAC;CACnB;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type VCPresentationClientParams, type AuthorizationRequestParams } from "./presentation/base_client.ts";
2
- export declare function init(params: VCPresentationClientParams): void;
1
+ import { type BrowserInitParams, type AuthorizationRequestParams } from "./presentation/base_client.ts";
2
+ export declare function init(params: BrowserInitParams): void;
3
3
  export declare function getAuthorizationRequestURL(params: AuthorizationRequestParams): Promise<string>;
4
4
  //# sourceMappingURL=vc_presentation.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vc_presentation.browser.d.ts","sourceRoot":"","sources":["../src/vc_presentation.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAChC,MAAM,+BAA+B,CAAC;AAIvC,wBAAgB,IAAI,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI,CAI7D;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC,CAIjB"}
1
+ {"version":3,"file":"vc_presentation.browser.d.ts","sourceRoot":"","sources":["../src/vc_presentation.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAChC,MAAM,+BAA+B,CAAC;AAIvC,wBAAgB,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAIpD;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC,CAIjB"}
@@ -2,7 +2,7 @@ import { VCPresentationClient, } from "./presentation/base_client.js";
2
2
  let instance = null;
3
3
  export function init(params) {
4
4
  if (params.environment === "production" && instance)
5
- throw new Error("VCPresentationClient already initialized (browser)");
5
+ throw "VCPresentationClient already initialized (browser)";
6
6
  instance = new VCPresentationClient(params);
7
7
  }
8
8
  export async function getAuthorizationRequestURL(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"vc_presentation.browser.js","sourceRoot":"","sources":["../src/vc_presentation.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAGrB,MAAM,+BAA+B,CAAC;AAEvC,IAAI,QAAQ,GAAgC,IAAI,CAAC;AAEjD,MAAM,UAAU,IAAI,CAAC,MAAkC;IACrD,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,IAAI,QAAQ;QACjD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,QAAQ,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAkC;IAElC,IAAI,CAAC,QAAQ;QACX,MAAM,oEAAoE,CAAC;IAC7E,OAAO,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"vc_presentation.browser.js","sourceRoot":"","sources":["../src/vc_presentation.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAGrB,MAAM,+BAA+B,CAAC;AAEvC,IAAI,QAAQ,GAAgC,IAAI,CAAC;AAEjD,MAAM,UAAU,IAAI,CAAC,MAAyB;IAC5C,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,IAAI,QAAQ;QACjD,MAAM,oDAAoD,CAAC;IAC7D,QAAQ,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAkC;IAElC,IAAI,CAAC,QAAQ;QACX,MAAM,oEAAoE,CAAC;IAC7E,OAAO,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { VCPresentationClientParams, AuthorizationRequestParams } from "./presentation/base_client.ts";
2
- import { type VerifyParams, type VerifyVPTokenParams } from "./presentation/node_client.ts";
1
+ import type { AuthorizationRequestParams } from "./presentation/base_client.ts";
2
+ import { type NodeInitParams, type VerifyParams, type VerifyVPTokenParams } from "./presentation/node_client.ts";
3
3
  import type { ProofCredential, VPToken } from "./types.ts";
4
- export declare function init(params: VCPresentationClientParams): void;
4
+ export declare function init(params: NodeInitParams): void;
5
5
  export declare function getAuthorizationRequestURL(params: AuthorizationRequestParams): Promise<string>;
6
6
  export declare function verify(params: VerifyParams): Promise<ProofCredential>;
7
7
  export declare function verifyVPToken(params: VerifyVPTokenParams): Promise<VPToken>;
@@ -1 +1 @@
1
- {"version":3,"file":"vc_presentation.node.d.ts","sourceRoot":"","sources":["../src/vc_presentation.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI3D,wBAAgB,IAAI,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI,CAI7D;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAI3E;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAIlB"}
1
+ {"version":3,"file":"vc_presentation.node.d.ts","sourceRoot":"","sources":["../src/vc_presentation.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI3D,wBAAgB,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAIjD;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAI3E;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAIlB"}
@@ -2,7 +2,7 @@ import { NodeVCPresentationClient, } from "./presentation/node_client.js";
2
2
  let instance = null;
3
3
  export function init(params) {
4
4
  if (params.environment === "production" && instance)
5
- throw new Error("NodeVCPresentationClient already initialized (node)");
5
+ throw "NodeVCPresentationClient already initialized (node)";
6
6
  instance = new NodeVCPresentationClient(params);
7
7
  }
8
8
  export async function getAuthorizationRequestURL(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"vc_presentation.node.js","sourceRoot":"","sources":["../src/vc_presentation.node.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,GAGzB,MAAM,+BAA+B,CAAC;AAGvC,IAAI,QAAQ,GAAoC,IAAI,CAAC;AAErD,MAAM,UAAU,IAAI,CAAC,MAAkC;IACrD,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,IAAI,QAAQ;QACjD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,QAAQ,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAkC;IAElC,IAAI,CAAC,QAAQ;QACX,MAAM,qEAAqE,CAAC;IAC9E,OAAO,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAoB;IAC/C,IAAI,CAAC,QAAQ;QACX,MAAM,qEAAqE,CAAC;IAC9E,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B;IAE3B,IAAI,CAAC,QAAQ;QACX,MAAM,qEAAqE,CAAC;IAC9E,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"vc_presentation.node.js","sourceRoot":"","sources":["../src/vc_presentation.node.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,GAIzB,MAAM,+BAA+B,CAAC;AAGvC,IAAI,QAAQ,GAAoC,IAAI,CAAC;AAErD,MAAM,UAAU,IAAI,CAAC,MAAsB;IACzC,IAAI,MAAM,CAAC,WAAW,KAAK,YAAY,IAAI,QAAQ;QACjD,MAAM,qDAAqD,CAAC;IAC9D,QAAQ,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAkC;IAElC,IAAI,CAAC,QAAQ;QACX,MAAM,qEAAqE,CAAC;IAC9E,OAAO,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAoB;IAC/C,IAAI,CAAC,QAAQ;QACX,MAAM,qEAAqE,CAAC;IAC9E,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B;IAE3B,IAAI,CAAC,QAAQ;QACX,MAAM,qEAAqE,CAAC;IAC9E,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proof.com/proof-vc-common",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "A digital passport. Verified once, usable everywhere.",
5
5
  "keywords": [
6
6
  "VC",