@learncard/network-plugin 2.4.18 → 2.4.20

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.
@@ -9809,6 +9809,28 @@ var LCNNotificationValidator = mod.object({
9809
9809
  data: LCNNotificationDataValidator.optional(),
9810
9810
  sent: mod.string().datetime().optional()
9811
9811
  });
9812
+ var AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX = "auth-grant:";
9813
+ var AuthGrantValidator = mod.object({
9814
+ id: mod.string(),
9815
+ name: mod.string(),
9816
+ description: mod.string().optional(),
9817
+ challenge: mod.string().startsWith(AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX).min(10, { message: "Challenge is too short" }).max(100, { message: "Challenge is too long" }),
9818
+ status: mod.enum(["revoked", "active"], {
9819
+ required_error: "Status is required",
9820
+ invalid_type_error: "Status must be either active or revoked"
9821
+ }),
9822
+ scope: mod.string(),
9823
+ createdAt: mod.string().datetime({ message: "createdAt must be a valid ISO 8601 datetime string" }),
9824
+ expiresAt: mod.string().datetime({ message: "expiresAt must be a valid ISO 8601 datetime string" }).nullish().optional()
9825
+ });
9826
+ var FlatAuthGrantValidator = mod.object({ id: mod.string() }).catchall(mod.any());
9827
+ var AuthGrantStatusValidator = mod.enum(["active", "revoked"]);
9828
+ var AuthGrantQueryValidator = mod.object({
9829
+ id: StringQuery,
9830
+ name: StringQuery,
9831
+ description: StringQuery,
9832
+ status: AuthGrantStatusValidator
9833
+ }).partial();
9812
9834
 
9813
9835
  // src/plugin.ts
9814
9836
  var getLearnCardNetworkPlugin = /* @__PURE__ */ __name(async (learnCard, url) => {
@@ -10499,6 +10521,14 @@ var getLearnCardNetworkPlugin = /* @__PURE__ */ __name(async (learnCard, url) =>
10499
10521
  verifyConsent: async (_learnCard, uri, profileId) => {
10500
10522
  return client.contracts.verifyConsent.query({ uri, profileId });
10501
10523
  },
10524
+ syncCredentialsToContract: async (_learnCard, termsUri, categories) => {
10525
+ if (!userData)
10526
+ throw new Error("Please make an account first!");
10527
+ return client.contracts.syncCredentialsToContract.mutate({
10528
+ termsUri,
10529
+ categories
10530
+ });
10531
+ },
10502
10532
  addDidMetadata: async (_learnCard, metadata) => {
10503
10533
  if (!userData)
10504
10534
  throw new Error("Please make an account first!");
@@ -10548,6 +10578,58 @@ var getLearnCardNetworkPlugin = /* @__PURE__ */ __name(async (learnCard, url) =>
10548
10578
  throw new Error("Please make an account first!");
10549
10579
  return client.claimHook.deleteClaimHook.mutate({ id });
10550
10580
  },
10581
+ addAuthGrant: async (_learnCard, authGrant) => {
10582
+ if (!userData)
10583
+ throw new Error("Please make an account first!");
10584
+ return client.authGrants.addAuthGrant.mutate(authGrant);
10585
+ },
10586
+ revokeAuthGrant: async (_learnCard, id) => {
10587
+ if (!userData)
10588
+ throw new Error("Please make an account first!");
10589
+ return client.authGrants.revokeAuthGrant.mutate({ id });
10590
+ },
10591
+ deleteAuthGrant: async (_learnCard, id) => {
10592
+ if (!userData)
10593
+ throw new Error("Please make an account first!");
10594
+ return client.authGrants.deleteAuthGrant.mutate({ id });
10595
+ },
10596
+ updateAuthGrant: async (_learnCard, id, updates) => {
10597
+ if (!userData)
10598
+ throw new Error("Please make an account first!");
10599
+ return client.authGrants.updateAuthGrant.mutate({ id, updates });
10600
+ },
10601
+ getAuthGrant: async (_learnCard, id) => {
10602
+ if (!userData)
10603
+ throw new Error("Please make an account first!");
10604
+ return client.authGrants.getAuthGrant.query({ id });
10605
+ },
10606
+ getAuthGrants: async (_learnCard, options) => {
10607
+ if (!userData)
10608
+ throw new Error("Please make an account first!");
10609
+ return client.authGrants.getAuthGrants.query(options);
10610
+ },
10611
+ getAPITokenForAuthGrant: async (_learnCard, id) => {
10612
+ if (!userData)
10613
+ throw new Error("Please make an account first!");
10614
+ const authGrant = await client.authGrants.getAuthGrant.query({ id });
10615
+ if (!authGrant)
10616
+ throw new Error("Auth grant not found");
10617
+ if (authGrant.status !== "active")
10618
+ throw new Error("Auth grant is not active");
10619
+ if (!authGrant.challenge)
10620
+ throw new Error("Auth grant has no challenge");
10621
+ if (!authGrant.scope)
10622
+ throw new Error("Auth grant has no scope");
10623
+ if (authGrant.expiresAt && new Date(authGrant.expiresAt) < new Date())
10624
+ throw new Error("Auth grant is expired");
10625
+ const apiToken = await _learnCard.invoke.getDidAuthVp({
10626
+ challenge: authGrant.challenge,
10627
+ proofFormat: "jwt"
10628
+ });
10629
+ if (!apiToken)
10630
+ throw new Error("Failed to get API Token for auth grant");
10631
+ return apiToken;
10632
+ },
10551
10633
  resolveFromLCN: async (_learnCard, uri) => {
10552
10634
  const result = await client.storage.resolve.query({ uri });
10553
10635
  return UnsignedVCValidator.or(VCValidator).or(VPValidator).or(JWEValidator).or(ConsentFlowContractValidator).or(ConsentFlowTermsValidator).parseAsync(result);