@learncard/react 2.9.21 → 2.9.24

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 (97) hide show
  1. package/dist/cjs/{BoostGenericCard-7fadd6af.js → BoostGenericCard-a7715516.js} +2 -2
  2. package/dist/cjs/{BoostGenericCard-7fadd6af.js.map → BoostGenericCard-a7715516.js.map} +1 -1
  3. package/dist/cjs/{CertificateDisplayCard-3dd9a3f8.js → CertificateDisplayCard-068acbdd.js} +4 -4
  4. package/dist/cjs/{CertificateDisplayCard-3dd9a3f8.js.map → CertificateDisplayCard-068acbdd.js.map} +1 -1
  5. package/dist/cjs/{MeritBadgeDisplayCard-2a690a63.js → MeritBadgeDisplayCard-889bdf99.js} +4 -4
  6. package/dist/cjs/{MeritBadgeDisplayCard-2a690a63.js.map → MeritBadgeDisplayCard-889bdf99.js.map} +1 -1
  7. package/dist/cjs/{MeritBadgeSkillsCount-ae6e8ed4.js → MeritBadgeSkillsCount-63c3b095.js} +2 -2
  8. package/dist/cjs/{MeritBadgeSkillsCount-ae6e8ed4.js.map → MeritBadgeSkillsCount-63c3b095.js.map} +1 -1
  9. package/dist/cjs/{SchoolIDCard-dddb3b1d.js → SchoolIDCard-e22d0d80.js} +1184 -3
  10. package/dist/cjs/SchoolIDCard-e22d0d80.js.map +1 -0
  11. package/dist/cjs/{VCCard-7473b581.js → VCCard-a3d910f5.js} +3 -3
  12. package/dist/cjs/{VCCard-7473b581.js.map → VCCard-a3d910f5.js.map} +1 -1
  13. package/dist/cjs/{VCDisplayBackFace-a05e4046.js → VCDisplayBackFace-cf35d92f.js} +3 -3
  14. package/dist/cjs/{VCDisplayBackFace-a05e4046.js.map → VCDisplayBackFace-cf35d92f.js.map} +1 -1
  15. package/dist/cjs/{VCDisplayCard-3346d2f9.js → VCDisplayCard-0eeef4fa.js} +3 -3
  16. package/dist/cjs/{VCDisplayCard-3346d2f9.js.map → VCDisplayCard-0eeef4fa.js.map} +1 -1
  17. package/dist/cjs/{VCDisplayCard2-d713808f.js → VCDisplayCard2-396dab11.js} +6 -7
  18. package/dist/{esm/VCDisplayCard2-325d6536.js.map → cjs/VCDisplayCard2-396dab11.js.map} +1 -1
  19. package/dist/cjs/{VCVerificationPill-08b37c5d.js → VCVerificationPill-9f71e54c.js} +2 -2
  20. package/dist/cjs/{VCVerificationPill-08b37c5d.js.map → VCVerificationPill-9f71e54c.js.map} +1 -1
  21. package/dist/cjs/{VerifierStateBadgeAndText-af68fd70.js → VerifierStateBadgeAndText-880406af.js} +168 -10
  22. package/dist/cjs/VerifierStateBadgeAndText-880406af.js.map +1 -0
  23. package/dist/cjs/{credential.helpers-f060ee96.js → credential.helpers-446ef2ea.js} +2 -2
  24. package/dist/cjs/{credential.helpers-f060ee96.js.map → credential.helpers-446ef2ea.js.map} +1 -1
  25. package/dist/cjs/index.js +13 -14
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/index13.js +13 -14
  28. package/dist/cjs/index13.js.map +1 -1
  29. package/dist/cjs/index21.js +5 -5
  30. package/dist/cjs/index3.js +3 -3
  31. package/dist/cjs/index30.js +1 -2
  32. package/dist/cjs/index30.js.map +1 -1
  33. package/dist/cjs/index38.js +10 -11
  34. package/dist/cjs/index38.js.map +1 -1
  35. package/dist/cjs/index39.js +4 -4
  36. package/dist/cjs/index40.js +5 -5
  37. package/dist/cjs/index41.js +6 -7
  38. package/dist/cjs/index41.js.map +1 -1
  39. package/dist/cjs/index42.js +1 -1
  40. package/dist/cjs/index45.js +2 -2
  41. package/dist/cjs/index6.js +4 -4
  42. package/dist/cjs/{types.esm-4a1c2fcd.js → types.esm-9618781d.js} +153 -9
  43. package/dist/cjs/types.esm-9618781d.js.map +1 -0
  44. package/dist/esm/{BoostGenericCard-39cf631c.js → BoostGenericCard-b427f2aa.js} +2 -2
  45. package/dist/esm/{BoostGenericCard-39cf631c.js.map → BoostGenericCard-b427f2aa.js.map} +1 -1
  46. package/dist/esm/{CertificateDisplayCard-110ddfae.js → CertificateDisplayCard-62416984.js} +4 -4
  47. package/dist/esm/{CertificateDisplayCard-110ddfae.js.map → CertificateDisplayCard-62416984.js.map} +1 -1
  48. package/dist/esm/{MeritBadgeDisplayCard-8a1cb8fb.js → MeritBadgeDisplayCard-b41cfcd5.js} +4 -4
  49. package/dist/esm/{MeritBadgeDisplayCard-8a1cb8fb.js.map → MeritBadgeDisplayCard-b41cfcd5.js.map} +1 -1
  50. package/dist/esm/{MeritBadgeSkillsCount-0d7bec55.js → MeritBadgeSkillsCount-31d1f453.js} +2 -2
  51. package/dist/esm/{MeritBadgeSkillsCount-0d7bec55.js.map → MeritBadgeSkillsCount-31d1f453.js.map} +1 -1
  52. package/dist/esm/{SchoolIDCard-4e51671c.js → SchoolIDCard-8b151cd3.js} +1183 -2
  53. package/dist/esm/SchoolIDCard-8b151cd3.js.map +1 -0
  54. package/dist/esm/{VCCard-e89d7a98.js → VCCard-60cb51cd.js} +3 -3
  55. package/dist/esm/{VCCard-e89d7a98.js.map → VCCard-60cb51cd.js.map} +1 -1
  56. package/dist/esm/{VCDisplayBackFace-eeaa642e.js → VCDisplayBackFace-accc7026.js} +3 -3
  57. package/dist/esm/{VCDisplayBackFace-eeaa642e.js.map → VCDisplayBackFace-accc7026.js.map} +1 -1
  58. package/dist/esm/{VCDisplayCard-fb1b7706.js → VCDisplayCard-5b0a8f0a.js} +3 -3
  59. package/dist/esm/{VCDisplayCard-fb1b7706.js.map → VCDisplayCard-5b0a8f0a.js.map} +1 -1
  60. package/dist/esm/{VCDisplayCard2-325d6536.js → VCDisplayCard2-b187b19f.js} +6 -7
  61. package/dist/{cjs/VCDisplayCard2-d713808f.js.map → esm/VCDisplayCard2-b187b19f.js.map} +1 -1
  62. package/dist/esm/{VCVerificationPill-ba90b49b.js → VCVerificationPill-6c44c9e5.js} +2 -2
  63. package/dist/esm/{VCVerificationPill-ba90b49b.js.map → VCVerificationPill-6c44c9e5.js.map} +1 -1
  64. package/dist/esm/{VerifierStateBadgeAndText-6d33089b.js → VerifierStateBadgeAndText-1b3a663a.js} +168 -10
  65. package/dist/esm/VerifierStateBadgeAndText-1b3a663a.js.map +1 -0
  66. package/dist/esm/{credential.helpers-30058000.js → credential.helpers-a136b2db.js} +2 -2
  67. package/dist/esm/{credential.helpers-30058000.js.map → credential.helpers-a136b2db.js.map} +1 -1
  68. package/dist/esm/index.js +13 -14
  69. package/dist/esm/index.js.map +1 -1
  70. package/dist/esm/index13.js +13 -14
  71. package/dist/esm/index13.js.map +1 -1
  72. package/dist/esm/index21.js +5 -5
  73. package/dist/esm/index3.js +3 -3
  74. package/dist/esm/index30.js +1 -2
  75. package/dist/esm/index30.js.map +1 -1
  76. package/dist/esm/index38.js +10 -11
  77. package/dist/esm/index38.js.map +1 -1
  78. package/dist/esm/index39.js +4 -4
  79. package/dist/esm/index40.js +5 -5
  80. package/dist/esm/index41.js +6 -7
  81. package/dist/esm/index41.js.map +1 -1
  82. package/dist/esm/index42.js +1 -1
  83. package/dist/esm/index45.js +2 -2
  84. package/dist/esm/index6.js +4 -4
  85. package/dist/esm/{types.esm-f58818d5.js → types.esm-707b2e76.js} +153 -9
  86. package/dist/esm/types.esm-707b2e76.js.map +1 -0
  87. package/package.json +4 -4
  88. package/dist/cjs/SchoolIDCard-dddb3b1d.js.map +0 -1
  89. package/dist/cjs/VerifierStateBadgeAndText-af68fd70.js.map +0 -1
  90. package/dist/cjs/index-838fa72c.js +0 -1186
  91. package/dist/cjs/index-838fa72c.js.map +0 -1
  92. package/dist/cjs/types.esm-4a1c2fcd.js.map +0 -1
  93. package/dist/esm/SchoolIDCard-4e51671c.js.map +0 -1
  94. package/dist/esm/VerifierStateBadgeAndText-6d33089b.js.map +0 -1
  95. package/dist/esm/index-4fa491c1.js +0 -1184
  96. package/dist/esm/index-4fa491c1.js.map +0 -1
  97. package/dist/esm/types.esm-f58818d5.js.map +0 -1
@@ -4333,6 +4333,42 @@ var UnsignedAchievementCredentialValidator = UnsignedVCValidator.extend({
4333
4333
  UnsignedAchievementCredentialValidator.extend({
4334
4334
  proof: ProofValidator.or(ProofValidator.array())
4335
4335
  });
4336
+ var AssociationTypeValidator = _enum([
4337
+ "exactMatchOf",
4338
+ "extends",
4339
+ "isChildOf",
4340
+ "isParentOf",
4341
+ "isPartOf",
4342
+ "isPeerOf",
4343
+ "isRelatedTo",
4344
+ "precedes",
4345
+ "replacedBy"
4346
+ ]).or(string());
4347
+ var AssociationValidator = object({
4348
+ type: string().array().nonempty(),
4349
+ associationType: AssociationTypeValidator,
4350
+ sourceId: string().optional(),
4351
+ targetId: string()
4352
+ }).catchall(any());
4353
+ var ClrSubjectValidator = object({
4354
+ id: string().optional(),
4355
+ type: string().array().nonempty(),
4356
+ identifier: any().array().optional(),
4357
+ achievement: AchievementValidator.array().optional(),
4358
+ association: AssociationValidator.array().optional(),
4359
+ verifiableCredential: any().array().optional()
4360
+ }).catchall(any());
4361
+ var UnsignedClrCredentialValidator = UnsignedVCValidator.extend({
4362
+ name: string().optional(),
4363
+ description: string().optional(),
4364
+ image: ImageValidator.optional(),
4365
+ credentialSubject: ClrSubjectValidator.or(ClrSubjectValidator.array()),
4366
+ endorsement: EndorsementCredentialValidator.array().optional(),
4367
+ partial: boolean().optional()
4368
+ });
4369
+ UnsignedClrCredentialValidator.extend({
4370
+ proof: ProofValidator.or(ProofValidator.array())
4371
+ });
4336
4372
  object({
4337
4373
  checks: string().array(),
4338
4374
  warnings: string().array(),
@@ -4684,10 +4720,16 @@ var SendBrandingOptionsValidator = object({
4684
4720
  credentialName: string().optional().describe("Display name for the credential"),
4685
4721
  recipientName: string().optional().describe("Name of the recipient for personalization")
4686
4722
  });
4723
+ var GuardianStatusValidator = _enum([
4724
+ "AWAITING_GUARDIAN",
4725
+ "GUARDIAN_APPROVED",
4726
+ "GUARDIAN_REJECTED"
4727
+ ]);
4687
4728
  var SendOptionsValidator = object({
4688
4729
  webhookUrl: string().url().optional().describe("Webhook URL to receive claim notifications"),
4689
4730
  suppressDelivery: boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
4690
- branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery")
4731
+ branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery"),
4732
+ guardianEmail: string().email().optional().describe("Guardian email that must approve before student can claim")
4691
4733
  });
4692
4734
  var SendBoostInputValidator = object({
4693
4735
  type: literal("boost"),
@@ -4704,11 +4746,26 @@ var SendBoostInputValidator = object({
4704
4746
  }).refine((data) => data.templateUri || data.template || data.signedCredential, {
4705
4747
  message: "Either templateUri, template, or signedCredential must be provided.",
4706
4748
  path: ["templateUri"]
4707
- });
4749
+ }).refine(
4750
+ (data) => {
4751
+ var _a2;
4752
+ if ((_a2 = data.options) == null ? void 0 : _a2.guardianEmail) {
4753
+ return data.options.guardianEmail.toLowerCase() !== data.recipient.toLowerCase();
4754
+ }
4755
+ return true;
4756
+ },
4757
+ {
4758
+ message: "guardianEmail must differ from recipient (self-approval not allowed)",
4759
+ path: ["options", "guardianEmail"]
4760
+ }
4761
+ );
4708
4762
  var SendInboxResponseValidator = object({
4709
4763
  issuanceId: string(),
4710
4764
  status: _enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
4711
- claimUrl: string().url().optional().describe("Present when suppressDelivery=true")
4765
+ claimUrl: string().url().optional().describe("Present when suppressDelivery=true"),
4766
+ guardianStatus: GuardianStatusValidator.optional().describe(
4767
+ "Present when guardianEmail was specified"
4768
+ )
4712
4769
  });
4713
4770
  var SendBoostResponseValidator = object({
4714
4771
  type: literal("boost"),
@@ -4945,7 +5002,11 @@ var LCNNotificationTypeEnumValidator = _enum([
4945
5002
  "APP_LISTING_APPROVED",
4946
5003
  "APP_LISTING_REJECTED",
4947
5004
  "APP_LISTING_WITHDRAWN",
4948
- "DEVICE_LINK_REQUEST"
5005
+ "DEVICE_LINK_REQUEST",
5006
+ "GUARDIAN_APPROVAL_PENDING",
5007
+ "GUARDIAN_APPROVED",
5008
+ "GUARDIAN_REJECTED",
5009
+ "APP_NOTIFICATION"
4949
5010
  ]);
4950
5011
  var LCNNotificationMessageValidator = object({
4951
5012
  title: string().optional(),
@@ -4983,7 +5044,10 @@ var LCNNotificationDataValidator = object({
4983
5044
  object({
4984
5045
  type: LCNNotificationTypeEnumValidator,
4985
5046
  to: LCNProfileValidator.partial().and(object({ did: string() })),
4986
- from: LCNProfileValidator.partial().and(object({ did: string() })),
5047
+ from: union([
5048
+ string(),
5049
+ LCNProfileValidator.partial().and(object({ did: string() }))
5050
+ ]),
4987
5051
  message: LCNNotificationMessageValidator.optional(),
4988
5052
  data: LCNNotificationDataValidator.optional(),
4989
5053
  sent: datetime().optional(),
@@ -5088,7 +5152,12 @@ var InboxCredentialValidator = object({
5088
5152
  signingAuthority: object({
5089
5153
  endpoint: string().optional(),
5090
5154
  name: string().optional()
5091
- }).optional()
5155
+ }).optional(),
5156
+ // Guardian gate fields (all optional — absent on pre-existing credentials)
5157
+ guardianEmail: string().email().optional(),
5158
+ guardianStatus: GuardianStatusValidator.optional(),
5159
+ guardianApprovedAt: string().optional(),
5160
+ guardianApprovedByDid: string().optional()
5092
5161
  });
5093
5162
  object({
5094
5163
  hasMore: boolean(),
@@ -5556,11 +5625,86 @@ var GetTemplateRecipientsEventValidator = object({
5556
5625
  }).refine((input) => Boolean(input.templateAlias) !== Boolean(input.boostUri), {
5557
5626
  message: "Exactly one of templateAlias or boostUri is required"
5558
5627
  });
5628
+ var RequestLearnerContextEventValidator = object({
5629
+ type: literal("request-learner-context"),
5630
+ includeCredentials: boolean().optional().default(true),
5631
+ includePersonalData: boolean().optional().default(false),
5632
+ format: _enum(["prompt", "structured"]).optional().default("prompt"),
5633
+ instructions: string().optional(),
5634
+ detailLevel: _enum(["compact", "expanded"]).optional().default("compact")
5635
+ });
5636
+ var SummaryCredentialKeywordValidator = object({
5637
+ occupations: array(string()).nullable(),
5638
+ careers: array(string()).nullable(),
5639
+ jobs: array(string()).nullable(),
5640
+ skills: array(string()).nullable(),
5641
+ fieldOfStudy: string().nullable()
5642
+ });
5643
+ var SummaryCredentialDataValidator = object({
5644
+ title: string().describe("Short, concise title for the learning session or credential"),
5645
+ summary: string().describe("Comprehensive summary of what happened during the session"),
5646
+ learned: array(string()).describe("Bullet points of key knowledge gained"),
5647
+ skills: array(
5648
+ object({
5649
+ title: string().describe("Name of the skill category"),
5650
+ description: string().describe("Detailed description of what this skill category involves")
5651
+ })
5652
+ ).describe("Categorized skills learned during the session"),
5653
+ nextSteps: array(
5654
+ object({
5655
+ title: string().describe("Title of the suggested next step"),
5656
+ description: string().describe("Description explaining why this next step is recommended"),
5657
+ keywords: SummaryCredentialKeywordValidator.optional().describe(
5658
+ "Optional taxonomy keywords for occupations/careers/jobs/skills/fieldOfStudy. Omit if not relevant."
5659
+ )
5660
+ })
5661
+ ).describe("Recommended follow-up activities or learning modules"),
5662
+ reflections: array(
5663
+ object({
5664
+ title: string().describe("Title of the reflection"),
5665
+ description: string().describe("Detailed description of what this reflection involves")
5666
+ })
5667
+ ).describe("Reflections on the learning experience")
5668
+ });
5669
+ var SendAiSessionCredentialEventValidator = object({
5670
+ type: literal("send-ai-session-credential"),
5671
+ sessionTitle: string(),
5672
+ summaryData: SummaryCredentialDataValidator,
5673
+ metadata: record(string(), unknown()).optional()
5674
+ });
5675
+ var SendNotificationEventValidator = object({
5676
+ type: literal("send-notification"),
5677
+ title: string().optional(),
5678
+ body: string().optional(),
5679
+ actionPath: string().optional(),
5680
+ category: string().optional(),
5681
+ priority: _enum(["normal", "high"]).optional()
5682
+ });
5683
+ var counterKeyValidator = string().min(1).max(64).regex(/^[a-zA-Z0-9_-]+$/, "Key must be alphanumeric with _ or -");
5684
+ var IncrementCounterEventValidator = object({
5685
+ type: literal("increment-counter"),
5686
+ key: counterKeyValidator,
5687
+ amount: number().int().finite()
5688
+ });
5689
+ var GetCounterEventValidator = object({
5690
+ type: literal("get-counter"),
5691
+ key: counterKeyValidator
5692
+ });
5693
+ var GetCountersEventValidator = object({
5694
+ type: literal("get-counters"),
5695
+ keys: array(counterKeyValidator).min(1).max(50).optional()
5696
+ });
5559
5697
  var AppEventValidator = discriminatedUnion("type", [
5560
5698
  SendCredentialEventValidator,
5561
5699
  CheckCredentialEventValidator,
5562
5700
  CheckIssuanceStatusEventValidator,
5563
- GetTemplateRecipientsEventValidator
5701
+ GetTemplateRecipientsEventValidator,
5702
+ RequestLearnerContextEventValidator,
5703
+ SendAiSessionCredentialEventValidator,
5704
+ SendNotificationEventValidator,
5705
+ IncrementCounterEventValidator,
5706
+ GetCounterEventValidator,
5707
+ GetCountersEventValidator
5564
5708
  ]);
5565
5709
  object({
5566
5710
  listingId: string(),
@@ -5591,7 +5735,7 @@ var CredentialActivityValidator = object({
5591
5735
  activityId: string(),
5592
5736
  eventType: CredentialActivityEventTypeValidator,
5593
5737
  timestamp: string(),
5594
- actorProfileId: string(),
5738
+ actorProfileId: string().optional(),
5595
5739
  recipientType: CredentialActivityRecipientTypeValidator,
5596
5740
  recipientIdentifier: string(),
5597
5741
  boostUri: string().optional(),
@@ -5638,4 +5782,4 @@ exports.number = number;
5638
5782
  exports.object = object;
5639
5783
  exports.string = string;
5640
5784
  exports.union = union;
5641
- //# sourceMappingURL=types.esm-4a1c2fcd.js.map
5785
+ //# sourceMappingURL=types.esm-9618781d.js.map