@learncard/helpers 1.2.14 → 1.2.16

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.
@@ -74,6 +74,8 @@ var require_types_cjs_development = __commonJS({
74
74
  AppStoreListingSubmitterValidator: /* @__PURE__ */ __name(() => AppStoreListingSubmitterValidator, "AppStoreListingSubmitterValidator"),
75
75
  AppStoreListingUpdateValidator: /* @__PURE__ */ __name(() => AppStoreListingUpdateValidator, "AppStoreListingUpdateValidator"),
76
76
  AppStoreListingValidator: /* @__PURE__ */ __name(() => AppStoreListingValidator, "AppStoreListingValidator"),
77
+ AssociationTypeValidator: /* @__PURE__ */ __name(() => AssociationTypeValidator, "AssociationTypeValidator"),
78
+ AssociationValidator: /* @__PURE__ */ __name(() => AssociationValidator, "AssociationValidator"),
77
79
  AuthGrantQueryValidator: /* @__PURE__ */ __name(() => AuthGrantQueryValidator, "AuthGrantQueryValidator"),
78
80
  AuthGrantStatusValidator: /* @__PURE__ */ __name(() => AuthGrantStatusValidator, "AuthGrantStatusValidator"),
79
81
  AuthGrantValidator: /* @__PURE__ */ __name(() => AuthGrantValidator, "AuthGrantValidator"),
@@ -92,6 +94,8 @@ var require_types_cjs_development = __commonJS({
92
94
  ClaimHookValidator: /* @__PURE__ */ __name(() => ClaimHookValidator, "ClaimHookValidator"),
93
95
  ClaimInboxCredentialValidator: /* @__PURE__ */ __name(() => ClaimInboxCredentialValidator, "ClaimInboxCredentialValidator"),
94
96
  ClaimTokenValidator: /* @__PURE__ */ __name(() => ClaimTokenValidator, "ClaimTokenValidator"),
97
+ ClrCredentialValidator: /* @__PURE__ */ __name(() => ClrCredentialValidator, "ClrCredentialValidator"),
98
+ ClrSubjectValidator: /* @__PURE__ */ __name(() => ClrSubjectValidator, "ClrSubjectValidator"),
95
99
  ConsentFlowContractDataForDidValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDataForDidValidator, "ConsentFlowContractDataForDidValidator"),
96
100
  ConsentFlowContractDataValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDataValidator, "ConsentFlowContractDataValidator"),
97
101
  ConsentFlowContractDetailsValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDetailsValidator, "ConsentFlowContractDetailsValidator"),
@@ -150,17 +154,21 @@ var require_types_cjs_development = __commonJS({
150
154
  FrameworkWithSkillsValidator: /* @__PURE__ */ __name(() => FrameworkWithSkillsValidator, "FrameworkWithSkillsValidator"),
151
155
  FullClaimHookValidator: /* @__PURE__ */ __name(() => FullClaimHookValidator, "FullClaimHookValidator"),
152
156
  GeoCoordinatesValidator: /* @__PURE__ */ __name(() => GeoCoordinatesValidator, "GeoCoordinatesValidator"),
157
+ GetCounterEventValidator: /* @__PURE__ */ __name(() => GetCounterEventValidator, "GetCounterEventValidator"),
158
+ GetCountersEventValidator: /* @__PURE__ */ __name(() => GetCountersEventValidator, "GetCountersEventValidator"),
153
159
  GetFullSkillTreeInputValidator: /* @__PURE__ */ __name(() => GetFullSkillTreeInputValidator, "GetFullSkillTreeInputValidator"),
154
160
  GetFullSkillTreeResultValidator: /* @__PURE__ */ __name(() => GetFullSkillTreeResultValidator, "GetFullSkillTreeResultValidator"),
155
161
  GetSkillPathInputValidator: /* @__PURE__ */ __name(() => GetSkillPathInputValidator, "GetSkillPathInputValidator"),
156
162
  GetSkillPathResultValidator: /* @__PURE__ */ __name(() => GetSkillPathResultValidator, "GetSkillPathResultValidator"),
157
163
  GetTemplateRecipientsEventValidator: /* @__PURE__ */ __name(() => GetTemplateRecipientsEventValidator, "GetTemplateRecipientsEventValidator"),
164
+ GuardianStatusValidator: /* @__PURE__ */ __name(() => GuardianStatusValidator, "GuardianStatusValidator"),
158
165
  IdentifierEntryValidator: /* @__PURE__ */ __name(() => IdentifierEntryValidator, "IdentifierEntryValidator"),
159
166
  IdentifierTypeValidator: /* @__PURE__ */ __name(() => IdentifierTypeValidator, "IdentifierTypeValidator"),
160
167
  IdentityObjectValidator: /* @__PURE__ */ __name(() => IdentityObjectValidator, "IdentityObjectValidator"),
161
168
  ImageValidator: /* @__PURE__ */ __name(() => ImageValidator, "ImageValidator"),
162
169
  InboxCredentialQueryValidator: /* @__PURE__ */ __name(() => InboxCredentialQueryValidator, "InboxCredentialQueryValidator"),
163
170
  InboxCredentialValidator: /* @__PURE__ */ __name(() => InboxCredentialValidator, "InboxCredentialValidator"),
171
+ IncrementCounterEventValidator: /* @__PURE__ */ __name(() => IncrementCounterEventValidator, "IncrementCounterEventValidator"),
164
172
  InstalledAppValidator: /* @__PURE__ */ __name(() => InstalledAppValidator, "InstalledAppValidator"),
165
173
  IssueInboxCredentialResponseValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialResponseValidator, "IssueInboxCredentialResponseValidator"),
166
174
  IssueInboxCredentialValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialValidator, "IssueInboxCredentialValidator"),
@@ -235,17 +243,20 @@ var require_types_cjs_development = __commonJS({
235
243
  RelatedValidator: /* @__PURE__ */ __name(() => RelatedValidator, "RelatedValidator"),
236
244
  ReplaceSkillFrameworkSkillsInputValidator: /* @__PURE__ */ __name(() => ReplaceSkillFrameworkSkillsInputValidator, "ReplaceSkillFrameworkSkillsInputValidator"),
237
245
  ReplaceSkillFrameworkSkillsResultValidator: /* @__PURE__ */ __name(() => ReplaceSkillFrameworkSkillsResultValidator, "ReplaceSkillFrameworkSkillsResultValidator"),
246
+ RequestLearnerContextEventValidator: /* @__PURE__ */ __name(() => RequestLearnerContextEventValidator, "RequestLearnerContextEventValidator"),
238
247
  ResultDescriptionValidator: /* @__PURE__ */ __name(() => ResultDescriptionValidator, "ResultDescriptionValidator"),
239
248
  ResultStatusTypeValidator: /* @__PURE__ */ __name(() => ResultStatusTypeValidator, "ResultStatusTypeValidator"),
240
249
  ResultTypeValidator: /* @__PURE__ */ __name(() => ResultTypeValidator, "ResultTypeValidator"),
241
250
  ResultValidator: /* @__PURE__ */ __name(() => ResultValidator, "ResultValidator"),
242
251
  RubricCriterionValidator: /* @__PURE__ */ __name(() => RubricCriterionValidator, "RubricCriterionValidator"),
252
+ SendAiSessionCredentialEventValidator: /* @__PURE__ */ __name(() => SendAiSessionCredentialEventValidator, "SendAiSessionCredentialEventValidator"),
243
253
  SendBoostInputValidator: /* @__PURE__ */ __name(() => SendBoostInputValidator, "SendBoostInputValidator"),
244
254
  SendBoostResponseValidator: /* @__PURE__ */ __name(() => SendBoostResponseValidator, "SendBoostResponseValidator"),
245
255
  SendBrandingOptionsValidator: /* @__PURE__ */ __name(() => SendBrandingOptionsValidator, "SendBrandingOptionsValidator"),
246
256
  SendCredentialEventValidator: /* @__PURE__ */ __name(() => SendCredentialEventValidator, "SendCredentialEventValidator"),
247
257
  SendInboxResponseValidator: /* @__PURE__ */ __name(() => SendInboxResponseValidator, "SendInboxResponseValidator"),
248
258
  SendInputValidator: /* @__PURE__ */ __name(() => SendInputValidator, "SendInputValidator"),
259
+ SendNotificationEventValidator: /* @__PURE__ */ __name(() => SendNotificationEventValidator, "SendNotificationEventValidator"),
249
260
  SendOptionsValidator: /* @__PURE__ */ __name(() => SendOptionsValidator, "SendOptionsValidator"),
250
261
  SendResponseValidator: /* @__PURE__ */ __name(() => SendResponseValidator, "SendResponseValidator"),
251
262
  SentCredentialInfoValidator: /* @__PURE__ */ __name(() => SentCredentialInfoValidator, "SentCredentialInfoValidator"),
@@ -267,10 +278,13 @@ var require_types_cjs_development = __commonJS({
267
278
  SkillTreeNodeValidator: /* @__PURE__ */ __name(() => SkillTreeNodeValidator, "SkillTreeNodeValidator"),
268
279
  SkillValidator: /* @__PURE__ */ __name(() => SkillValidator, "SkillValidator"),
269
280
  StringQuery: /* @__PURE__ */ __name(() => StringQuery, "StringQuery"),
281
+ SummaryCredentialDataValidator: /* @__PURE__ */ __name(() => SummaryCredentialDataValidator, "SummaryCredentialDataValidator"),
282
+ SummaryCredentialKeywordValidator: /* @__PURE__ */ __name(() => SummaryCredentialKeywordValidator, "SummaryCredentialKeywordValidator"),
270
283
  SyncFrameworkInputValidator: /* @__PURE__ */ __name(() => SyncFrameworkInputValidator, "SyncFrameworkInputValidator"),
271
284
  TagValidator: /* @__PURE__ */ __name(() => TagValidator, "TagValidator"),
272
285
  TermsOfUseValidator: /* @__PURE__ */ __name(() => TermsOfUseValidator, "TermsOfUseValidator"),
273
286
  UnsignedAchievementCredentialValidator: /* @__PURE__ */ __name(() => UnsignedAchievementCredentialValidator, "UnsignedAchievementCredentialValidator"),
287
+ UnsignedClrCredentialValidator: /* @__PURE__ */ __name(() => UnsignedClrCredentialValidator, "UnsignedClrCredentialValidator"),
274
288
  UnsignedVCValidator: /* @__PURE__ */ __name(() => UnsignedVCValidator, "UnsignedVCValidator"),
275
289
  UnsignedVPValidator: /* @__PURE__ */ __name(() => UnsignedVPValidator, "UnsignedVPValidator"),
276
290
  UpdateFrameworkInputValidator: /* @__PURE__ */ __name(() => UpdateFrameworkInputValidator, "UpdateFrameworkInputValidator"),
@@ -14042,6 +14056,42 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14042
14056
  var AchievementCredentialValidator = UnsignedAchievementCredentialValidator.extend({
14043
14057
  proof: ProofValidator.or(ProofValidator.array())
14044
14058
  });
14059
+ var AssociationTypeValidator = external_exports.enum([
14060
+ "exactMatchOf",
14061
+ "extends",
14062
+ "isChildOf",
14063
+ "isParentOf",
14064
+ "isPartOf",
14065
+ "isPeerOf",
14066
+ "isRelatedTo",
14067
+ "precedes",
14068
+ "replacedBy"
14069
+ ]).or(external_exports.string());
14070
+ var AssociationValidator = external_exports.object({
14071
+ type: external_exports.string().array().nonempty(),
14072
+ associationType: AssociationTypeValidator,
14073
+ sourceId: external_exports.string().optional(),
14074
+ targetId: external_exports.string()
14075
+ }).catchall(external_exports.any());
14076
+ var ClrSubjectValidator = external_exports.object({
14077
+ id: external_exports.string().optional(),
14078
+ type: external_exports.string().array().nonempty(),
14079
+ identifier: external_exports.any().array().optional(),
14080
+ achievement: AchievementValidator.array().optional(),
14081
+ association: AssociationValidator.array().optional(),
14082
+ verifiableCredential: external_exports.any().array().optional()
14083
+ }).catchall(external_exports.any());
14084
+ var UnsignedClrCredentialValidator = UnsignedVCValidator.extend({
14085
+ name: external_exports.string().optional(),
14086
+ description: external_exports.string().optional(),
14087
+ image: ImageValidator.optional(),
14088
+ credentialSubject: ClrSubjectValidator.or(ClrSubjectValidator.array()),
14089
+ endorsement: EndorsementCredentialValidator.array().optional(),
14090
+ partial: external_exports.boolean().optional()
14091
+ });
14092
+ var ClrCredentialValidator = UnsignedClrCredentialValidator.extend({
14093
+ proof: ProofValidator.or(ProofValidator.array())
14094
+ });
14045
14095
  var VerificationCheckValidator = external_exports.object({
14046
14096
  checks: external_exports.string().array(),
14047
14097
  warnings: external_exports.string().array(),
@@ -14393,10 +14443,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14393
14443
  credentialName: external_exports.string().optional().describe("Display name for the credential"),
14394
14444
  recipientName: external_exports.string().optional().describe("Name of the recipient for personalization")
14395
14445
  });
14446
+ var GuardianStatusValidator = external_exports.enum([
14447
+ "AWAITING_GUARDIAN",
14448
+ "GUARDIAN_APPROVED",
14449
+ "GUARDIAN_REJECTED"
14450
+ ]);
14396
14451
  var SendOptionsValidator = external_exports.object({
14397
14452
  webhookUrl: external_exports.string().url().optional().describe("Webhook URL to receive claim notifications"),
14398
14453
  suppressDelivery: external_exports.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
14399
- branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery")
14454
+ branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery"),
14455
+ guardianEmail: external_exports.string().email().optional().describe("Guardian email that must approve before student can claim")
14400
14456
  });
14401
14457
  var SendBoostInputValidator = external_exports.object({
14402
14458
  type: external_exports.literal("boost"),
@@ -14413,11 +14469,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14413
14469
  }).refine((data) => data.templateUri || data.template || data.signedCredential, {
14414
14470
  message: "Either templateUri, template, or signedCredential must be provided.",
14415
14471
  path: ["templateUri"]
14416
- });
14472
+ }).refine(
14473
+ (data) => {
14474
+ if (data.options?.guardianEmail) {
14475
+ return data.options.guardianEmail.toLowerCase() !== data.recipient.toLowerCase();
14476
+ }
14477
+ return true;
14478
+ },
14479
+ {
14480
+ message: "guardianEmail must differ from recipient (self-approval not allowed)",
14481
+ path: ["options", "guardianEmail"]
14482
+ }
14483
+ );
14417
14484
  var SendInboxResponseValidator = external_exports.object({
14418
14485
  issuanceId: external_exports.string(),
14419
14486
  status: external_exports.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
14420
- claimUrl: external_exports.string().url().optional().describe("Present when suppressDelivery=true")
14487
+ claimUrl: external_exports.string().url().optional().describe("Present when suppressDelivery=true"),
14488
+ guardianStatus: GuardianStatusValidator.optional().describe(
14489
+ "Present when guardianEmail was specified"
14490
+ )
14421
14491
  });
14422
14492
  var SendBoostResponseValidator = external_exports.object({
14423
14493
  type: external_exports.literal("boost"),
@@ -14654,7 +14724,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14654
14724
  "APP_LISTING_APPROVED",
14655
14725
  "APP_LISTING_REJECTED",
14656
14726
  "APP_LISTING_WITHDRAWN",
14657
- "DEVICE_LINK_REQUEST"
14727
+ "DEVICE_LINK_REQUEST",
14728
+ "GUARDIAN_APPROVAL_PENDING",
14729
+ "GUARDIAN_APPROVED",
14730
+ "GUARDIAN_REJECTED",
14731
+ "APP_NOTIFICATION"
14658
14732
  ]);
14659
14733
  var LCNNotificationMessageValidator = external_exports.object({
14660
14734
  title: external_exports.string().optional(),
@@ -14692,7 +14766,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14692
14766
  var LCNNotificationValidator = external_exports.object({
14693
14767
  type: LCNNotificationTypeEnumValidator,
14694
14768
  to: LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() })),
14695
- from: LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() })),
14769
+ from: external_exports.union([
14770
+ external_exports.string(),
14771
+ LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() }))
14772
+ ]),
14696
14773
  message: LCNNotificationMessageValidator.optional(),
14697
14774
  data: LCNNotificationDataValidator.optional(),
14698
14775
  sent: external_exports.iso.datetime().optional(),
@@ -14797,7 +14874,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14797
14874
  signingAuthority: external_exports.object({
14798
14875
  endpoint: external_exports.string().optional(),
14799
14876
  name: external_exports.string().optional()
14800
- }).optional()
14877
+ }).optional(),
14878
+ // Guardian gate fields (all optional — absent on pre-existing credentials)
14879
+ guardianEmail: external_exports.string().email().optional(),
14880
+ guardianStatus: GuardianStatusValidator.optional(),
14881
+ guardianApprovedAt: external_exports.string().optional(),
14882
+ guardianApprovedByDid: external_exports.string().optional()
14801
14883
  });
14802
14884
  var PaginatedInboxCredentialsValidator = external_exports.object({
14803
14885
  hasMore: external_exports.boolean(),
@@ -15265,11 +15347,84 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15265
15347
  }).refine((input) => Boolean(input.templateAlias) !== Boolean(input.boostUri), {
15266
15348
  message: "Exactly one of templateAlias or boostUri is required"
15267
15349
  });
15350
+ var RequestLearnerContextEventValidator = external_exports.object({
15351
+ type: external_exports.literal("request-learner-context"),
15352
+ includeCredentials: external_exports.boolean().optional().default(true),
15353
+ includePersonalData: external_exports.boolean().optional().default(false),
15354
+ format: external_exports.enum(["prompt", "structured"]).optional().default("prompt"),
15355
+ instructions: external_exports.string().optional(),
15356
+ detailLevel: external_exports.enum(["compact", "expanded"]).optional().default("compact")
15357
+ });
15358
+ var SummaryCredentialKeywordValidator = external_exports.object({
15359
+ occupations: external_exports.array(external_exports.string()).nullable(),
15360
+ careers: external_exports.array(external_exports.string()).nullable(),
15361
+ jobs: external_exports.array(external_exports.string()).nullable(),
15362
+ skills: external_exports.array(external_exports.string()).nullable(),
15363
+ fieldOfStudy: external_exports.string().nullable()
15364
+ });
15365
+ var SummaryCredentialDataValidator = external_exports.object({
15366
+ title: external_exports.string().describe("Short, concise title for the learning session or credential"),
15367
+ summary: external_exports.string().describe("Comprehensive summary of what happened during the session"),
15368
+ learned: external_exports.array(external_exports.string()).describe("Bullet points of key knowledge gained"),
15369
+ skills: external_exports.array(
15370
+ external_exports.object({
15371
+ title: external_exports.string().describe("Name of the skill category"),
15372
+ description: external_exports.string().describe("Detailed description of what this skill category involves")
15373
+ })
15374
+ ).describe("Categorized skills learned during the session"),
15375
+ nextSteps: external_exports.array(
15376
+ external_exports.object({
15377
+ title: external_exports.string().describe("Title of the suggested next step"),
15378
+ description: external_exports.string().describe("Description explaining why this next step is recommended"),
15379
+ keywords: SummaryCredentialKeywordValidator
15380
+ })
15381
+ ).describe("Recommended follow-up activities or learning modules"),
15382
+ reflections: external_exports.array(
15383
+ external_exports.object({
15384
+ title: external_exports.string().describe("Title of the reflection"),
15385
+ description: external_exports.string().describe("Detailed description of what this reflection involves")
15386
+ })
15387
+ ).describe("Reflections on the learning experience")
15388
+ });
15389
+ var SendAiSessionCredentialEventValidator = external_exports.object({
15390
+ type: external_exports.literal("send-ai-session-credential"),
15391
+ sessionTitle: external_exports.string(),
15392
+ summaryData: SummaryCredentialDataValidator,
15393
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
15394
+ });
15395
+ var SendNotificationEventValidator = external_exports.object({
15396
+ type: external_exports.literal("send-notification"),
15397
+ title: external_exports.string().optional(),
15398
+ body: external_exports.string().optional(),
15399
+ actionPath: external_exports.string().optional(),
15400
+ category: external_exports.string().optional(),
15401
+ priority: external_exports.enum(["normal", "high"]).optional()
15402
+ });
15403
+ var counterKeyValidator = external_exports.string().min(1).max(64).regex(/^[a-zA-Z0-9_-]+$/, "Key must be alphanumeric with _ or -");
15404
+ var IncrementCounterEventValidator = external_exports.object({
15405
+ type: external_exports.literal("increment-counter"),
15406
+ key: counterKeyValidator,
15407
+ amount: external_exports.number().int().finite()
15408
+ });
15409
+ var GetCounterEventValidator = external_exports.object({
15410
+ type: external_exports.literal("get-counter"),
15411
+ key: counterKeyValidator
15412
+ });
15413
+ var GetCountersEventValidator = external_exports.object({
15414
+ type: external_exports.literal("get-counters"),
15415
+ keys: external_exports.array(counterKeyValidator).min(1).max(50).optional()
15416
+ });
15268
15417
  var AppEventValidator = external_exports.discriminatedUnion("type", [
15269
15418
  SendCredentialEventValidator,
15270
15419
  CheckCredentialEventValidator,
15271
15420
  CheckIssuanceStatusEventValidator,
15272
- GetTemplateRecipientsEventValidator
15421
+ GetTemplateRecipientsEventValidator,
15422
+ RequestLearnerContextEventValidator,
15423
+ SendAiSessionCredentialEventValidator,
15424
+ SendNotificationEventValidator,
15425
+ IncrementCounterEventValidator,
15426
+ GetCounterEventValidator,
15427
+ GetCountersEventValidator
15273
15428
  ]);
15274
15429
  var AppEventInputValidator = external_exports.object({
15275
15430
  listingId: external_exports.string(),
@@ -15300,7 +15455,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15300
15455
  activityId: external_exports.string(),
15301
15456
  eventType: CredentialActivityEventTypeValidator,
15302
15457
  timestamp: external_exports.string(),
15303
- actorProfileId: external_exports.string(),
15458
+ actorProfileId: external_exports.string().optional(),
15304
15459
  recipientType: CredentialActivityRecipientTypeValidator,
15305
15460
  recipientIdentifier: external_exports.string(),
15306
15461
  boostUri: external_exports.string().optional(),