@learncard/network-plugin 2.9.1 → 2.9.4

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.
@@ -722,9 +722,9 @@ function maybeFreeze(scope, value, deep = false) {
722
722
  __name(maybeFreeze, "maybeFreeze");
723
723
  __name2(maybeFreeze, "maybeFreeze");
724
724
  function createProxyProxy(base, parent) {
725
- const isArray = Array.isArray(base);
725
+ const isArray2 = Array.isArray(base);
726
726
  const state = {
727
- type_: isArray ? 1 : 0,
727
+ type_: isArray2 ? 1 : 0,
728
728
  // Track which produce call this is associated with.
729
729
  scope_: parent ? parent.scope_ : getCurrentScope(),
730
730
  // True for both shallow and deep changes.
@@ -748,7 +748,7 @@ function createProxyProxy(base, parent) {
748
748
  };
749
749
  let target = state;
750
750
  let traps = objectTraps;
751
- if (isArray) {
751
+ if (isArray2) {
752
752
  target = [state];
753
753
  traps = arrayTraps;
754
754
  }
@@ -14500,6 +14500,10 @@ var require_types_cjs_development = __commonJS22({
14500
14500
  AddressValidator: /* @__PURE__ */ __name22(() => AddressValidator2, "AddressValidator"),
14501
14501
  AlignmentTargetTypeValidator: /* @__PURE__ */ __name22(() => AlignmentTargetTypeValidator2, "AlignmentTargetTypeValidator"),
14502
14502
  AlignmentValidator: /* @__PURE__ */ __name22(() => AlignmentValidator2, "AlignmentValidator"),
14503
+ AppBoostValidator: /* @__PURE__ */ __name22(() => AppBoostValidator2, "AppBoostValidator"),
14504
+ AppEventInputValidator: /* @__PURE__ */ __name22(() => AppEventInputValidator2, "AppEventInputValidator"),
14505
+ AppEventResponseValidator: /* @__PURE__ */ __name22(() => AppEventResponseValidator2, "AppEventResponseValidator"),
14506
+ AppEventValidator: /* @__PURE__ */ __name22(() => AppEventValidator2, "AppEventValidator"),
14503
14507
  AppListingStatusValidator: /* @__PURE__ */ __name22(() => AppListingStatusValidator2, "AppListingStatusValidator"),
14504
14508
  AppStoreListingCreateValidator: /* @__PURE__ */ __name22(() => AppStoreListingCreateValidator2, "AppStoreListingCreateValidator"),
14505
14509
  AppStoreListingUpdateValidator: /* @__PURE__ */ __name22(() => AppStoreListingUpdateValidator2, "AppStoreListingUpdateValidator"),
@@ -14548,6 +14552,12 @@ var require_types_cjs_development = __commonJS22({
14548
14552
  CreateManagedFrameworkInputValidator: /* @__PURE__ */ __name22(() => CreateManagedFrameworkInputValidator2, "CreateManagedFrameworkInputValidator"),
14549
14553
  CreateSkillInputValidator: /* @__PURE__ */ __name22(() => CreateSkillInputValidator2, "CreateSkillInputValidator"),
14550
14554
  CreateSkillsBatchInputValidator: /* @__PURE__ */ __name22(() => CreateSkillsBatchInputValidator2, "CreateSkillsBatchInputValidator"),
14555
+ CredentialActivityEventTypeValidator: /* @__PURE__ */ __name22(() => CredentialActivityEventTypeValidator2, "CredentialActivityEventTypeValidator"),
14556
+ CredentialActivityRecipientTypeValidator: /* @__PURE__ */ __name22(() => CredentialActivityRecipientTypeValidator2, "CredentialActivityRecipientTypeValidator"),
14557
+ CredentialActivitySourceTypeValidator: /* @__PURE__ */ __name22(() => CredentialActivitySourceTypeValidator2, "CredentialActivitySourceTypeValidator"),
14558
+ CredentialActivityStatsValidator: /* @__PURE__ */ __name22(() => CredentialActivityStatsValidator2, "CredentialActivityStatsValidator"),
14559
+ CredentialActivityValidator: /* @__PURE__ */ __name22(() => CredentialActivityValidator2, "CredentialActivityValidator"),
14560
+ CredentialActivityWithDetailsValidator: /* @__PURE__ */ __name22(() => CredentialActivityWithDetailsValidator2, "CredentialActivityWithDetailsValidator"),
14551
14561
  CredentialInfoValidator: /* @__PURE__ */ __name22(() => CredentialInfoValidator2, "CredentialInfoValidator"),
14552
14562
  CredentialRecordValidator: /* @__PURE__ */ __name22(() => CredentialRecordValidator2, "CredentialRecordValidator"),
14553
14563
  CredentialSchemaValidator: /* @__PURE__ */ __name22(() => CredentialSchemaValidator2, "CredentialSchemaValidator"),
@@ -14594,6 +14604,7 @@ var require_types_cjs_development = __commonJS22({
14594
14604
  LCNInboxStatusEnumValidator: /* @__PURE__ */ __name22(() => LCNInboxStatusEnumValidator2, "LCNInboxStatusEnumValidator"),
14595
14605
  LCNIntegrationCreateValidator: /* @__PURE__ */ __name22(() => LCNIntegrationCreateValidator2, "LCNIntegrationCreateValidator"),
14596
14606
  LCNIntegrationQueryValidator: /* @__PURE__ */ __name22(() => LCNIntegrationQueryValidator2, "LCNIntegrationQueryValidator"),
14607
+ LCNIntegrationStatusEnum: /* @__PURE__ */ __name22(() => LCNIntegrationStatusEnum2, "LCNIntegrationStatusEnum"),
14597
14608
  LCNIntegrationUpdateValidator: /* @__PURE__ */ __name22(() => LCNIntegrationUpdateValidator2, "LCNIntegrationUpdateValidator"),
14598
14609
  LCNIntegrationValidator: /* @__PURE__ */ __name22(() => LCNIntegrationValidator2, "LCNIntegrationValidator"),
14599
14610
  LCNNotificationDataValidator: /* @__PURE__ */ __name22(() => LCNNotificationDataValidator2, "LCNNotificationDataValidator"),
@@ -14622,6 +14633,7 @@ var require_types_cjs_development = __commonJS22({
14622
14633
  PaginatedConsentFlowTermsValidator: /* @__PURE__ */ __name22(() => PaginatedConsentFlowTermsValidator2, "PaginatedConsentFlowTermsValidator"),
14623
14634
  PaginatedConsentFlowTransactionsValidator: /* @__PURE__ */ __name22(() => PaginatedConsentFlowTransactionsValidator2, "PaginatedConsentFlowTransactionsValidator"),
14624
14635
  PaginatedContractCredentialsValidator: /* @__PURE__ */ __name22(() => PaginatedContractCredentialsValidator2, "PaginatedContractCredentialsValidator"),
14636
+ PaginatedCredentialActivitiesValidator: /* @__PURE__ */ __name22(() => PaginatedCredentialActivitiesValidator2, "PaginatedCredentialActivitiesValidator"),
14625
14637
  PaginatedEncryptedCredentialRecordsValidator: /* @__PURE__ */ __name22(() => PaginatedEncryptedCredentialRecordsValidator2, "PaginatedEncryptedCredentialRecordsValidator"),
14626
14638
  PaginatedEncryptedRecordsValidator: /* @__PURE__ */ __name22(() => PaginatedEncryptedRecordsValidator2, "PaginatedEncryptedRecordsValidator"),
14627
14639
  PaginatedInboxCredentialsValidator: /* @__PURE__ */ __name22(() => PaginatedInboxCredentialsValidator2, "PaginatedInboxCredentialsValidator"),
@@ -14649,7 +14661,11 @@ var require_types_cjs_development = __commonJS22({
14649
14661
  RubricCriterionValidator: /* @__PURE__ */ __name22(() => RubricCriterionValidator2, "RubricCriterionValidator"),
14650
14662
  SendBoostInputValidator: /* @__PURE__ */ __name22(() => SendBoostInputValidator2, "SendBoostInputValidator"),
14651
14663
  SendBoostResponseValidator: /* @__PURE__ */ __name22(() => SendBoostResponseValidator2, "SendBoostResponseValidator"),
14664
+ SendBrandingOptionsValidator: /* @__PURE__ */ __name22(() => SendBrandingOptionsValidator2, "SendBrandingOptionsValidator"),
14665
+ SendCredentialEventValidator: /* @__PURE__ */ __name22(() => SendCredentialEventValidator2, "SendCredentialEventValidator"),
14666
+ SendInboxResponseValidator: /* @__PURE__ */ __name22(() => SendInboxResponseValidator2, "SendInboxResponseValidator"),
14652
14667
  SendInputValidator: /* @__PURE__ */ __name22(() => SendInputValidator2, "SendInputValidator"),
14668
+ SendOptionsValidator: /* @__PURE__ */ __name22(() => SendOptionsValidator2, "SendOptionsValidator"),
14653
14669
  SendResponseValidator: /* @__PURE__ */ __name22(() => SendResponseValidator2, "SendResponseValidator"),
14654
14670
  SentCredentialInfoValidator: /* @__PURE__ */ __name22(() => SentCredentialInfoValidator2, "SentCredentialInfoValidator"),
14655
14671
  ServiceValidator: /* @__PURE__ */ __name22(() => ServiceValidator2, "ServiceValidator"),
@@ -29426,7 +29442,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29426
29442
  var PaginatedClaimHooksValidator2 = PaginationResponseValidator2.extend({
29427
29443
  records: FullClaimHookValidator2.array()
29428
29444
  });
29429
- var LCNBoostStatus2 = external_exports22.enum(["DRAFT", "LIVE"]);
29445
+ var LCNBoostStatus2 = external_exports22.enum(["DRAFT", "PROVISIONAL", "LIVE"]);
29430
29446
  var BoostValidator2 = external_exports22.object({
29431
29447
  uri: external_exports22.string(),
29432
29448
  name: external_exports22.string().optional(),
@@ -29510,21 +29526,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29510
29526
  claimPermissions: BoostPermissionsValidator2.partial().optional(),
29511
29527
  skills: external_exports22.array(external_exports22.object({ frameworkId: external_exports22.string(), id: external_exports22.string() })).min(1).optional()
29512
29528
  });
29529
+ var SendBrandingOptionsValidator2 = external_exports22.object({
29530
+ issuerName: external_exports22.string().optional().describe("Name of the issuing organization"),
29531
+ issuerLogoUrl: external_exports22.string().url().optional().describe("Logo URL of the issuing organization"),
29532
+ credentialName: external_exports22.string().optional().describe("Display name for the credential"),
29533
+ recipientName: external_exports22.string().optional().describe("Name of the recipient for personalization")
29534
+ });
29535
+ var SendOptionsValidator2 = external_exports22.object({
29536
+ webhookUrl: external_exports22.string().url().optional().describe("Webhook URL to receive claim notifications"),
29537
+ suppressDelivery: external_exports22.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
29538
+ branding: SendBrandingOptionsValidator2.optional().describe("Branding for email/SMS delivery")
29539
+ });
29513
29540
  var SendBoostInputValidator2 = external_exports22.object({
29514
29541
  type: external_exports22.literal("boost"),
29515
- recipient: external_exports22.string(),
29542
+ recipient: external_exports22.string().describe("Profile ID, DID, email, or phone number (auto-detected)"),
29516
29543
  contractUri: external_exports22.string().optional(),
29517
29544
  templateUri: external_exports22.string().optional(),
29518
29545
  template: SendBoostTemplateValidator2.optional(),
29519
- signedCredential: VCValidator2.optional()
29546
+ signedCredential: VCValidator2.optional(),
29547
+ options: SendOptionsValidator2.optional().describe(
29548
+ "Options for email/phone recipients (Universal Inbox)"
29549
+ ),
29550
+ templateData: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional(),
29551
+ integrationId: external_exports22.string().optional().describe("Integration ID for activity tracking")
29520
29552
  }).refine((data) => data.templateUri || data.template, {
29521
29553
  message: "Either templateUri or template creation data must be provided.",
29522
29554
  path: ["templateUri"]
29523
29555
  });
29556
+ var SendInboxResponseValidator2 = external_exports22.object({
29557
+ issuanceId: external_exports22.string(),
29558
+ status: external_exports22.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
29559
+ claimUrl: external_exports22.string().url().optional().describe("Present when suppressDelivery=true")
29560
+ });
29524
29561
  var SendBoostResponseValidator2 = external_exports22.object({
29525
29562
  type: external_exports22.literal("boost"),
29526
29563
  credentialUri: external_exports22.string(),
29527
- uri: external_exports22.string()
29564
+ uri: external_exports22.string(),
29565
+ activityId: external_exports22.string().describe("Links to the activity lifecycle for this issuance"),
29566
+ inbox: SendInboxResponseValidator2.optional().describe(
29567
+ "Present when sent via email/phone (Universal Inbox)"
29568
+ )
29528
29569
  });
29529
29570
  var SendInputValidator2 = external_exports22.discriminatedUnion("type", [SendBoostInputValidator2]);
29530
29571
  var SendResponseValidator2 = external_exports22.discriminatedUnion("type", [SendBoostResponseValidator2]);
@@ -29876,6 +29917,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29876
29917
  createdAt: external_exports22.string(),
29877
29918
  issuerDid: external_exports22.string(),
29878
29919
  webhookUrl: external_exports22.string().optional(),
29920
+ boostUri: external_exports22.string().optional(),
29921
+ activityId: external_exports22.string().optional(),
29879
29922
  signingAuthority: external_exports22.object({
29880
29923
  endpoint: external_exports22.string().optional(),
29881
29924
  name: external_exports22.string().optional()
@@ -29891,7 +29934,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29891
29934
  id: external_exports22.string(),
29892
29935
  isSigned: external_exports22.boolean(),
29893
29936
  isAccepted: external_exports22.boolean().optional(),
29894
- issuerDid: external_exports22.string()
29937
+ issuerDid: external_exports22.string(),
29938
+ boostUri: external_exports22.string()
29895
29939
  }).partial();
29896
29940
  var IssueInboxSigningAuthorityValidator2 = external_exports22.object({
29897
29941
  endpoint: external_exports22.string().url(),
@@ -29901,9 +29945,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29901
29945
  // === CORE DATA (Required) ===
29902
29946
  // WHAT is being sent and WHO is it for?
29903
29947
  recipient: ContactMethodQueryValidator2.describe("The recipient of the credential"),
29904
- credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).describe(
29948
+ // Either credential OR templateUri must be provided
29949
+ credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).optional().describe(
29905
29950
  "The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration."
29906
29951
  ),
29952
+ templateUri: external_exports22.string().optional().describe(
29953
+ "URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field."
29954
+ ),
29907
29955
  // === OPTIONAL FEATURES ===
29908
29956
  // Add major, distinct features at the top level.
29909
29957
  //consentRequest: ConsentRequestValidator.optional(),
@@ -29915,6 +29963,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29915
29963
  ),
29916
29964
  webhookUrl: external_exports22.string().url().optional().describe("The webhook URL to receive credential issuance events."),
29917
29965
  expiresInDays: external_exports22.number().min(1).max(365).optional().describe("The number of days the credential will be valid for."),
29966
+ templateData: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional().describe(
29967
+ "Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided."
29968
+ ),
29918
29969
  // --- For User-Facing Delivery (Email/SMS) ---
29919
29970
  delivery: external_exports22.object({
29920
29971
  suppress: external_exports22.boolean().optional().default(false).describe(
@@ -29929,7 +29980,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29929
29980
  name: external_exports22.string().optional().describe(
29930
29981
  'The name of the organization (e.g., "State University").'
29931
29982
  ),
29932
- logoUrl: external_exports22.string().url().optional().describe("The URL of the organization's logo.")
29983
+ logoUrl: external_exports22.string().url().optional().describe(
29984
+ "The URL of the organization's logo."
29985
+ )
29933
29986
  }).optional(),
29934
29987
  credential: external_exports22.object({
29935
29988
  name: external_exports22.string().optional().describe(
@@ -29956,6 +30009,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29956
30009
  }).optional().describe(
29957
30010
  "Configuration for the credential issuance. If not provided, the default configuration will be used."
29958
30011
  )
30012
+ }).refine((data) => data.credential || data.templateUri, {
30013
+ message: "Either credential or templateUri must be provided.",
30014
+ path: ["credential"]
29959
30015
  });
29960
30016
  var IssueInboxCredentialResponseValidator2 = external_exports22.object({
29961
30017
  issuanceId: external_exports22.string(),
@@ -29983,28 +30039,43 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29983
30039
  { message: "Must be a valid http(s) origin" }
29984
30040
  )
29985
30041
  ]);
30042
+ var LCNIntegrationStatusEnum2 = external_exports22.enum(["setup", "active", "paused"]);
29986
30043
  var LCNIntegrationValidator2 = external_exports22.object({
29987
30044
  id: external_exports22.string(),
29988
30045
  name: external_exports22.string(),
29989
30046
  description: external_exports22.string().optional(),
29990
30047
  publishableKey: external_exports22.string(),
29991
- whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([])
30048
+ whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([]),
30049
+ // Setup/onboarding status
30050
+ status: LCNIntegrationStatusEnum2.default("setup"),
30051
+ guideType: external_exports22.string().optional(),
30052
+ guideState: external_exports22.record(external_exports22.string(), external_exports22.any()).optional(),
30053
+ // Timestamps
30054
+ createdAt: external_exports22.string().optional(),
30055
+ updatedAt: external_exports22.string().optional()
29992
30056
  });
29993
30057
  var LCNIntegrationCreateValidator2 = external_exports22.object({
29994
30058
  name: external_exports22.string(),
29995
30059
  description: external_exports22.string().optional(),
29996
- whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([])
30060
+ whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([]),
30061
+ guideType: external_exports22.string().optional()
29997
30062
  });
29998
30063
  var LCNIntegrationUpdateValidator2 = external_exports22.object({
29999
30064
  name: external_exports22.string().optional(),
30000
30065
  description: external_exports22.string().optional(),
30001
30066
  whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).optional(),
30002
- rotatePublishableKey: external_exports22.boolean().optional()
30067
+ rotatePublishableKey: external_exports22.boolean().optional(),
30068
+ // Setup/onboarding updates
30069
+ status: LCNIntegrationStatusEnum2.optional(),
30070
+ guideType: external_exports22.string().optional(),
30071
+ guideState: external_exports22.record(external_exports22.string(), external_exports22.any()).optional()
30003
30072
  });
30004
30073
  var LCNIntegrationQueryValidator2 = external_exports22.object({
30005
30074
  id: StringQuery2,
30006
30075
  name: StringQuery2,
30007
- description: StringQuery2
30076
+ description: StringQuery2,
30077
+ status: StringQuery2,
30078
+ guideType: StringQuery2
30008
30079
  }).partial();
30009
30080
  var PaginatedLCNIntegrationsValidator2 = PaginationResponseValidator2.extend({
30010
30081
  records: LCNIntegrationValidator2.array()
@@ -30219,6 +30290,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
30219
30290
  ]);
30220
30291
  var AppStoreListingValidator2 = external_exports22.object({
30221
30292
  listing_id: external_exports22.string(),
30293
+ slug: external_exports22.string().optional(),
30222
30294
  display_name: external_exports22.string(),
30223
30295
  tagline: external_exports22.string(),
30224
30296
  full_description: external_exports22.string(),
@@ -30256,6 +30328,77 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
30256
30328
  var PaginatedInstalledAppsValidator2 = PaginationResponseValidator2.extend({
30257
30329
  records: InstalledAppValidator2.array()
30258
30330
  });
30331
+ var AppBoostValidator2 = external_exports22.object({
30332
+ templateAlias: external_exports22.string().min(1).max(50).regex(/^[a-z0-9-]+$/),
30333
+ boostUri: external_exports22.string()
30334
+ });
30335
+ var SendCredentialEventValidator2 = external_exports22.object({
30336
+ type: external_exports22.literal("send-credential"),
30337
+ templateAlias: external_exports22.string(),
30338
+ templateData: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional()
30339
+ });
30340
+ var AppEventValidator2 = external_exports22.discriminatedUnion("type", [SendCredentialEventValidator2]);
30341
+ var AppEventInputValidator2 = external_exports22.object({
30342
+ listingId: external_exports22.string(),
30343
+ event: AppEventValidator2
30344
+ });
30345
+ var AppEventResponseValidator2 = external_exports22.record(external_exports22.string(), external_exports22.unknown());
30346
+ var CredentialActivityEventTypeValidator2 = external_exports22.enum([
30347
+ "CREATED",
30348
+ "DELIVERED",
30349
+ "CLAIMED",
30350
+ "EXPIRED",
30351
+ "FAILED"
30352
+ ]);
30353
+ var CredentialActivityRecipientTypeValidator2 = external_exports22.enum(["profile", "email", "phone"]);
30354
+ var CredentialActivitySourceTypeValidator2 = external_exports22.enum([
30355
+ "send",
30356
+ "sendBoost",
30357
+ "sendCredential",
30358
+ "contract",
30359
+ "claim",
30360
+ "inbox",
30361
+ "claimLink",
30362
+ "acceptCredential"
30363
+ ]);
30364
+ var CredentialActivityValidator2 = external_exports22.object({
30365
+ id: external_exports22.string(),
30366
+ activityId: external_exports22.string(),
30367
+ eventType: CredentialActivityEventTypeValidator2,
30368
+ timestamp: external_exports22.string(),
30369
+ actorProfileId: external_exports22.string(),
30370
+ recipientType: CredentialActivityRecipientTypeValidator2,
30371
+ recipientIdentifier: external_exports22.string(),
30372
+ boostUri: external_exports22.string().optional(),
30373
+ credentialUri: external_exports22.string().optional(),
30374
+ inboxCredentialId: external_exports22.string().optional(),
30375
+ integrationId: external_exports22.string().optional(),
30376
+ source: CredentialActivitySourceTypeValidator2,
30377
+ metadata: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional()
30378
+ });
30379
+ var CredentialActivityWithDetailsValidator2 = CredentialActivityValidator2.extend({
30380
+ boost: external_exports22.object({
30381
+ id: external_exports22.string(),
30382
+ name: external_exports22.string().optional(),
30383
+ category: external_exports22.string().optional()
30384
+ }).optional(),
30385
+ recipientProfile: external_exports22.object({
30386
+ profileId: external_exports22.string(),
30387
+ displayName: external_exports22.string().optional()
30388
+ }).optional()
30389
+ });
30390
+ var PaginatedCredentialActivitiesValidator2 = PaginationResponseValidator2.extend({
30391
+ records: CredentialActivityWithDetailsValidator2.array()
30392
+ });
30393
+ var CredentialActivityStatsValidator2 = external_exports22.object({
30394
+ total: external_exports22.number(),
30395
+ created: external_exports22.number(),
30396
+ delivered: external_exports22.number(),
30397
+ claimed: external_exports22.number(),
30398
+ expired: external_exports22.number(),
30399
+ failed: external_exports22.number(),
30400
+ claimRate: external_exports22.number()
30401
+ });
30259
30402
  }
30260
30403
  });
30261
30404
  var require_dist = __commonJS22({
@@ -30513,16 +30656,16 @@ function parserForArrayFormat(options) {
30513
30656
  case "comma":
30514
30657
  case "separator": {
30515
30658
  return (key, value, accumulator) => {
30516
- const isArray = typeof value === "string" && value.includes(options.arrayFormatSeparator);
30517
- const newValue = isArray ? value.split(options.arrayFormatSeparator).map((item) => decode3(item, options)) : value === null ? value : decode3(value, options);
30659
+ const isArray2 = typeof value === "string" && value.includes(options.arrayFormatSeparator);
30660
+ const newValue = isArray2 ? value.split(options.arrayFormatSeparator).map((item) => decode3(item, options)) : value === null ? value : decode3(value, options);
30518
30661
  accumulator[key] = newValue;
30519
30662
  };
30520
30663
  }
30521
30664
  case "bracket-separator": {
30522
30665
  return (key, value, accumulator) => {
30523
- const isArray = /(\[])$/.test(key);
30666
+ const isArray2 = /(\[])$/.test(key);
30524
30667
  key = key.replace(/\[]$/, "");
30525
- if (!isArray) {
30668
+ if (!isArray2) {
30526
30669
  accumulator[key] = value ? decode3(value, options) : value;
30527
30670
  return;
30528
30671
  }
@@ -46026,7 +46169,7 @@ var FullClaimHookValidator = external_exports2.object({ id: external_exports2.st
46026
46169
  var PaginatedClaimHooksValidator = PaginationResponseValidator.extend({
46027
46170
  records: FullClaimHookValidator.array()
46028
46171
  });
46029
- var LCNBoostStatus = external_exports2.enum(["DRAFT", "LIVE"]);
46172
+ var LCNBoostStatus = external_exports2.enum(["DRAFT", "PROVISIONAL", "LIVE"]);
46030
46173
  var BoostValidator = external_exports2.object({
46031
46174
  uri: external_exports2.string(),
46032
46175
  name: external_exports2.string().optional(),
@@ -46110,21 +46253,46 @@ var SendBoostTemplateValidator = BoostValidator.partial().omit({ uri: true, clai
46110
46253
  claimPermissions: BoostPermissionsValidator.partial().optional(),
46111
46254
  skills: external_exports2.array(external_exports2.object({ frameworkId: external_exports2.string(), id: external_exports2.string() })).min(1).optional()
46112
46255
  });
46256
+ var SendBrandingOptionsValidator = external_exports2.object({
46257
+ issuerName: external_exports2.string().optional().describe("Name of the issuing organization"),
46258
+ issuerLogoUrl: external_exports2.string().url().optional().describe("Logo URL of the issuing organization"),
46259
+ credentialName: external_exports2.string().optional().describe("Display name for the credential"),
46260
+ recipientName: external_exports2.string().optional().describe("Name of the recipient for personalization")
46261
+ });
46262
+ var SendOptionsValidator = external_exports2.object({
46263
+ webhookUrl: external_exports2.string().url().optional().describe("Webhook URL to receive claim notifications"),
46264
+ suppressDelivery: external_exports2.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
46265
+ branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery")
46266
+ });
46113
46267
  var SendBoostInputValidator = external_exports2.object({
46114
46268
  type: external_exports2.literal("boost"),
46115
- recipient: external_exports2.string(),
46269
+ recipient: external_exports2.string().describe("Profile ID, DID, email, or phone number (auto-detected)"),
46116
46270
  contractUri: external_exports2.string().optional(),
46117
46271
  templateUri: external_exports2.string().optional(),
46118
46272
  template: SendBoostTemplateValidator.optional(),
46119
- signedCredential: VCValidator.optional()
46273
+ signedCredential: VCValidator.optional(),
46274
+ options: SendOptionsValidator.optional().describe(
46275
+ "Options for email/phone recipients (Universal Inbox)"
46276
+ ),
46277
+ templateData: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional(),
46278
+ integrationId: external_exports2.string().optional().describe("Integration ID for activity tracking")
46120
46279
  }).refine((data) => data.templateUri || data.template, {
46121
46280
  message: "Either templateUri or template creation data must be provided.",
46122
46281
  path: ["templateUri"]
46123
46282
  });
46283
+ var SendInboxResponseValidator = external_exports2.object({
46284
+ issuanceId: external_exports2.string(),
46285
+ status: external_exports2.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
46286
+ claimUrl: external_exports2.string().url().optional().describe("Present when suppressDelivery=true")
46287
+ });
46124
46288
  var SendBoostResponseValidator = external_exports2.object({
46125
46289
  type: external_exports2.literal("boost"),
46126
46290
  credentialUri: external_exports2.string(),
46127
- uri: external_exports2.string()
46291
+ uri: external_exports2.string(),
46292
+ activityId: external_exports2.string().describe("Links to the activity lifecycle for this issuance"),
46293
+ inbox: SendInboxResponseValidator.optional().describe(
46294
+ "Present when sent via email/phone (Universal Inbox)"
46295
+ )
46128
46296
  });
46129
46297
  var SendInputValidator = external_exports2.discriminatedUnion("type", [SendBoostInputValidator]);
46130
46298
  var SendResponseValidator = external_exports2.discriminatedUnion("type", [SendBoostResponseValidator]);
@@ -46476,6 +46644,8 @@ var InboxCredentialValidator = external_exports2.object({
46476
46644
  createdAt: external_exports2.string(),
46477
46645
  issuerDid: external_exports2.string(),
46478
46646
  webhookUrl: external_exports2.string().optional(),
46647
+ boostUri: external_exports2.string().optional(),
46648
+ activityId: external_exports2.string().optional(),
46479
46649
  signingAuthority: external_exports2.object({
46480
46650
  endpoint: external_exports2.string().optional(),
46481
46651
  name: external_exports2.string().optional()
@@ -46491,7 +46661,8 @@ var InboxCredentialQueryValidator = external_exports2.object({
46491
46661
  id: external_exports2.string(),
46492
46662
  isSigned: external_exports2.boolean(),
46493
46663
  isAccepted: external_exports2.boolean().optional(),
46494
- issuerDid: external_exports2.string()
46664
+ issuerDid: external_exports2.string(),
46665
+ boostUri: external_exports2.string()
46495
46666
  }).partial();
46496
46667
  var IssueInboxSigningAuthorityValidator = external_exports2.object({
46497
46668
  endpoint: external_exports2.string().url(),
@@ -46501,9 +46672,13 @@ var IssueInboxCredentialValidator = external_exports2.object({
46501
46672
  // === CORE DATA (Required) ===
46502
46673
  // WHAT is being sent and WHO is it for?
46503
46674
  recipient: ContactMethodQueryValidator.describe("The recipient of the credential"),
46504
- credential: VCValidator.or(VPValidator).or(UnsignedVCValidator).describe(
46675
+ // Either credential OR templateUri must be provided
46676
+ credential: VCValidator.or(VPValidator).or(UnsignedVCValidator).optional().describe(
46505
46677
  "The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration."
46506
46678
  ),
46679
+ templateUri: external_exports2.string().optional().describe(
46680
+ "URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field."
46681
+ ),
46507
46682
  // === OPTIONAL FEATURES ===
46508
46683
  // Add major, distinct features at the top level.
46509
46684
  //consentRequest: ConsentRequestValidator.optional(),
@@ -46515,6 +46690,9 @@ var IssueInboxCredentialValidator = external_exports2.object({
46515
46690
  ),
46516
46691
  webhookUrl: external_exports2.string().url().optional().describe("The webhook URL to receive credential issuance events."),
46517
46692
  expiresInDays: external_exports2.number().min(1).max(365).optional().describe("The number of days the credential will be valid for."),
46693
+ templateData: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional().describe(
46694
+ "Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided."
46695
+ ),
46518
46696
  // --- For User-Facing Delivery (Email/SMS) ---
46519
46697
  delivery: external_exports2.object({
46520
46698
  suppress: external_exports2.boolean().optional().default(false).describe(
@@ -46529,7 +46707,9 @@ var IssueInboxCredentialValidator = external_exports2.object({
46529
46707
  name: external_exports2.string().optional().describe(
46530
46708
  'The name of the organization (e.g., "State University").'
46531
46709
  ),
46532
- logoUrl: external_exports2.string().url().optional().describe("The URL of the organization's logo.")
46710
+ logoUrl: external_exports2.string().url().optional().describe(
46711
+ "The URL of the organization's logo."
46712
+ )
46533
46713
  }).optional(),
46534
46714
  credential: external_exports2.object({
46535
46715
  name: external_exports2.string().optional().describe(
@@ -46556,6 +46736,9 @@ var IssueInboxCredentialValidator = external_exports2.object({
46556
46736
  }).optional().describe(
46557
46737
  "Configuration for the credential issuance. If not provided, the default configuration will be used."
46558
46738
  )
46739
+ }).refine((data) => data.credential || data.templateUri, {
46740
+ message: "Either credential or templateUri must be provided.",
46741
+ path: ["credential"]
46559
46742
  });
46560
46743
  var IssueInboxCredentialResponseValidator = external_exports2.object({
46561
46744
  issuanceId: external_exports2.string(),
@@ -46583,28 +46766,43 @@ var LCNDomainOrOriginValidator = external_exports2.union([
46583
46766
  { message: "Must be a valid http(s) origin" }
46584
46767
  )
46585
46768
  ]);
46769
+ var LCNIntegrationStatusEnum = external_exports2.enum(["setup", "active", "paused"]);
46586
46770
  var LCNIntegrationValidator = external_exports2.object({
46587
46771
  id: external_exports2.string(),
46588
46772
  name: external_exports2.string(),
46589
46773
  description: external_exports2.string().optional(),
46590
46774
  publishableKey: external_exports2.string(),
46591
- whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([])
46775
+ whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([]),
46776
+ // Setup/onboarding status
46777
+ status: LCNIntegrationStatusEnum.default("setup"),
46778
+ guideType: external_exports2.string().optional(),
46779
+ guideState: external_exports2.record(external_exports2.string(), external_exports2.any()).optional(),
46780
+ // Timestamps
46781
+ createdAt: external_exports2.string().optional(),
46782
+ updatedAt: external_exports2.string().optional()
46592
46783
  });
46593
46784
  var LCNIntegrationCreateValidator = external_exports2.object({
46594
46785
  name: external_exports2.string(),
46595
46786
  description: external_exports2.string().optional(),
46596
- whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([])
46787
+ whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([]),
46788
+ guideType: external_exports2.string().optional()
46597
46789
  });
46598
46790
  var LCNIntegrationUpdateValidator = external_exports2.object({
46599
46791
  name: external_exports2.string().optional(),
46600
46792
  description: external_exports2.string().optional(),
46601
46793
  whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).optional(),
46602
- rotatePublishableKey: external_exports2.boolean().optional()
46794
+ rotatePublishableKey: external_exports2.boolean().optional(),
46795
+ // Setup/onboarding updates
46796
+ status: LCNIntegrationStatusEnum.optional(),
46797
+ guideType: external_exports2.string().optional(),
46798
+ guideState: external_exports2.record(external_exports2.string(), external_exports2.any()).optional()
46603
46799
  });
46604
46800
  var LCNIntegrationQueryValidator = external_exports2.object({
46605
46801
  id: StringQuery,
46606
46802
  name: StringQuery,
46607
- description: StringQuery
46803
+ description: StringQuery,
46804
+ status: StringQuery,
46805
+ guideType: StringQuery
46608
46806
  }).partial();
46609
46807
  var PaginatedLCNIntegrationsValidator = PaginationResponseValidator.extend({
46610
46808
  records: LCNIntegrationValidator.array()
@@ -46819,6 +47017,7 @@ var PromotionLevelValidator = external_exports2.enum([
46819
47017
  ]);
46820
47018
  var AppStoreListingValidator = external_exports2.object({
46821
47019
  listing_id: external_exports2.string(),
47020
+ slug: external_exports2.string().optional(),
46822
47021
  display_name: external_exports2.string(),
46823
47022
  tagline: external_exports2.string(),
46824
47023
  full_description: external_exports2.string(),
@@ -46856,6 +47055,77 @@ var PaginatedAppStoreListingsValidator = PaginationResponseValidator.extend({
46856
47055
  var PaginatedInstalledAppsValidator = PaginationResponseValidator.extend({
46857
47056
  records: InstalledAppValidator.array()
46858
47057
  });
47058
+ var AppBoostValidator = external_exports2.object({
47059
+ templateAlias: external_exports2.string().min(1).max(50).regex(/^[a-z0-9-]+$/),
47060
+ boostUri: external_exports2.string()
47061
+ });
47062
+ var SendCredentialEventValidator = external_exports2.object({
47063
+ type: external_exports2.literal("send-credential"),
47064
+ templateAlias: external_exports2.string(),
47065
+ templateData: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional()
47066
+ });
47067
+ var AppEventValidator = external_exports2.discriminatedUnion("type", [SendCredentialEventValidator]);
47068
+ var AppEventInputValidator = external_exports2.object({
47069
+ listingId: external_exports2.string(),
47070
+ event: AppEventValidator
47071
+ });
47072
+ var AppEventResponseValidator = external_exports2.record(external_exports2.string(), external_exports2.unknown());
47073
+ var CredentialActivityEventTypeValidator = external_exports2.enum([
47074
+ "CREATED",
47075
+ "DELIVERED",
47076
+ "CLAIMED",
47077
+ "EXPIRED",
47078
+ "FAILED"
47079
+ ]);
47080
+ var CredentialActivityRecipientTypeValidator = external_exports2.enum(["profile", "email", "phone"]);
47081
+ var CredentialActivitySourceTypeValidator = external_exports2.enum([
47082
+ "send",
47083
+ "sendBoost",
47084
+ "sendCredential",
47085
+ "contract",
47086
+ "claim",
47087
+ "inbox",
47088
+ "claimLink",
47089
+ "acceptCredential"
47090
+ ]);
47091
+ var CredentialActivityValidator = external_exports2.object({
47092
+ id: external_exports2.string(),
47093
+ activityId: external_exports2.string(),
47094
+ eventType: CredentialActivityEventTypeValidator,
47095
+ timestamp: external_exports2.string(),
47096
+ actorProfileId: external_exports2.string(),
47097
+ recipientType: CredentialActivityRecipientTypeValidator,
47098
+ recipientIdentifier: external_exports2.string(),
47099
+ boostUri: external_exports2.string().optional(),
47100
+ credentialUri: external_exports2.string().optional(),
47101
+ inboxCredentialId: external_exports2.string().optional(),
47102
+ integrationId: external_exports2.string().optional(),
47103
+ source: CredentialActivitySourceTypeValidator,
47104
+ metadata: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional()
47105
+ });
47106
+ var CredentialActivityWithDetailsValidator = CredentialActivityValidator.extend({
47107
+ boost: external_exports2.object({
47108
+ id: external_exports2.string(),
47109
+ name: external_exports2.string().optional(),
47110
+ category: external_exports2.string().optional()
47111
+ }).optional(),
47112
+ recipientProfile: external_exports2.object({
47113
+ profileId: external_exports2.string(),
47114
+ displayName: external_exports2.string().optional()
47115
+ }).optional()
47116
+ });
47117
+ var PaginatedCredentialActivitiesValidator = PaginationResponseValidator.extend({
47118
+ records: CredentialActivityWithDetailsValidator.array()
47119
+ });
47120
+ var CredentialActivityStatsValidator = external_exports2.object({
47121
+ total: external_exports2.number(),
47122
+ created: external_exports2.number(),
47123
+ delivered: external_exports2.number(),
47124
+ claimed: external_exports2.number(),
47125
+ expired: external_exports2.number(),
47126
+ failed: external_exports2.number(),
47127
+ claimRate: external_exports2.number()
47128
+ });
46859
47129
 
46860
47130
  // ../../learn-card-helpers/dist/helpers.esm.js
46861
47131
  var import_decode_uri_component2 = __toESM(require_decode_uri_component2());
@@ -47253,9 +47523,9 @@ function maybeFreeze2(scope, value, deep = false) {
47253
47523
  }
47254
47524
  __name(maybeFreeze2, "maybeFreeze");
47255
47525
  function createProxyProxy2(base, parent) {
47256
- const isArray = Array.isArray(base);
47526
+ const isArray2 = Array.isArray(base);
47257
47527
  const state = {
47258
- type_: isArray ? 1 : 0,
47528
+ type_: isArray2 ? 1 : 0,
47259
47529
  // Track which produce call this is associated with.
47260
47530
  scope_: parent ? parent.scope_ : getCurrentScope2(),
47261
47531
  // True for both shallow and deep changes.
@@ -47279,7 +47549,7 @@ function createProxyProxy2(base, parent) {
47279
47549
  };
47280
47550
  let target = state;
47281
47551
  let traps = objectTraps2;
47282
- if (isArray) {
47552
+ if (isArray2) {
47283
47553
  target = [state];
47284
47554
  traps = arrayTraps2;
47285
47555
  }
@@ -47689,6 +47959,10 @@ var require_types_cjs_development2 = __commonJS4({
47689
47959
  AddressValidator: /* @__PURE__ */ __name4(() => AddressValidator2, "AddressValidator"),
47690
47960
  AlignmentTargetTypeValidator: /* @__PURE__ */ __name4(() => AlignmentTargetTypeValidator2, "AlignmentTargetTypeValidator"),
47691
47961
  AlignmentValidator: /* @__PURE__ */ __name4(() => AlignmentValidator2, "AlignmentValidator"),
47962
+ AppBoostValidator: /* @__PURE__ */ __name4(() => AppBoostValidator2, "AppBoostValidator"),
47963
+ AppEventInputValidator: /* @__PURE__ */ __name4(() => AppEventInputValidator2, "AppEventInputValidator"),
47964
+ AppEventResponseValidator: /* @__PURE__ */ __name4(() => AppEventResponseValidator2, "AppEventResponseValidator"),
47965
+ AppEventValidator: /* @__PURE__ */ __name4(() => AppEventValidator2, "AppEventValidator"),
47692
47966
  AppListingStatusValidator: /* @__PURE__ */ __name4(() => AppListingStatusValidator2, "AppListingStatusValidator"),
47693
47967
  AppStoreListingCreateValidator: /* @__PURE__ */ __name4(() => AppStoreListingCreateValidator2, "AppStoreListingCreateValidator"),
47694
47968
  AppStoreListingUpdateValidator: /* @__PURE__ */ __name4(() => AppStoreListingUpdateValidator2, "AppStoreListingUpdateValidator"),
@@ -47737,6 +48011,12 @@ var require_types_cjs_development2 = __commonJS4({
47737
48011
  CreateManagedFrameworkInputValidator: /* @__PURE__ */ __name4(() => CreateManagedFrameworkInputValidator2, "CreateManagedFrameworkInputValidator"),
47738
48012
  CreateSkillInputValidator: /* @__PURE__ */ __name4(() => CreateSkillInputValidator2, "CreateSkillInputValidator"),
47739
48013
  CreateSkillsBatchInputValidator: /* @__PURE__ */ __name4(() => CreateSkillsBatchInputValidator2, "CreateSkillsBatchInputValidator"),
48014
+ CredentialActivityEventTypeValidator: /* @__PURE__ */ __name4(() => CredentialActivityEventTypeValidator2, "CredentialActivityEventTypeValidator"),
48015
+ CredentialActivityRecipientTypeValidator: /* @__PURE__ */ __name4(() => CredentialActivityRecipientTypeValidator2, "CredentialActivityRecipientTypeValidator"),
48016
+ CredentialActivitySourceTypeValidator: /* @__PURE__ */ __name4(() => CredentialActivitySourceTypeValidator2, "CredentialActivitySourceTypeValidator"),
48017
+ CredentialActivityStatsValidator: /* @__PURE__ */ __name4(() => CredentialActivityStatsValidator2, "CredentialActivityStatsValidator"),
48018
+ CredentialActivityValidator: /* @__PURE__ */ __name4(() => CredentialActivityValidator2, "CredentialActivityValidator"),
48019
+ CredentialActivityWithDetailsValidator: /* @__PURE__ */ __name4(() => CredentialActivityWithDetailsValidator2, "CredentialActivityWithDetailsValidator"),
47740
48020
  CredentialInfoValidator: /* @__PURE__ */ __name4(() => CredentialInfoValidator2, "CredentialInfoValidator"),
47741
48021
  CredentialRecordValidator: /* @__PURE__ */ __name4(() => CredentialRecordValidator2, "CredentialRecordValidator"),
47742
48022
  CredentialSchemaValidator: /* @__PURE__ */ __name4(() => CredentialSchemaValidator2, "CredentialSchemaValidator"),
@@ -47783,6 +48063,7 @@ var require_types_cjs_development2 = __commonJS4({
47783
48063
  LCNInboxStatusEnumValidator: /* @__PURE__ */ __name4(() => LCNInboxStatusEnumValidator2, "LCNInboxStatusEnumValidator"),
47784
48064
  LCNIntegrationCreateValidator: /* @__PURE__ */ __name4(() => LCNIntegrationCreateValidator2, "LCNIntegrationCreateValidator"),
47785
48065
  LCNIntegrationQueryValidator: /* @__PURE__ */ __name4(() => LCNIntegrationQueryValidator2, "LCNIntegrationQueryValidator"),
48066
+ LCNIntegrationStatusEnum: /* @__PURE__ */ __name4(() => LCNIntegrationStatusEnum2, "LCNIntegrationStatusEnum"),
47786
48067
  LCNIntegrationUpdateValidator: /* @__PURE__ */ __name4(() => LCNIntegrationUpdateValidator2, "LCNIntegrationUpdateValidator"),
47787
48068
  LCNIntegrationValidator: /* @__PURE__ */ __name4(() => LCNIntegrationValidator2, "LCNIntegrationValidator"),
47788
48069
  LCNNotificationDataValidator: /* @__PURE__ */ __name4(() => LCNNotificationDataValidator2, "LCNNotificationDataValidator"),
@@ -47811,6 +48092,7 @@ var require_types_cjs_development2 = __commonJS4({
47811
48092
  PaginatedConsentFlowTermsValidator: /* @__PURE__ */ __name4(() => PaginatedConsentFlowTermsValidator2, "PaginatedConsentFlowTermsValidator"),
47812
48093
  PaginatedConsentFlowTransactionsValidator: /* @__PURE__ */ __name4(() => PaginatedConsentFlowTransactionsValidator2, "PaginatedConsentFlowTransactionsValidator"),
47813
48094
  PaginatedContractCredentialsValidator: /* @__PURE__ */ __name4(() => PaginatedContractCredentialsValidator2, "PaginatedContractCredentialsValidator"),
48095
+ PaginatedCredentialActivitiesValidator: /* @__PURE__ */ __name4(() => PaginatedCredentialActivitiesValidator2, "PaginatedCredentialActivitiesValidator"),
47814
48096
  PaginatedEncryptedCredentialRecordsValidator: /* @__PURE__ */ __name4(() => PaginatedEncryptedCredentialRecordsValidator2, "PaginatedEncryptedCredentialRecordsValidator"),
47815
48097
  PaginatedEncryptedRecordsValidator: /* @__PURE__ */ __name4(() => PaginatedEncryptedRecordsValidator2, "PaginatedEncryptedRecordsValidator"),
47816
48098
  PaginatedInboxCredentialsValidator: /* @__PURE__ */ __name4(() => PaginatedInboxCredentialsValidator2, "PaginatedInboxCredentialsValidator"),
@@ -47838,7 +48120,11 @@ var require_types_cjs_development2 = __commonJS4({
47838
48120
  RubricCriterionValidator: /* @__PURE__ */ __name4(() => RubricCriterionValidator2, "RubricCriterionValidator"),
47839
48121
  SendBoostInputValidator: /* @__PURE__ */ __name4(() => SendBoostInputValidator2, "SendBoostInputValidator"),
47840
48122
  SendBoostResponseValidator: /* @__PURE__ */ __name4(() => SendBoostResponseValidator2, "SendBoostResponseValidator"),
48123
+ SendBrandingOptionsValidator: /* @__PURE__ */ __name4(() => SendBrandingOptionsValidator2, "SendBrandingOptionsValidator"),
48124
+ SendCredentialEventValidator: /* @__PURE__ */ __name4(() => SendCredentialEventValidator2, "SendCredentialEventValidator"),
48125
+ SendInboxResponseValidator: /* @__PURE__ */ __name4(() => SendInboxResponseValidator2, "SendInboxResponseValidator"),
47841
48126
  SendInputValidator: /* @__PURE__ */ __name4(() => SendInputValidator2, "SendInputValidator"),
48127
+ SendOptionsValidator: /* @__PURE__ */ __name4(() => SendOptionsValidator2, "SendOptionsValidator"),
47842
48128
  SendResponseValidator: /* @__PURE__ */ __name4(() => SendResponseValidator2, "SendResponseValidator"),
47843
48129
  SentCredentialInfoValidator: /* @__PURE__ */ __name4(() => SentCredentialInfoValidator2, "SentCredentialInfoValidator"),
47844
48130
  ServiceValidator: /* @__PURE__ */ __name4(() => ServiceValidator2, "ServiceValidator"),
@@ -62213,7 +62499,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62213
62499
  var PaginatedClaimHooksValidator2 = PaginationResponseValidator2.extend({
62214
62500
  records: FullClaimHookValidator2.array()
62215
62501
  });
62216
- var LCNBoostStatus2 = external_exports3.enum(["DRAFT", "LIVE"]);
62502
+ var LCNBoostStatus2 = external_exports3.enum(["DRAFT", "PROVISIONAL", "LIVE"]);
62217
62503
  var BoostValidator2 = external_exports3.object({
62218
62504
  uri: external_exports3.string(),
62219
62505
  name: external_exports3.string().optional(),
@@ -62297,21 +62583,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62297
62583
  claimPermissions: BoostPermissionsValidator2.partial().optional(),
62298
62584
  skills: external_exports3.array(external_exports3.object({ frameworkId: external_exports3.string(), id: external_exports3.string() })).min(1).optional()
62299
62585
  });
62586
+ var SendBrandingOptionsValidator2 = external_exports3.object({
62587
+ issuerName: external_exports3.string().optional().describe("Name of the issuing organization"),
62588
+ issuerLogoUrl: external_exports3.string().url().optional().describe("Logo URL of the issuing organization"),
62589
+ credentialName: external_exports3.string().optional().describe("Display name for the credential"),
62590
+ recipientName: external_exports3.string().optional().describe("Name of the recipient for personalization")
62591
+ });
62592
+ var SendOptionsValidator2 = external_exports3.object({
62593
+ webhookUrl: external_exports3.string().url().optional().describe("Webhook URL to receive claim notifications"),
62594
+ suppressDelivery: external_exports3.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
62595
+ branding: SendBrandingOptionsValidator2.optional().describe("Branding for email/SMS delivery")
62596
+ });
62300
62597
  var SendBoostInputValidator2 = external_exports3.object({
62301
62598
  type: external_exports3.literal("boost"),
62302
- recipient: external_exports3.string(),
62599
+ recipient: external_exports3.string().describe("Profile ID, DID, email, or phone number (auto-detected)"),
62303
62600
  contractUri: external_exports3.string().optional(),
62304
62601
  templateUri: external_exports3.string().optional(),
62305
62602
  template: SendBoostTemplateValidator2.optional(),
62306
- signedCredential: VCValidator2.optional()
62603
+ signedCredential: VCValidator2.optional(),
62604
+ options: SendOptionsValidator2.optional().describe(
62605
+ "Options for email/phone recipients (Universal Inbox)"
62606
+ ),
62607
+ templateData: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional(),
62608
+ integrationId: external_exports3.string().optional().describe("Integration ID for activity tracking")
62307
62609
  }).refine((data) => data.templateUri || data.template, {
62308
62610
  message: "Either templateUri or template creation data must be provided.",
62309
62611
  path: ["templateUri"]
62310
62612
  });
62613
+ var SendInboxResponseValidator2 = external_exports3.object({
62614
+ issuanceId: external_exports3.string(),
62615
+ status: external_exports3.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
62616
+ claimUrl: external_exports3.string().url().optional().describe("Present when suppressDelivery=true")
62617
+ });
62311
62618
  var SendBoostResponseValidator2 = external_exports3.object({
62312
62619
  type: external_exports3.literal("boost"),
62313
62620
  credentialUri: external_exports3.string(),
62314
- uri: external_exports3.string()
62621
+ uri: external_exports3.string(),
62622
+ activityId: external_exports3.string().describe("Links to the activity lifecycle for this issuance"),
62623
+ inbox: SendInboxResponseValidator2.optional().describe(
62624
+ "Present when sent via email/phone (Universal Inbox)"
62625
+ )
62315
62626
  });
62316
62627
  var SendInputValidator2 = external_exports3.discriminatedUnion("type", [SendBoostInputValidator2]);
62317
62628
  var SendResponseValidator2 = external_exports3.discriminatedUnion("type", [SendBoostResponseValidator2]);
@@ -62663,6 +62974,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62663
62974
  createdAt: external_exports3.string(),
62664
62975
  issuerDid: external_exports3.string(),
62665
62976
  webhookUrl: external_exports3.string().optional(),
62977
+ boostUri: external_exports3.string().optional(),
62978
+ activityId: external_exports3.string().optional(),
62666
62979
  signingAuthority: external_exports3.object({
62667
62980
  endpoint: external_exports3.string().optional(),
62668
62981
  name: external_exports3.string().optional()
@@ -62678,7 +62991,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62678
62991
  id: external_exports3.string(),
62679
62992
  isSigned: external_exports3.boolean(),
62680
62993
  isAccepted: external_exports3.boolean().optional(),
62681
- issuerDid: external_exports3.string()
62994
+ issuerDid: external_exports3.string(),
62995
+ boostUri: external_exports3.string()
62682
62996
  }).partial();
62683
62997
  var IssueInboxSigningAuthorityValidator2 = external_exports3.object({
62684
62998
  endpoint: external_exports3.string().url(),
@@ -62688,9 +63002,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62688
63002
  // === CORE DATA (Required) ===
62689
63003
  // WHAT is being sent and WHO is it for?
62690
63004
  recipient: ContactMethodQueryValidator2.describe("The recipient of the credential"),
62691
- credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).describe(
63005
+ // Either credential OR templateUri must be provided
63006
+ credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).optional().describe(
62692
63007
  "The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration."
62693
63008
  ),
63009
+ templateUri: external_exports3.string().optional().describe(
63010
+ "URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field."
63011
+ ),
62694
63012
  // === OPTIONAL FEATURES ===
62695
63013
  // Add major, distinct features at the top level.
62696
63014
  //consentRequest: ConsentRequestValidator.optional(),
@@ -62702,6 +63020,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62702
63020
  ),
62703
63021
  webhookUrl: external_exports3.string().url().optional().describe("The webhook URL to receive credential issuance events."),
62704
63022
  expiresInDays: external_exports3.number().min(1).max(365).optional().describe("The number of days the credential will be valid for."),
63023
+ templateData: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional().describe(
63024
+ "Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided."
63025
+ ),
62705
63026
  // --- For User-Facing Delivery (Email/SMS) ---
62706
63027
  delivery: external_exports3.object({
62707
63028
  suppress: external_exports3.boolean().optional().default(false).describe(
@@ -62716,7 +63037,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62716
63037
  name: external_exports3.string().optional().describe(
62717
63038
  'The name of the organization (e.g., "State University").'
62718
63039
  ),
62719
- logoUrl: external_exports3.string().url().optional().describe("The URL of the organization's logo.")
63040
+ logoUrl: external_exports3.string().url().optional().describe(
63041
+ "The URL of the organization's logo."
63042
+ )
62720
63043
  }).optional(),
62721
63044
  credential: external_exports3.object({
62722
63045
  name: external_exports3.string().optional().describe(
@@ -62743,6 +63066,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62743
63066
  }).optional().describe(
62744
63067
  "Configuration for the credential issuance. If not provided, the default configuration will be used."
62745
63068
  )
63069
+ }).refine((data) => data.credential || data.templateUri, {
63070
+ message: "Either credential or templateUri must be provided.",
63071
+ path: ["credential"]
62746
63072
  });
62747
63073
  var IssueInboxCredentialResponseValidator2 = external_exports3.object({
62748
63074
  issuanceId: external_exports3.string(),
@@ -62770,28 +63096,43 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62770
63096
  { message: "Must be a valid http(s) origin" }
62771
63097
  )
62772
63098
  ]);
63099
+ var LCNIntegrationStatusEnum2 = external_exports3.enum(["setup", "active", "paused"]);
62773
63100
  var LCNIntegrationValidator2 = external_exports3.object({
62774
63101
  id: external_exports3.string(),
62775
63102
  name: external_exports3.string(),
62776
63103
  description: external_exports3.string().optional(),
62777
63104
  publishableKey: external_exports3.string(),
62778
- whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([])
63105
+ whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([]),
63106
+ // Setup/onboarding status
63107
+ status: LCNIntegrationStatusEnum2.default("setup"),
63108
+ guideType: external_exports3.string().optional(),
63109
+ guideState: external_exports3.record(external_exports3.string(), external_exports3.any()).optional(),
63110
+ // Timestamps
63111
+ createdAt: external_exports3.string().optional(),
63112
+ updatedAt: external_exports3.string().optional()
62779
63113
  });
62780
63114
  var LCNIntegrationCreateValidator2 = external_exports3.object({
62781
63115
  name: external_exports3.string(),
62782
63116
  description: external_exports3.string().optional(),
62783
- whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([])
63117
+ whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([]),
63118
+ guideType: external_exports3.string().optional()
62784
63119
  });
62785
63120
  var LCNIntegrationUpdateValidator2 = external_exports3.object({
62786
63121
  name: external_exports3.string().optional(),
62787
63122
  description: external_exports3.string().optional(),
62788
63123
  whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).optional(),
62789
- rotatePublishableKey: external_exports3.boolean().optional()
63124
+ rotatePublishableKey: external_exports3.boolean().optional(),
63125
+ // Setup/onboarding updates
63126
+ status: LCNIntegrationStatusEnum2.optional(),
63127
+ guideType: external_exports3.string().optional(),
63128
+ guideState: external_exports3.record(external_exports3.string(), external_exports3.any()).optional()
62790
63129
  });
62791
63130
  var LCNIntegrationQueryValidator2 = external_exports3.object({
62792
63131
  id: StringQuery2,
62793
63132
  name: StringQuery2,
62794
- description: StringQuery2
63133
+ description: StringQuery2,
63134
+ status: StringQuery2,
63135
+ guideType: StringQuery2
62795
63136
  }).partial();
62796
63137
  var PaginatedLCNIntegrationsValidator2 = PaginationResponseValidator2.extend({
62797
63138
  records: LCNIntegrationValidator2.array()
@@ -63006,6 +63347,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
63006
63347
  ]);
63007
63348
  var AppStoreListingValidator2 = external_exports3.object({
63008
63349
  listing_id: external_exports3.string(),
63350
+ slug: external_exports3.string().optional(),
63009
63351
  display_name: external_exports3.string(),
63010
63352
  tagline: external_exports3.string(),
63011
63353
  full_description: external_exports3.string(),
@@ -63043,6 +63385,77 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
63043
63385
  var PaginatedInstalledAppsValidator2 = PaginationResponseValidator2.extend({
63044
63386
  records: InstalledAppValidator2.array()
63045
63387
  });
63388
+ var AppBoostValidator2 = external_exports3.object({
63389
+ templateAlias: external_exports3.string().min(1).max(50).regex(/^[a-z0-9-]+$/),
63390
+ boostUri: external_exports3.string()
63391
+ });
63392
+ var SendCredentialEventValidator2 = external_exports3.object({
63393
+ type: external_exports3.literal("send-credential"),
63394
+ templateAlias: external_exports3.string(),
63395
+ templateData: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional()
63396
+ });
63397
+ var AppEventValidator2 = external_exports3.discriminatedUnion("type", [SendCredentialEventValidator2]);
63398
+ var AppEventInputValidator2 = external_exports3.object({
63399
+ listingId: external_exports3.string(),
63400
+ event: AppEventValidator2
63401
+ });
63402
+ var AppEventResponseValidator2 = external_exports3.record(external_exports3.string(), external_exports3.unknown());
63403
+ var CredentialActivityEventTypeValidator2 = external_exports3.enum([
63404
+ "CREATED",
63405
+ "DELIVERED",
63406
+ "CLAIMED",
63407
+ "EXPIRED",
63408
+ "FAILED"
63409
+ ]);
63410
+ var CredentialActivityRecipientTypeValidator2 = external_exports3.enum(["profile", "email", "phone"]);
63411
+ var CredentialActivitySourceTypeValidator2 = external_exports3.enum([
63412
+ "send",
63413
+ "sendBoost",
63414
+ "sendCredential",
63415
+ "contract",
63416
+ "claim",
63417
+ "inbox",
63418
+ "claimLink",
63419
+ "acceptCredential"
63420
+ ]);
63421
+ var CredentialActivityValidator2 = external_exports3.object({
63422
+ id: external_exports3.string(),
63423
+ activityId: external_exports3.string(),
63424
+ eventType: CredentialActivityEventTypeValidator2,
63425
+ timestamp: external_exports3.string(),
63426
+ actorProfileId: external_exports3.string(),
63427
+ recipientType: CredentialActivityRecipientTypeValidator2,
63428
+ recipientIdentifier: external_exports3.string(),
63429
+ boostUri: external_exports3.string().optional(),
63430
+ credentialUri: external_exports3.string().optional(),
63431
+ inboxCredentialId: external_exports3.string().optional(),
63432
+ integrationId: external_exports3.string().optional(),
63433
+ source: CredentialActivitySourceTypeValidator2,
63434
+ metadata: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional()
63435
+ });
63436
+ var CredentialActivityWithDetailsValidator2 = CredentialActivityValidator2.extend({
63437
+ boost: external_exports3.object({
63438
+ id: external_exports3.string(),
63439
+ name: external_exports3.string().optional(),
63440
+ category: external_exports3.string().optional()
63441
+ }).optional(),
63442
+ recipientProfile: external_exports3.object({
63443
+ profileId: external_exports3.string(),
63444
+ displayName: external_exports3.string().optional()
63445
+ }).optional()
63446
+ });
63447
+ var PaginatedCredentialActivitiesValidator2 = PaginationResponseValidator2.extend({
63448
+ records: CredentialActivityWithDetailsValidator2.array()
63449
+ });
63450
+ var CredentialActivityStatsValidator2 = external_exports3.object({
63451
+ total: external_exports3.number(),
63452
+ created: external_exports3.number(),
63453
+ delivered: external_exports3.number(),
63454
+ claimed: external_exports3.number(),
63455
+ expired: external_exports3.number(),
63456
+ failed: external_exports3.number(),
63457
+ claimRate: external_exports3.number()
63458
+ });
63046
63459
  }
63047
63460
  });
63048
63461
  var require_dist2 = __commonJS4({
@@ -63299,16 +63712,16 @@ function parserForArrayFormat2(options) {
63299
63712
  case "comma":
63300
63713
  case "separator": {
63301
63714
  return (key, value, accumulator) => {
63302
- const isArray = typeof value === "string" && value.includes(options.arrayFormatSeparator);
63303
- const newValue = isArray ? value.split(options.arrayFormatSeparator).map((item) => decode6(item, options)) : value === null ? value : decode6(value, options);
63715
+ const isArray2 = typeof value === "string" && value.includes(options.arrayFormatSeparator);
63716
+ const newValue = isArray2 ? value.split(options.arrayFormatSeparator).map((item) => decode6(item, options)) : value === null ? value : decode6(value, options);
63304
63717
  accumulator[key] = newValue;
63305
63718
  };
63306
63719
  }
63307
63720
  case "bracket-separator": {
63308
63721
  return (key, value, accumulator) => {
63309
- const isArray = /(\[])$/.test(key);
63722
+ const isArray2 = /(\[])$/.test(key);
63310
63723
  key = key.replace(/\[]$/, "");
63311
- if (!isArray) {
63724
+ if (!isArray2) {
63312
63725
  accumulator[key] = value ? decode6(value, options) : value;
63313
63726
  return;
63314
63727
  }
@@ -63779,7 +64192,494 @@ var isVC2Format = /* @__PURE__ */ __name4((credential) => {
63779
64192
  return credential["@context"].includes("https://www.w3.org/ns/credentials/v2");
63780
64193
  }, "isVC2Format");
63781
64194
 
64195
+ // ../../../node_modules/.pnpm/mustache@4.2.0/node_modules/mustache/mustache.mjs
64196
+ var objectToString = Object.prototype.toString;
64197
+ var isArray = Array.isArray || /* @__PURE__ */ __name(function isArrayPolyfill(object3) {
64198
+ return objectToString.call(object3) === "[object Array]";
64199
+ }, "isArrayPolyfill");
64200
+ function isFunction(object3) {
64201
+ return typeof object3 === "function";
64202
+ }
64203
+ __name(isFunction, "isFunction");
64204
+ function typeStr(obj) {
64205
+ return isArray(obj) ? "array" : typeof obj;
64206
+ }
64207
+ __name(typeStr, "typeStr");
64208
+ function escapeRegExp(string7) {
64209
+ return string7.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
64210
+ }
64211
+ __name(escapeRegExp, "escapeRegExp");
64212
+ function hasProperty(obj, propName) {
64213
+ return obj != null && typeof obj === "object" && propName in obj;
64214
+ }
64215
+ __name(hasProperty, "hasProperty");
64216
+ function primitiveHasOwnProperty(primitive, propName) {
64217
+ return primitive != null && typeof primitive !== "object" && primitive.hasOwnProperty && primitive.hasOwnProperty(propName);
64218
+ }
64219
+ __name(primitiveHasOwnProperty, "primitiveHasOwnProperty");
64220
+ var regExpTest = RegExp.prototype.test;
64221
+ function testRegExp(re, string7) {
64222
+ return regExpTest.call(re, string7);
64223
+ }
64224
+ __name(testRegExp, "testRegExp");
64225
+ var nonSpaceRe = /\S/;
64226
+ function isWhitespace(string7) {
64227
+ return !testRegExp(nonSpaceRe, string7);
64228
+ }
64229
+ __name(isWhitespace, "isWhitespace");
64230
+ var entityMap = {
64231
+ "&": "&",
64232
+ "<": "&lt;",
64233
+ ">": "&gt;",
64234
+ '"': "&quot;",
64235
+ "'": "&#39;",
64236
+ "/": "&#x2F;",
64237
+ "`": "&#x60;",
64238
+ "=": "&#x3D;"
64239
+ };
64240
+ function escapeHtml(string7) {
64241
+ return String(string7).replace(/[&<>"'`=\/]/g, /* @__PURE__ */ __name(function fromEntityMap(s) {
64242
+ return entityMap[s];
64243
+ }, "fromEntityMap"));
64244
+ }
64245
+ __name(escapeHtml, "escapeHtml");
64246
+ var whiteRe = /\s*/;
64247
+ var spaceRe = /\s+/;
64248
+ var equalsRe = /\s*=/;
64249
+ var curlyRe = /\s*\}/;
64250
+ var tagRe = /#|\^|\/|>|\{|&|=|!/;
64251
+ function parseTemplate(template, tags) {
64252
+ if (!template)
64253
+ return [];
64254
+ var lineHasNonSpace = false;
64255
+ var sections = [];
64256
+ var tokens = [];
64257
+ var spaces = [];
64258
+ var hasTag = false;
64259
+ var nonSpace = false;
64260
+ var indentation = "";
64261
+ var tagIndex = 0;
64262
+ function stripSpace() {
64263
+ if (hasTag && !nonSpace) {
64264
+ while (spaces.length)
64265
+ delete tokens[spaces.pop()];
64266
+ } else {
64267
+ spaces = [];
64268
+ }
64269
+ hasTag = false;
64270
+ nonSpace = false;
64271
+ }
64272
+ __name(stripSpace, "stripSpace");
64273
+ var openingTagRe, closingTagRe, closingCurlyRe;
64274
+ function compileTags(tagsToCompile) {
64275
+ if (typeof tagsToCompile === "string")
64276
+ tagsToCompile = tagsToCompile.split(spaceRe, 2);
64277
+ if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)
64278
+ throw new Error("Invalid tags: " + tagsToCompile);
64279
+ openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + "\\s*");
64280
+ closingTagRe = new RegExp("\\s*" + escapeRegExp(tagsToCompile[1]));
64281
+ closingCurlyRe = new RegExp("\\s*" + escapeRegExp("}" + tagsToCompile[1]));
64282
+ }
64283
+ __name(compileTags, "compileTags");
64284
+ compileTags(tags || mustache.tags);
64285
+ var scanner = new Scanner(template);
64286
+ var start, type, value, chr, token, openSection;
64287
+ while (!scanner.eos()) {
64288
+ start = scanner.pos;
64289
+ value = scanner.scanUntil(openingTagRe);
64290
+ if (value) {
64291
+ for (var i = 0, valueLength = value.length; i < valueLength; ++i) {
64292
+ chr = value.charAt(i);
64293
+ if (isWhitespace(chr)) {
64294
+ spaces.push(tokens.length);
64295
+ indentation += chr;
64296
+ } else {
64297
+ nonSpace = true;
64298
+ lineHasNonSpace = true;
64299
+ indentation += " ";
64300
+ }
64301
+ tokens.push(["text", chr, start, start + 1]);
64302
+ start += 1;
64303
+ if (chr === "\n") {
64304
+ stripSpace();
64305
+ indentation = "";
64306
+ tagIndex = 0;
64307
+ lineHasNonSpace = false;
64308
+ }
64309
+ }
64310
+ }
64311
+ if (!scanner.scan(openingTagRe))
64312
+ break;
64313
+ hasTag = true;
64314
+ type = scanner.scan(tagRe) || "name";
64315
+ scanner.scan(whiteRe);
64316
+ if (type === "=") {
64317
+ value = scanner.scanUntil(equalsRe);
64318
+ scanner.scan(equalsRe);
64319
+ scanner.scanUntil(closingTagRe);
64320
+ } else if (type === "{") {
64321
+ value = scanner.scanUntil(closingCurlyRe);
64322
+ scanner.scan(curlyRe);
64323
+ scanner.scanUntil(closingTagRe);
64324
+ type = "&";
64325
+ } else {
64326
+ value = scanner.scanUntil(closingTagRe);
64327
+ }
64328
+ if (!scanner.scan(closingTagRe))
64329
+ throw new Error("Unclosed tag at " + scanner.pos);
64330
+ if (type == ">") {
64331
+ token = [type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace];
64332
+ } else {
64333
+ token = [type, value, start, scanner.pos];
64334
+ }
64335
+ tagIndex++;
64336
+ tokens.push(token);
64337
+ if (type === "#" || type === "^") {
64338
+ sections.push(token);
64339
+ } else if (type === "/") {
64340
+ openSection = sections.pop();
64341
+ if (!openSection)
64342
+ throw new Error('Unopened section "' + value + '" at ' + start);
64343
+ if (openSection[1] !== value)
64344
+ throw new Error('Unclosed section "' + openSection[1] + '" at ' + start);
64345
+ } else if (type === "name" || type === "{" || type === "&") {
64346
+ nonSpace = true;
64347
+ } else if (type === "=") {
64348
+ compileTags(value);
64349
+ }
64350
+ }
64351
+ stripSpace();
64352
+ openSection = sections.pop();
64353
+ if (openSection)
64354
+ throw new Error('Unclosed section "' + openSection[1] + '" at ' + scanner.pos);
64355
+ return nestTokens(squashTokens(tokens));
64356
+ }
64357
+ __name(parseTemplate, "parseTemplate");
64358
+ function squashTokens(tokens) {
64359
+ var squashedTokens = [];
64360
+ var token, lastToken;
64361
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
64362
+ token = tokens[i];
64363
+ if (token) {
64364
+ if (token[0] === "text" && lastToken && lastToken[0] === "text") {
64365
+ lastToken[1] += token[1];
64366
+ lastToken[3] = token[3];
64367
+ } else {
64368
+ squashedTokens.push(token);
64369
+ lastToken = token;
64370
+ }
64371
+ }
64372
+ }
64373
+ return squashedTokens;
64374
+ }
64375
+ __name(squashTokens, "squashTokens");
64376
+ function nestTokens(tokens) {
64377
+ var nestedTokens = [];
64378
+ var collector = nestedTokens;
64379
+ var sections = [];
64380
+ var token, section;
64381
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
64382
+ token = tokens[i];
64383
+ switch (token[0]) {
64384
+ case "#":
64385
+ case "^":
64386
+ collector.push(token);
64387
+ sections.push(token);
64388
+ collector = token[4] = [];
64389
+ break;
64390
+ case "/":
64391
+ section = sections.pop();
64392
+ section[5] = token[2];
64393
+ collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;
64394
+ break;
64395
+ default:
64396
+ collector.push(token);
64397
+ }
64398
+ }
64399
+ return nestedTokens;
64400
+ }
64401
+ __name(nestTokens, "nestTokens");
64402
+ function Scanner(string7) {
64403
+ this.string = string7;
64404
+ this.tail = string7;
64405
+ this.pos = 0;
64406
+ }
64407
+ __name(Scanner, "Scanner");
64408
+ Scanner.prototype.eos = /* @__PURE__ */ __name(function eos() {
64409
+ return this.tail === "";
64410
+ }, "eos");
64411
+ Scanner.prototype.scan = /* @__PURE__ */ __name(function scan(re) {
64412
+ var match = this.tail.match(re);
64413
+ if (!match || match.index !== 0)
64414
+ return "";
64415
+ var string7 = match[0];
64416
+ this.tail = this.tail.substring(string7.length);
64417
+ this.pos += string7.length;
64418
+ return string7;
64419
+ }, "scan");
64420
+ Scanner.prototype.scanUntil = /* @__PURE__ */ __name(function scanUntil(re) {
64421
+ var index = this.tail.search(re), match;
64422
+ switch (index) {
64423
+ case -1:
64424
+ match = this.tail;
64425
+ this.tail = "";
64426
+ break;
64427
+ case 0:
64428
+ match = "";
64429
+ break;
64430
+ default:
64431
+ match = this.tail.substring(0, index);
64432
+ this.tail = this.tail.substring(index);
64433
+ }
64434
+ this.pos += match.length;
64435
+ return match;
64436
+ }, "scanUntil");
64437
+ function Context(view, parentContext) {
64438
+ this.view = view;
64439
+ this.cache = { ".": this.view };
64440
+ this.parent = parentContext;
64441
+ }
64442
+ __name(Context, "Context");
64443
+ Context.prototype.push = /* @__PURE__ */ __name(function push(view) {
64444
+ return new Context(view, this);
64445
+ }, "push");
64446
+ Context.prototype.lookup = /* @__PURE__ */ __name(function lookup(name) {
64447
+ var cache = this.cache;
64448
+ var value;
64449
+ if (cache.hasOwnProperty(name)) {
64450
+ value = cache[name];
64451
+ } else {
64452
+ var context = this, intermediateValue, names, index, lookupHit = false;
64453
+ while (context) {
64454
+ if (name.indexOf(".") > 0) {
64455
+ intermediateValue = context.view;
64456
+ names = name.split(".");
64457
+ index = 0;
64458
+ while (intermediateValue != null && index < names.length) {
64459
+ if (index === names.length - 1)
64460
+ lookupHit = hasProperty(intermediateValue, names[index]) || primitiveHasOwnProperty(intermediateValue, names[index]);
64461
+ intermediateValue = intermediateValue[names[index++]];
64462
+ }
64463
+ } else {
64464
+ intermediateValue = context.view[name];
64465
+ lookupHit = hasProperty(context.view, name);
64466
+ }
64467
+ if (lookupHit) {
64468
+ value = intermediateValue;
64469
+ break;
64470
+ }
64471
+ context = context.parent;
64472
+ }
64473
+ cache[name] = value;
64474
+ }
64475
+ if (isFunction(value))
64476
+ value = value.call(this.view);
64477
+ return value;
64478
+ }, "lookup");
64479
+ function Writer() {
64480
+ this.templateCache = {
64481
+ _cache: {},
64482
+ set: /* @__PURE__ */ __name(function set5(key, value) {
64483
+ this._cache[key] = value;
64484
+ }, "set"),
64485
+ get: /* @__PURE__ */ __name(function get(key) {
64486
+ return this._cache[key];
64487
+ }, "get"),
64488
+ clear: /* @__PURE__ */ __name(function clear() {
64489
+ this._cache = {};
64490
+ }, "clear")
64491
+ };
64492
+ }
64493
+ __name(Writer, "Writer");
64494
+ Writer.prototype.clearCache = /* @__PURE__ */ __name(function clearCache() {
64495
+ if (typeof this.templateCache !== "undefined") {
64496
+ this.templateCache.clear();
64497
+ }
64498
+ }, "clearCache");
64499
+ Writer.prototype.parse = /* @__PURE__ */ __name(function parse7(template, tags) {
64500
+ var cache = this.templateCache;
64501
+ var cacheKey = template + ":" + (tags || mustache.tags).join(":");
64502
+ var isCacheEnabled = typeof cache !== "undefined";
64503
+ var tokens = isCacheEnabled ? cache.get(cacheKey) : void 0;
64504
+ if (tokens == void 0) {
64505
+ tokens = parseTemplate(template, tags);
64506
+ isCacheEnabled && cache.set(cacheKey, tokens);
64507
+ }
64508
+ return tokens;
64509
+ }, "parse");
64510
+ Writer.prototype.render = /* @__PURE__ */ __name(function render(template, view, partials, config3) {
64511
+ var tags = this.getConfigTags(config3);
64512
+ var tokens = this.parse(template, tags);
64513
+ var context = view instanceof Context ? view : new Context(view, void 0);
64514
+ return this.renderTokens(tokens, context, partials, template, config3);
64515
+ }, "render");
64516
+ Writer.prototype.renderTokens = /* @__PURE__ */ __name(function renderTokens(tokens, context, partials, originalTemplate, config3) {
64517
+ var buffer = "";
64518
+ var token, symbol3, value;
64519
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
64520
+ value = void 0;
64521
+ token = tokens[i];
64522
+ symbol3 = token[0];
64523
+ if (symbol3 === "#") value = this.renderSection(token, context, partials, originalTemplate, config3);
64524
+ else if (symbol3 === "^") value = this.renderInverted(token, context, partials, originalTemplate, config3);
64525
+ else if (symbol3 === ">") value = this.renderPartial(token, context, partials, config3);
64526
+ else if (symbol3 === "&") value = this.unescapedValue(token, context);
64527
+ else if (symbol3 === "name") value = this.escapedValue(token, context, config3);
64528
+ else if (symbol3 === "text") value = this.rawValue(token);
64529
+ if (value !== void 0)
64530
+ buffer += value;
64531
+ }
64532
+ return buffer;
64533
+ }, "renderTokens");
64534
+ Writer.prototype.renderSection = /* @__PURE__ */ __name(function renderSection(token, context, partials, originalTemplate, config3) {
64535
+ var self = this;
64536
+ var buffer = "";
64537
+ var value = context.lookup(token[1]);
64538
+ function subRender(template) {
64539
+ return self.render(template, context, partials, config3);
64540
+ }
64541
+ __name(subRender, "subRender");
64542
+ if (!value) return;
64543
+ if (isArray(value)) {
64544
+ for (var j = 0, valueLength = value.length; j < valueLength; ++j) {
64545
+ buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config3);
64546
+ }
64547
+ } else if (typeof value === "object" || typeof value === "string" || typeof value === "number") {
64548
+ buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config3);
64549
+ } else if (isFunction(value)) {
64550
+ if (typeof originalTemplate !== "string")
64551
+ throw new Error("Cannot use higher-order sections without the original template");
64552
+ value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);
64553
+ if (value != null)
64554
+ buffer += value;
64555
+ } else {
64556
+ buffer += this.renderTokens(token[4], context, partials, originalTemplate, config3);
64557
+ }
64558
+ return buffer;
64559
+ }, "renderSection");
64560
+ Writer.prototype.renderInverted = /* @__PURE__ */ __name(function renderInverted(token, context, partials, originalTemplate, config3) {
64561
+ var value = context.lookup(token[1]);
64562
+ if (!value || isArray(value) && value.length === 0)
64563
+ return this.renderTokens(token[4], context, partials, originalTemplate, config3);
64564
+ }, "renderInverted");
64565
+ Writer.prototype.indentPartial = /* @__PURE__ */ __name(function indentPartial(partial3, indentation, lineHasNonSpace) {
64566
+ var filteredIndentation = indentation.replace(/[^ \t]/g, "");
64567
+ var partialByNl = partial3.split("\n");
64568
+ for (var i = 0; i < partialByNl.length; i++) {
64569
+ if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {
64570
+ partialByNl[i] = filteredIndentation + partialByNl[i];
64571
+ }
64572
+ }
64573
+ return partialByNl.join("\n");
64574
+ }, "indentPartial");
64575
+ Writer.prototype.renderPartial = /* @__PURE__ */ __name(function renderPartial(token, context, partials, config3) {
64576
+ if (!partials) return;
64577
+ var tags = this.getConfigTags(config3);
64578
+ var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
64579
+ if (value != null) {
64580
+ var lineHasNonSpace = token[6];
64581
+ var tagIndex = token[5];
64582
+ var indentation = token[4];
64583
+ var indentedValue = value;
64584
+ if (tagIndex == 0 && indentation) {
64585
+ indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);
64586
+ }
64587
+ var tokens = this.parse(indentedValue, tags);
64588
+ return this.renderTokens(tokens, context, partials, indentedValue, config3);
64589
+ }
64590
+ }, "renderPartial");
64591
+ Writer.prototype.unescapedValue = /* @__PURE__ */ __name(function unescapedValue(token, context) {
64592
+ var value = context.lookup(token[1]);
64593
+ if (value != null)
64594
+ return value;
64595
+ }, "unescapedValue");
64596
+ Writer.prototype.escapedValue = /* @__PURE__ */ __name(function escapedValue(token, context, config3) {
64597
+ var escape = this.getConfigEscape(config3) || mustache.escape;
64598
+ var value = context.lookup(token[1]);
64599
+ if (value != null)
64600
+ return typeof value === "number" && escape === mustache.escape ? String(value) : escape(value);
64601
+ }, "escapedValue");
64602
+ Writer.prototype.rawValue = /* @__PURE__ */ __name(function rawValue(token) {
64603
+ return token[1];
64604
+ }, "rawValue");
64605
+ Writer.prototype.getConfigTags = /* @__PURE__ */ __name(function getConfigTags(config3) {
64606
+ if (isArray(config3)) {
64607
+ return config3;
64608
+ } else if (config3 && typeof config3 === "object") {
64609
+ return config3.tags;
64610
+ } else {
64611
+ return void 0;
64612
+ }
64613
+ }, "getConfigTags");
64614
+ Writer.prototype.getConfigEscape = /* @__PURE__ */ __name(function getConfigEscape(config3) {
64615
+ if (config3 && typeof config3 === "object" && !isArray(config3)) {
64616
+ return config3.escape;
64617
+ } else {
64618
+ return void 0;
64619
+ }
64620
+ }, "getConfigEscape");
64621
+ var mustache = {
64622
+ name: "mustache.js",
64623
+ version: "4.2.0",
64624
+ tags: ["{{", "}}"],
64625
+ clearCache: void 0,
64626
+ escape: void 0,
64627
+ parse: void 0,
64628
+ render: void 0,
64629
+ Scanner: void 0,
64630
+ Context: void 0,
64631
+ Writer: void 0,
64632
+ /**
64633
+ * Allows a user to override the default caching strategy, by providing an
64634
+ * object with set, get and clear methods. This can also be used to disable
64635
+ * the cache by setting it to the literal `undefined`.
64636
+ */
64637
+ set templateCache(cache) {
64638
+ defaultWriter.templateCache = cache;
64639
+ },
64640
+ /**
64641
+ * Gets the default or overridden caching object from the default writer.
64642
+ */
64643
+ get templateCache() {
64644
+ return defaultWriter.templateCache;
64645
+ }
64646
+ };
64647
+ var defaultWriter = new Writer();
64648
+ mustache.clearCache = /* @__PURE__ */ __name(function clearCache2() {
64649
+ return defaultWriter.clearCache();
64650
+ }, "clearCache");
64651
+ mustache.parse = /* @__PURE__ */ __name(function parse8(template, tags) {
64652
+ return defaultWriter.parse(template, tags);
64653
+ }, "parse");
64654
+ mustache.render = /* @__PURE__ */ __name(function render2(template, view, partials, config3) {
64655
+ if (typeof template !== "string") {
64656
+ throw new TypeError('Invalid template! Template should be a "string" but "' + typeStr(template) + '" was given as the first argument for mustache#render(template, view, partials)');
64657
+ }
64658
+ return defaultWriter.render(template, view, partials, config3);
64659
+ }, "render");
64660
+ mustache.escape = escapeHtml;
64661
+ mustache.Scanner = Scanner;
64662
+ mustache.Context = Context;
64663
+ mustache.Writer = Writer;
64664
+ var mustache_default = mustache;
64665
+
63782
64666
  // src/plugin.ts
64667
+ var escapeJsonStringValue = /* @__PURE__ */ __name((value) => {
64668
+ if (value === null || value === void 0) return "";
64669
+ return String(value).replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/\f/g, "\\f").replace(/[\b]/g, "\\b");
64670
+ }, "escapeJsonStringValue");
64671
+ var prepareTemplateData = /* @__PURE__ */ __name((templateData) => {
64672
+ const prepared = {};
64673
+ for (const [key, value] of Object.entries(templateData)) {
64674
+ prepared[key] = escapeJsonStringValue(value);
64675
+ }
64676
+ return prepared;
64677
+ }, "prepareTemplateData");
64678
+ var renderTemplateJson = /* @__PURE__ */ __name((jsonString, templateData) => {
64679
+ const preparedData = prepareTemplateData(templateData);
64680
+ const unescapedTemplate = jsonString.replace(/\{\{([^{}]+)\}\}/g, "{{{$1}}}");
64681
+ return mustache_default.render(unescapedTemplate, preparedData);
64682
+ }, "renderTemplateJson");
63783
64683
  async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
63784
64684
  let did = "";
63785
64685
  try {
@@ -64361,7 +65261,7 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
64361
65261
  await ensureUser();
64362
65262
  return client.boost.deleteBoost.mutate({ uri });
64363
65263
  }, "deleteBoost"),
64364
- sendBoost: /* @__PURE__ */ __name(async (_learnCard, profileId, boostUri, options = { encrypt: true, skipNotification: false }) => {
65264
+ sendBoost: /* @__PURE__ */ __name(async (_learnCard, profileId, boostUri, options = { encrypt: true, skipNotification: false, templateData: {} }) => {
64365
65265
  await ensureUser();
64366
65266
  const result = await _learnCard.invoke.resolveFromLCN(boostUri);
64367
65267
  const data = await UnsignedVCValidator.spa(result);
@@ -64384,6 +65284,17 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
64384
65284
  boost.credentialSubject.id = targetProfile.did;
64385
65285
  }
64386
65286
  if (boost?.type?.includes("BoostCredential")) boost.boostId = boostUri;
65287
+ if (typeof options === "object" && options.templateData && Object.keys(options.templateData).length > 0) {
65288
+ try {
65289
+ const boostString = JSON.stringify(boost);
65290
+ const rendered = renderTemplateJson(boostString, options.templateData);
65291
+ boost = JSON.parse(rendered);
65292
+ } catch (error91) {
65293
+ throw new Error(
65294
+ `Template substitution failed: ${error91 instanceof Error ? error91.message : "Unknown error"}. Please check your templateData variables and ensure the rendered output is valid JSON.`
65295
+ );
65296
+ }
65297
+ }
64387
65298
  if (typeof options === "object" && options.overideFn) {
64388
65299
  boost = options.overideFn(boost);
64389
65300
  }
@@ -64453,22 +65364,39 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
64453
65364
  send: /* @__PURE__ */ __name(async (_learnCard, input) => {
64454
65365
  await ensureUser();
64455
65366
  if (input.type === "boost") {
65367
+ const recipient = input.recipient;
65368
+ const isDid = recipient.startsWith("did:");
65369
+ const isEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(recipient);
65370
+ const isPhone = /^\+?[\d\s-]{10,}$/.test(recipient.replace(/[\s-]/g, ""));
64456
65371
  const canIssueLocally = "issueCredential" in _learnCard.invoke;
64457
- if (canIssueLocally && input.templateUri) {
65372
+ const isDirectRecipient = isDid || !isEmail && !isPhone;
65373
+ if (canIssueLocally && isDirectRecipient && input.templateUri) {
64458
65374
  const result = await _learnCard.invoke.resolveFromLCN(input.templateUri);
64459
65375
  const data = await UnsignedVCValidator.spa(result);
64460
65376
  if (data.success) {
64461
65377
  let targetDid;
64462
- if (input.recipient.startsWith("did:")) {
64463
- targetDid = input.recipient;
65378
+ if (isDid) {
65379
+ targetDid = recipient;
64464
65380
  } else {
64465
- const targetProfile = await _learnCard.invoke.getProfile(
64466
- input.recipient
64467
- );
65381
+ const targetProfile = await _learnCard.invoke.getProfile(recipient);
64468
65382
  if (!targetProfile) return client.boost.send.mutate(input);
64469
65383
  targetDid = targetProfile.did;
64470
65384
  }
64471
65385
  let boost = data.data;
65386
+ if (input.templateData && Object.keys(input.templateData).length > 0) {
65387
+ try {
65388
+ const boostString = JSON.stringify(boost);
65389
+ const rendered = renderTemplateJson(
65390
+ boostString,
65391
+ input.templateData
65392
+ );
65393
+ boost = JSON.parse(rendered);
65394
+ } catch (error91) {
65395
+ throw new Error(
65396
+ `Failed to apply template data: ${error91 instanceof Error ? error91.message : "Unknown error"}`
65397
+ );
65398
+ }
65399
+ }
64472
65400
  if (isVC2Format(boost)) {
64473
65401
  boost.validFrom = (/* @__PURE__ */ new Date()).toISOString();
64474
65402
  } else {
@@ -65031,11 +65959,46 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
65031
65959
  await ensureUser();
65032
65960
  return client.appStore.adminGetAllListings.query(options);
65033
65961
  }, "adminGetAllListings"),
65962
+ // App Store Boost Management
65963
+ addBoostToApp: /* @__PURE__ */ __name(async (_learnCard, listingId, boostUri, templateAlias) => {
65964
+ await ensureUser();
65965
+ return client.appStore.addBoostToListing.mutate({ listingId, boostUri, templateAlias });
65966
+ }, "addBoostToApp"),
65967
+ removeBoostFromApp: /* @__PURE__ */ __name(async (_learnCard, listingId, templateAlias) => {
65968
+ await ensureUser();
65969
+ return client.appStore.removeBoostFromListing.mutate({ listingId, templateAlias });
65970
+ }, "removeBoostFromApp"),
65971
+ getAppBoosts: /* @__PURE__ */ __name(async (_learnCard, listingId) => {
65972
+ await ensureUser();
65973
+ return client.appStore.getBoostsForListing.query({ listingId });
65974
+ }, "getAppBoosts"),
65975
+ // Generic App Event
65976
+ sendAppEvent: /* @__PURE__ */ __name(async (_learnCard, listingId, event) => {
65977
+ await ensureUser();
65978
+ return client.appStore.appEvent.mutate({ listingId, event });
65979
+ }, "sendAppEvent"),
65034
65980
  resolveFromLCN: /* @__PURE__ */ __name(async (_learnCard, uri) => {
65035
65981
  const result = await client.storage.resolve.query({ uri });
65036
65982
  return UnsignedVCValidator.or(VCValidator).or(VPValidator).or(JWEValidator).or(ConsentFlowContractValidator).or(ConsentFlowTermsValidator).parseAsync(result);
65037
65983
  }, "resolveFromLCN"),
65038
- getLCNClient: /* @__PURE__ */ __name(() => client, "getLCNClient")
65984
+ getLCNClient: /* @__PURE__ */ __name(() => client, "getLCNClient"),
65985
+ // Activity
65986
+ getMyActivities: /* @__PURE__ */ __name(async (_learnCard, options = {}) => {
65987
+ await ensureUser();
65988
+ return client.activity.getMyActivities.query(options);
65989
+ }, "getMyActivities"),
65990
+ getActivityStats: /* @__PURE__ */ __name(async (_learnCard, options = {}) => {
65991
+ await ensureUser();
65992
+ return client.activity.getActivityStats.query(options);
65993
+ }, "getActivityStats"),
65994
+ getActivity: /* @__PURE__ */ __name(async (_learnCard, options) => {
65995
+ await ensureUser();
65996
+ return client.activity.getActivity.query(options);
65997
+ }, "getActivity"),
65998
+ getActivityChain: /* @__PURE__ */ __name(async (_learnCard, options) => {
65999
+ await ensureUser();
66000
+ return client.activity.getActivityChain.query(options);
66001
+ }, "getActivityChain")
65039
66002
  }
65040
66003
  };
65041
66004
  }
@@ -65136,4 +66099,12 @@ var getVerifyBoostPlugin = /* @__PURE__ */ __name(async (learnCard, trustedBoost
65136
66099
  @trpc/client/dist/links/retryLink.mjs:
65137
66100
  (* istanbul ignore file -- @preserve *)
65138
66101
  */
66102
+ /*! Bundled license information:
66103
+
66104
+ mustache/mustache.mjs:
66105
+ (*!
66106
+ * mustache.js - Logic-less {{mustache}} templates with JavaScript
66107
+ * http://github.com/janl/mustache.js
66108
+ *)
66109
+ */
65139
66110
  //# sourceMappingURL=lcn-plugin.cjs.development.js.map