@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.
@@ -712,9 +712,9 @@ function maybeFreeze(scope, value, deep = false) {
712
712
  __name(maybeFreeze, "maybeFreeze");
713
713
  __name2(maybeFreeze, "maybeFreeze");
714
714
  function createProxyProxy(base, parent) {
715
- const isArray = Array.isArray(base);
715
+ const isArray2 = Array.isArray(base);
716
716
  const state = {
717
- type_: isArray ? 1 : 0,
717
+ type_: isArray2 ? 1 : 0,
718
718
  // Track which produce call this is associated with.
719
719
  scope_: parent ? parent.scope_ : getCurrentScope(),
720
720
  // True for both shallow and deep changes.
@@ -738,7 +738,7 @@ function createProxyProxy(base, parent) {
738
738
  };
739
739
  let target = state;
740
740
  let traps = objectTraps;
741
- if (isArray) {
741
+ if (isArray2) {
742
742
  target = [state];
743
743
  traps = arrayTraps;
744
744
  }
@@ -14490,6 +14490,10 @@ var require_types_cjs_development = __commonJS22({
14490
14490
  AddressValidator: /* @__PURE__ */ __name22(() => AddressValidator2, "AddressValidator"),
14491
14491
  AlignmentTargetTypeValidator: /* @__PURE__ */ __name22(() => AlignmentTargetTypeValidator2, "AlignmentTargetTypeValidator"),
14492
14492
  AlignmentValidator: /* @__PURE__ */ __name22(() => AlignmentValidator2, "AlignmentValidator"),
14493
+ AppBoostValidator: /* @__PURE__ */ __name22(() => AppBoostValidator2, "AppBoostValidator"),
14494
+ AppEventInputValidator: /* @__PURE__ */ __name22(() => AppEventInputValidator2, "AppEventInputValidator"),
14495
+ AppEventResponseValidator: /* @__PURE__ */ __name22(() => AppEventResponseValidator2, "AppEventResponseValidator"),
14496
+ AppEventValidator: /* @__PURE__ */ __name22(() => AppEventValidator2, "AppEventValidator"),
14493
14497
  AppListingStatusValidator: /* @__PURE__ */ __name22(() => AppListingStatusValidator2, "AppListingStatusValidator"),
14494
14498
  AppStoreListingCreateValidator: /* @__PURE__ */ __name22(() => AppStoreListingCreateValidator2, "AppStoreListingCreateValidator"),
14495
14499
  AppStoreListingUpdateValidator: /* @__PURE__ */ __name22(() => AppStoreListingUpdateValidator2, "AppStoreListingUpdateValidator"),
@@ -14538,6 +14542,12 @@ var require_types_cjs_development = __commonJS22({
14538
14542
  CreateManagedFrameworkInputValidator: /* @__PURE__ */ __name22(() => CreateManagedFrameworkInputValidator2, "CreateManagedFrameworkInputValidator"),
14539
14543
  CreateSkillInputValidator: /* @__PURE__ */ __name22(() => CreateSkillInputValidator2, "CreateSkillInputValidator"),
14540
14544
  CreateSkillsBatchInputValidator: /* @__PURE__ */ __name22(() => CreateSkillsBatchInputValidator2, "CreateSkillsBatchInputValidator"),
14545
+ CredentialActivityEventTypeValidator: /* @__PURE__ */ __name22(() => CredentialActivityEventTypeValidator2, "CredentialActivityEventTypeValidator"),
14546
+ CredentialActivityRecipientTypeValidator: /* @__PURE__ */ __name22(() => CredentialActivityRecipientTypeValidator2, "CredentialActivityRecipientTypeValidator"),
14547
+ CredentialActivitySourceTypeValidator: /* @__PURE__ */ __name22(() => CredentialActivitySourceTypeValidator2, "CredentialActivitySourceTypeValidator"),
14548
+ CredentialActivityStatsValidator: /* @__PURE__ */ __name22(() => CredentialActivityStatsValidator2, "CredentialActivityStatsValidator"),
14549
+ CredentialActivityValidator: /* @__PURE__ */ __name22(() => CredentialActivityValidator2, "CredentialActivityValidator"),
14550
+ CredentialActivityWithDetailsValidator: /* @__PURE__ */ __name22(() => CredentialActivityWithDetailsValidator2, "CredentialActivityWithDetailsValidator"),
14541
14551
  CredentialInfoValidator: /* @__PURE__ */ __name22(() => CredentialInfoValidator2, "CredentialInfoValidator"),
14542
14552
  CredentialRecordValidator: /* @__PURE__ */ __name22(() => CredentialRecordValidator2, "CredentialRecordValidator"),
14543
14553
  CredentialSchemaValidator: /* @__PURE__ */ __name22(() => CredentialSchemaValidator2, "CredentialSchemaValidator"),
@@ -14584,6 +14594,7 @@ var require_types_cjs_development = __commonJS22({
14584
14594
  LCNInboxStatusEnumValidator: /* @__PURE__ */ __name22(() => LCNInboxStatusEnumValidator2, "LCNInboxStatusEnumValidator"),
14585
14595
  LCNIntegrationCreateValidator: /* @__PURE__ */ __name22(() => LCNIntegrationCreateValidator2, "LCNIntegrationCreateValidator"),
14586
14596
  LCNIntegrationQueryValidator: /* @__PURE__ */ __name22(() => LCNIntegrationQueryValidator2, "LCNIntegrationQueryValidator"),
14597
+ LCNIntegrationStatusEnum: /* @__PURE__ */ __name22(() => LCNIntegrationStatusEnum2, "LCNIntegrationStatusEnum"),
14587
14598
  LCNIntegrationUpdateValidator: /* @__PURE__ */ __name22(() => LCNIntegrationUpdateValidator2, "LCNIntegrationUpdateValidator"),
14588
14599
  LCNIntegrationValidator: /* @__PURE__ */ __name22(() => LCNIntegrationValidator2, "LCNIntegrationValidator"),
14589
14600
  LCNNotificationDataValidator: /* @__PURE__ */ __name22(() => LCNNotificationDataValidator2, "LCNNotificationDataValidator"),
@@ -14612,6 +14623,7 @@ var require_types_cjs_development = __commonJS22({
14612
14623
  PaginatedConsentFlowTermsValidator: /* @__PURE__ */ __name22(() => PaginatedConsentFlowTermsValidator2, "PaginatedConsentFlowTermsValidator"),
14613
14624
  PaginatedConsentFlowTransactionsValidator: /* @__PURE__ */ __name22(() => PaginatedConsentFlowTransactionsValidator2, "PaginatedConsentFlowTransactionsValidator"),
14614
14625
  PaginatedContractCredentialsValidator: /* @__PURE__ */ __name22(() => PaginatedContractCredentialsValidator2, "PaginatedContractCredentialsValidator"),
14626
+ PaginatedCredentialActivitiesValidator: /* @__PURE__ */ __name22(() => PaginatedCredentialActivitiesValidator2, "PaginatedCredentialActivitiesValidator"),
14615
14627
  PaginatedEncryptedCredentialRecordsValidator: /* @__PURE__ */ __name22(() => PaginatedEncryptedCredentialRecordsValidator2, "PaginatedEncryptedCredentialRecordsValidator"),
14616
14628
  PaginatedEncryptedRecordsValidator: /* @__PURE__ */ __name22(() => PaginatedEncryptedRecordsValidator2, "PaginatedEncryptedRecordsValidator"),
14617
14629
  PaginatedInboxCredentialsValidator: /* @__PURE__ */ __name22(() => PaginatedInboxCredentialsValidator2, "PaginatedInboxCredentialsValidator"),
@@ -14639,7 +14651,11 @@ var require_types_cjs_development = __commonJS22({
14639
14651
  RubricCriterionValidator: /* @__PURE__ */ __name22(() => RubricCriterionValidator2, "RubricCriterionValidator"),
14640
14652
  SendBoostInputValidator: /* @__PURE__ */ __name22(() => SendBoostInputValidator2, "SendBoostInputValidator"),
14641
14653
  SendBoostResponseValidator: /* @__PURE__ */ __name22(() => SendBoostResponseValidator2, "SendBoostResponseValidator"),
14654
+ SendBrandingOptionsValidator: /* @__PURE__ */ __name22(() => SendBrandingOptionsValidator2, "SendBrandingOptionsValidator"),
14655
+ SendCredentialEventValidator: /* @__PURE__ */ __name22(() => SendCredentialEventValidator2, "SendCredentialEventValidator"),
14656
+ SendInboxResponseValidator: /* @__PURE__ */ __name22(() => SendInboxResponseValidator2, "SendInboxResponseValidator"),
14642
14657
  SendInputValidator: /* @__PURE__ */ __name22(() => SendInputValidator2, "SendInputValidator"),
14658
+ SendOptionsValidator: /* @__PURE__ */ __name22(() => SendOptionsValidator2, "SendOptionsValidator"),
14643
14659
  SendResponseValidator: /* @__PURE__ */ __name22(() => SendResponseValidator2, "SendResponseValidator"),
14644
14660
  SentCredentialInfoValidator: /* @__PURE__ */ __name22(() => SentCredentialInfoValidator2, "SentCredentialInfoValidator"),
14645
14661
  ServiceValidator: /* @__PURE__ */ __name22(() => ServiceValidator2, "ServiceValidator"),
@@ -29416,7 +29432,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29416
29432
  var PaginatedClaimHooksValidator2 = PaginationResponseValidator2.extend({
29417
29433
  records: FullClaimHookValidator2.array()
29418
29434
  });
29419
- var LCNBoostStatus2 = external_exports22.enum(["DRAFT", "LIVE"]);
29435
+ var LCNBoostStatus2 = external_exports22.enum(["DRAFT", "PROVISIONAL", "LIVE"]);
29420
29436
  var BoostValidator2 = external_exports22.object({
29421
29437
  uri: external_exports22.string(),
29422
29438
  name: external_exports22.string().optional(),
@@ -29500,21 +29516,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29500
29516
  claimPermissions: BoostPermissionsValidator2.partial().optional(),
29501
29517
  skills: external_exports22.array(external_exports22.object({ frameworkId: external_exports22.string(), id: external_exports22.string() })).min(1).optional()
29502
29518
  });
29519
+ var SendBrandingOptionsValidator2 = external_exports22.object({
29520
+ issuerName: external_exports22.string().optional().describe("Name of the issuing organization"),
29521
+ issuerLogoUrl: external_exports22.string().url().optional().describe("Logo URL of the issuing organization"),
29522
+ credentialName: external_exports22.string().optional().describe("Display name for the credential"),
29523
+ recipientName: external_exports22.string().optional().describe("Name of the recipient for personalization")
29524
+ });
29525
+ var SendOptionsValidator2 = external_exports22.object({
29526
+ webhookUrl: external_exports22.string().url().optional().describe("Webhook URL to receive claim notifications"),
29527
+ suppressDelivery: external_exports22.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
29528
+ branding: SendBrandingOptionsValidator2.optional().describe("Branding for email/SMS delivery")
29529
+ });
29503
29530
  var SendBoostInputValidator2 = external_exports22.object({
29504
29531
  type: external_exports22.literal("boost"),
29505
- recipient: external_exports22.string(),
29532
+ recipient: external_exports22.string().describe("Profile ID, DID, email, or phone number (auto-detected)"),
29506
29533
  contractUri: external_exports22.string().optional(),
29507
29534
  templateUri: external_exports22.string().optional(),
29508
29535
  template: SendBoostTemplateValidator2.optional(),
29509
- signedCredential: VCValidator2.optional()
29536
+ signedCredential: VCValidator2.optional(),
29537
+ options: SendOptionsValidator2.optional().describe(
29538
+ "Options for email/phone recipients (Universal Inbox)"
29539
+ ),
29540
+ templateData: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional(),
29541
+ integrationId: external_exports22.string().optional().describe("Integration ID for activity tracking")
29510
29542
  }).refine((data) => data.templateUri || data.template, {
29511
29543
  message: "Either templateUri or template creation data must be provided.",
29512
29544
  path: ["templateUri"]
29513
29545
  });
29546
+ var SendInboxResponseValidator2 = external_exports22.object({
29547
+ issuanceId: external_exports22.string(),
29548
+ status: external_exports22.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
29549
+ claimUrl: external_exports22.string().url().optional().describe("Present when suppressDelivery=true")
29550
+ });
29514
29551
  var SendBoostResponseValidator2 = external_exports22.object({
29515
29552
  type: external_exports22.literal("boost"),
29516
29553
  credentialUri: external_exports22.string(),
29517
- uri: external_exports22.string()
29554
+ uri: external_exports22.string(),
29555
+ activityId: external_exports22.string().describe("Links to the activity lifecycle for this issuance"),
29556
+ inbox: SendInboxResponseValidator2.optional().describe(
29557
+ "Present when sent via email/phone (Universal Inbox)"
29558
+ )
29518
29559
  });
29519
29560
  var SendInputValidator2 = external_exports22.discriminatedUnion("type", [SendBoostInputValidator2]);
29520
29561
  var SendResponseValidator2 = external_exports22.discriminatedUnion("type", [SendBoostResponseValidator2]);
@@ -29866,6 +29907,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29866
29907
  createdAt: external_exports22.string(),
29867
29908
  issuerDid: external_exports22.string(),
29868
29909
  webhookUrl: external_exports22.string().optional(),
29910
+ boostUri: external_exports22.string().optional(),
29911
+ activityId: external_exports22.string().optional(),
29869
29912
  signingAuthority: external_exports22.object({
29870
29913
  endpoint: external_exports22.string().optional(),
29871
29914
  name: external_exports22.string().optional()
@@ -29881,7 +29924,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29881
29924
  id: external_exports22.string(),
29882
29925
  isSigned: external_exports22.boolean(),
29883
29926
  isAccepted: external_exports22.boolean().optional(),
29884
- issuerDid: external_exports22.string()
29927
+ issuerDid: external_exports22.string(),
29928
+ boostUri: external_exports22.string()
29885
29929
  }).partial();
29886
29930
  var IssueInboxSigningAuthorityValidator2 = external_exports22.object({
29887
29931
  endpoint: external_exports22.string().url(),
@@ -29891,9 +29935,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29891
29935
  // === CORE DATA (Required) ===
29892
29936
  // WHAT is being sent and WHO is it for?
29893
29937
  recipient: ContactMethodQueryValidator2.describe("The recipient of the credential"),
29894
- credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).describe(
29938
+ // Either credential OR templateUri must be provided
29939
+ credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).optional().describe(
29895
29940
  "The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration."
29896
29941
  ),
29942
+ templateUri: external_exports22.string().optional().describe(
29943
+ "URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field."
29944
+ ),
29897
29945
  // === OPTIONAL FEATURES ===
29898
29946
  // Add major, distinct features at the top level.
29899
29947
  //consentRequest: ConsentRequestValidator.optional(),
@@ -29905,6 +29953,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29905
29953
  ),
29906
29954
  webhookUrl: external_exports22.string().url().optional().describe("The webhook URL to receive credential issuance events."),
29907
29955
  expiresInDays: external_exports22.number().min(1).max(365).optional().describe("The number of days the credential will be valid for."),
29956
+ templateData: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional().describe(
29957
+ "Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided."
29958
+ ),
29908
29959
  // --- For User-Facing Delivery (Email/SMS) ---
29909
29960
  delivery: external_exports22.object({
29910
29961
  suppress: external_exports22.boolean().optional().default(false).describe(
@@ -29919,7 +29970,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29919
29970
  name: external_exports22.string().optional().describe(
29920
29971
  'The name of the organization (e.g., "State University").'
29921
29972
  ),
29922
- logoUrl: external_exports22.string().url().optional().describe("The URL of the organization's logo.")
29973
+ logoUrl: external_exports22.string().url().optional().describe(
29974
+ "The URL of the organization's logo."
29975
+ )
29923
29976
  }).optional(),
29924
29977
  credential: external_exports22.object({
29925
29978
  name: external_exports22.string().optional().describe(
@@ -29946,6 +29999,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29946
29999
  }).optional().describe(
29947
30000
  "Configuration for the credential issuance. If not provided, the default configuration will be used."
29948
30001
  )
30002
+ }).refine((data) => data.credential || data.templateUri, {
30003
+ message: "Either credential or templateUri must be provided.",
30004
+ path: ["credential"]
29949
30005
  });
29950
30006
  var IssueInboxCredentialResponseValidator2 = external_exports22.object({
29951
30007
  issuanceId: external_exports22.string(),
@@ -29973,28 +30029,43 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
29973
30029
  { message: "Must be a valid http(s) origin" }
29974
30030
  )
29975
30031
  ]);
30032
+ var LCNIntegrationStatusEnum2 = external_exports22.enum(["setup", "active", "paused"]);
29976
30033
  var LCNIntegrationValidator2 = external_exports22.object({
29977
30034
  id: external_exports22.string(),
29978
30035
  name: external_exports22.string(),
29979
30036
  description: external_exports22.string().optional(),
29980
30037
  publishableKey: external_exports22.string(),
29981
- whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([])
30038
+ whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([]),
30039
+ // Setup/onboarding status
30040
+ status: LCNIntegrationStatusEnum2.default("setup"),
30041
+ guideType: external_exports22.string().optional(),
30042
+ guideState: external_exports22.record(external_exports22.string(), external_exports22.any()).optional(),
30043
+ // Timestamps
30044
+ createdAt: external_exports22.string().optional(),
30045
+ updatedAt: external_exports22.string().optional()
29982
30046
  });
29983
30047
  var LCNIntegrationCreateValidator2 = external_exports22.object({
29984
30048
  name: external_exports22.string(),
29985
30049
  description: external_exports22.string().optional(),
29986
- whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([])
30050
+ whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).default([]),
30051
+ guideType: external_exports22.string().optional()
29987
30052
  });
29988
30053
  var LCNIntegrationUpdateValidator2 = external_exports22.object({
29989
30054
  name: external_exports22.string().optional(),
29990
30055
  description: external_exports22.string().optional(),
29991
30056
  whitelistedDomains: external_exports22.array(LCNDomainOrOriginValidator2).optional(),
29992
- rotatePublishableKey: external_exports22.boolean().optional()
30057
+ rotatePublishableKey: external_exports22.boolean().optional(),
30058
+ // Setup/onboarding updates
30059
+ status: LCNIntegrationStatusEnum2.optional(),
30060
+ guideType: external_exports22.string().optional(),
30061
+ guideState: external_exports22.record(external_exports22.string(), external_exports22.any()).optional()
29993
30062
  });
29994
30063
  var LCNIntegrationQueryValidator2 = external_exports22.object({
29995
30064
  id: StringQuery2,
29996
30065
  name: StringQuery2,
29997
- description: StringQuery2
30066
+ description: StringQuery2,
30067
+ status: StringQuery2,
30068
+ guideType: StringQuery2
29998
30069
  }).partial();
29999
30070
  var PaginatedLCNIntegrationsValidator2 = PaginationResponseValidator2.extend({
30000
30071
  records: LCNIntegrationValidator2.array()
@@ -30209,6 +30280,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
30209
30280
  ]);
30210
30281
  var AppStoreListingValidator2 = external_exports22.object({
30211
30282
  listing_id: external_exports22.string(),
30283
+ slug: external_exports22.string().optional(),
30212
30284
  display_name: external_exports22.string(),
30213
30285
  tagline: external_exports22.string(),
30214
30286
  full_description: external_exports22.string(),
@@ -30246,6 +30318,77 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
30246
30318
  var PaginatedInstalledAppsValidator2 = PaginationResponseValidator2.extend({
30247
30319
  records: InstalledAppValidator2.array()
30248
30320
  });
30321
+ var AppBoostValidator2 = external_exports22.object({
30322
+ templateAlias: external_exports22.string().min(1).max(50).regex(/^[a-z0-9-]+$/),
30323
+ boostUri: external_exports22.string()
30324
+ });
30325
+ var SendCredentialEventValidator2 = external_exports22.object({
30326
+ type: external_exports22.literal("send-credential"),
30327
+ templateAlias: external_exports22.string(),
30328
+ templateData: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional()
30329
+ });
30330
+ var AppEventValidator2 = external_exports22.discriminatedUnion("type", [SendCredentialEventValidator2]);
30331
+ var AppEventInputValidator2 = external_exports22.object({
30332
+ listingId: external_exports22.string(),
30333
+ event: AppEventValidator2
30334
+ });
30335
+ var AppEventResponseValidator2 = external_exports22.record(external_exports22.string(), external_exports22.unknown());
30336
+ var CredentialActivityEventTypeValidator2 = external_exports22.enum([
30337
+ "CREATED",
30338
+ "DELIVERED",
30339
+ "CLAIMED",
30340
+ "EXPIRED",
30341
+ "FAILED"
30342
+ ]);
30343
+ var CredentialActivityRecipientTypeValidator2 = external_exports22.enum(["profile", "email", "phone"]);
30344
+ var CredentialActivitySourceTypeValidator2 = external_exports22.enum([
30345
+ "send",
30346
+ "sendBoost",
30347
+ "sendCredential",
30348
+ "contract",
30349
+ "claim",
30350
+ "inbox",
30351
+ "claimLink",
30352
+ "acceptCredential"
30353
+ ]);
30354
+ var CredentialActivityValidator2 = external_exports22.object({
30355
+ id: external_exports22.string(),
30356
+ activityId: external_exports22.string(),
30357
+ eventType: CredentialActivityEventTypeValidator2,
30358
+ timestamp: external_exports22.string(),
30359
+ actorProfileId: external_exports22.string(),
30360
+ recipientType: CredentialActivityRecipientTypeValidator2,
30361
+ recipientIdentifier: external_exports22.string(),
30362
+ boostUri: external_exports22.string().optional(),
30363
+ credentialUri: external_exports22.string().optional(),
30364
+ inboxCredentialId: external_exports22.string().optional(),
30365
+ integrationId: external_exports22.string().optional(),
30366
+ source: CredentialActivitySourceTypeValidator2,
30367
+ metadata: external_exports22.record(external_exports22.string(), external_exports22.unknown()).optional()
30368
+ });
30369
+ var CredentialActivityWithDetailsValidator2 = CredentialActivityValidator2.extend({
30370
+ boost: external_exports22.object({
30371
+ id: external_exports22.string(),
30372
+ name: external_exports22.string().optional(),
30373
+ category: external_exports22.string().optional()
30374
+ }).optional(),
30375
+ recipientProfile: external_exports22.object({
30376
+ profileId: external_exports22.string(),
30377
+ displayName: external_exports22.string().optional()
30378
+ }).optional()
30379
+ });
30380
+ var PaginatedCredentialActivitiesValidator2 = PaginationResponseValidator2.extend({
30381
+ records: CredentialActivityWithDetailsValidator2.array()
30382
+ });
30383
+ var CredentialActivityStatsValidator2 = external_exports22.object({
30384
+ total: external_exports22.number(),
30385
+ created: external_exports22.number(),
30386
+ delivered: external_exports22.number(),
30387
+ claimed: external_exports22.number(),
30388
+ expired: external_exports22.number(),
30389
+ failed: external_exports22.number(),
30390
+ claimRate: external_exports22.number()
30391
+ });
30249
30392
  }
30250
30393
  });
30251
30394
  var require_dist = __commonJS22({
@@ -30503,16 +30646,16 @@ function parserForArrayFormat(options) {
30503
30646
  case "comma":
30504
30647
  case "separator": {
30505
30648
  return (key, value, accumulator) => {
30506
- const isArray = typeof value === "string" && value.includes(options.arrayFormatSeparator);
30507
- const newValue = isArray ? value.split(options.arrayFormatSeparator).map((item) => decode3(item, options)) : value === null ? value : decode3(value, options);
30649
+ const isArray2 = typeof value === "string" && value.includes(options.arrayFormatSeparator);
30650
+ const newValue = isArray2 ? value.split(options.arrayFormatSeparator).map((item) => decode3(item, options)) : value === null ? value : decode3(value, options);
30508
30651
  accumulator[key] = newValue;
30509
30652
  };
30510
30653
  }
30511
30654
  case "bracket-separator": {
30512
30655
  return (key, value, accumulator) => {
30513
- const isArray = /(\[])$/.test(key);
30656
+ const isArray2 = /(\[])$/.test(key);
30514
30657
  key = key.replace(/\[]$/, "");
30515
- if (!isArray) {
30658
+ if (!isArray2) {
30516
30659
  accumulator[key] = value ? decode3(value, options) : value;
30517
30660
  return;
30518
30661
  }
@@ -46016,7 +46159,7 @@ var FullClaimHookValidator = external_exports2.object({ id: external_exports2.st
46016
46159
  var PaginatedClaimHooksValidator = PaginationResponseValidator.extend({
46017
46160
  records: FullClaimHookValidator.array()
46018
46161
  });
46019
- var LCNBoostStatus = external_exports2.enum(["DRAFT", "LIVE"]);
46162
+ var LCNBoostStatus = external_exports2.enum(["DRAFT", "PROVISIONAL", "LIVE"]);
46020
46163
  var BoostValidator = external_exports2.object({
46021
46164
  uri: external_exports2.string(),
46022
46165
  name: external_exports2.string().optional(),
@@ -46100,21 +46243,46 @@ var SendBoostTemplateValidator = BoostValidator.partial().omit({ uri: true, clai
46100
46243
  claimPermissions: BoostPermissionsValidator.partial().optional(),
46101
46244
  skills: external_exports2.array(external_exports2.object({ frameworkId: external_exports2.string(), id: external_exports2.string() })).min(1).optional()
46102
46245
  });
46246
+ var SendBrandingOptionsValidator = external_exports2.object({
46247
+ issuerName: external_exports2.string().optional().describe("Name of the issuing organization"),
46248
+ issuerLogoUrl: external_exports2.string().url().optional().describe("Logo URL of the issuing organization"),
46249
+ credentialName: external_exports2.string().optional().describe("Display name for the credential"),
46250
+ recipientName: external_exports2.string().optional().describe("Name of the recipient for personalization")
46251
+ });
46252
+ var SendOptionsValidator = external_exports2.object({
46253
+ webhookUrl: external_exports2.string().url().optional().describe("Webhook URL to receive claim notifications"),
46254
+ suppressDelivery: external_exports2.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
46255
+ branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery")
46256
+ });
46103
46257
  var SendBoostInputValidator = external_exports2.object({
46104
46258
  type: external_exports2.literal("boost"),
46105
- recipient: external_exports2.string(),
46259
+ recipient: external_exports2.string().describe("Profile ID, DID, email, or phone number (auto-detected)"),
46106
46260
  contractUri: external_exports2.string().optional(),
46107
46261
  templateUri: external_exports2.string().optional(),
46108
46262
  template: SendBoostTemplateValidator.optional(),
46109
- signedCredential: VCValidator.optional()
46263
+ signedCredential: VCValidator.optional(),
46264
+ options: SendOptionsValidator.optional().describe(
46265
+ "Options for email/phone recipients (Universal Inbox)"
46266
+ ),
46267
+ templateData: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional(),
46268
+ integrationId: external_exports2.string().optional().describe("Integration ID for activity tracking")
46110
46269
  }).refine((data) => data.templateUri || data.template, {
46111
46270
  message: "Either templateUri or template creation data must be provided.",
46112
46271
  path: ["templateUri"]
46113
46272
  });
46273
+ var SendInboxResponseValidator = external_exports2.object({
46274
+ issuanceId: external_exports2.string(),
46275
+ status: external_exports2.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
46276
+ claimUrl: external_exports2.string().url().optional().describe("Present when suppressDelivery=true")
46277
+ });
46114
46278
  var SendBoostResponseValidator = external_exports2.object({
46115
46279
  type: external_exports2.literal("boost"),
46116
46280
  credentialUri: external_exports2.string(),
46117
- uri: external_exports2.string()
46281
+ uri: external_exports2.string(),
46282
+ activityId: external_exports2.string().describe("Links to the activity lifecycle for this issuance"),
46283
+ inbox: SendInboxResponseValidator.optional().describe(
46284
+ "Present when sent via email/phone (Universal Inbox)"
46285
+ )
46118
46286
  });
46119
46287
  var SendInputValidator = external_exports2.discriminatedUnion("type", [SendBoostInputValidator]);
46120
46288
  var SendResponseValidator = external_exports2.discriminatedUnion("type", [SendBoostResponseValidator]);
@@ -46466,6 +46634,8 @@ var InboxCredentialValidator = external_exports2.object({
46466
46634
  createdAt: external_exports2.string(),
46467
46635
  issuerDid: external_exports2.string(),
46468
46636
  webhookUrl: external_exports2.string().optional(),
46637
+ boostUri: external_exports2.string().optional(),
46638
+ activityId: external_exports2.string().optional(),
46469
46639
  signingAuthority: external_exports2.object({
46470
46640
  endpoint: external_exports2.string().optional(),
46471
46641
  name: external_exports2.string().optional()
@@ -46481,7 +46651,8 @@ var InboxCredentialQueryValidator = external_exports2.object({
46481
46651
  id: external_exports2.string(),
46482
46652
  isSigned: external_exports2.boolean(),
46483
46653
  isAccepted: external_exports2.boolean().optional(),
46484
- issuerDid: external_exports2.string()
46654
+ issuerDid: external_exports2.string(),
46655
+ boostUri: external_exports2.string()
46485
46656
  }).partial();
46486
46657
  var IssueInboxSigningAuthorityValidator = external_exports2.object({
46487
46658
  endpoint: external_exports2.string().url(),
@@ -46491,9 +46662,13 @@ var IssueInboxCredentialValidator = external_exports2.object({
46491
46662
  // === CORE DATA (Required) ===
46492
46663
  // WHAT is being sent and WHO is it for?
46493
46664
  recipient: ContactMethodQueryValidator.describe("The recipient of the credential"),
46494
- credential: VCValidator.or(VPValidator).or(UnsignedVCValidator).describe(
46665
+ // Either credential OR templateUri must be provided
46666
+ credential: VCValidator.or(VPValidator).or(UnsignedVCValidator).optional().describe(
46495
46667
  "The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration."
46496
46668
  ),
46669
+ templateUri: external_exports2.string().optional().describe(
46670
+ "URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field."
46671
+ ),
46497
46672
  // === OPTIONAL FEATURES ===
46498
46673
  // Add major, distinct features at the top level.
46499
46674
  //consentRequest: ConsentRequestValidator.optional(),
@@ -46505,6 +46680,9 @@ var IssueInboxCredentialValidator = external_exports2.object({
46505
46680
  ),
46506
46681
  webhookUrl: external_exports2.string().url().optional().describe("The webhook URL to receive credential issuance events."),
46507
46682
  expiresInDays: external_exports2.number().min(1).max(365).optional().describe("The number of days the credential will be valid for."),
46683
+ templateData: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional().describe(
46684
+ "Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided."
46685
+ ),
46508
46686
  // --- For User-Facing Delivery (Email/SMS) ---
46509
46687
  delivery: external_exports2.object({
46510
46688
  suppress: external_exports2.boolean().optional().default(false).describe(
@@ -46519,7 +46697,9 @@ var IssueInboxCredentialValidator = external_exports2.object({
46519
46697
  name: external_exports2.string().optional().describe(
46520
46698
  'The name of the organization (e.g., "State University").'
46521
46699
  ),
46522
- logoUrl: external_exports2.string().url().optional().describe("The URL of the organization's logo.")
46700
+ logoUrl: external_exports2.string().url().optional().describe(
46701
+ "The URL of the organization's logo."
46702
+ )
46523
46703
  }).optional(),
46524
46704
  credential: external_exports2.object({
46525
46705
  name: external_exports2.string().optional().describe(
@@ -46546,6 +46726,9 @@ var IssueInboxCredentialValidator = external_exports2.object({
46546
46726
  }).optional().describe(
46547
46727
  "Configuration for the credential issuance. If not provided, the default configuration will be used."
46548
46728
  )
46729
+ }).refine((data) => data.credential || data.templateUri, {
46730
+ message: "Either credential or templateUri must be provided.",
46731
+ path: ["credential"]
46549
46732
  });
46550
46733
  var IssueInboxCredentialResponseValidator = external_exports2.object({
46551
46734
  issuanceId: external_exports2.string(),
@@ -46573,28 +46756,43 @@ var LCNDomainOrOriginValidator = external_exports2.union([
46573
46756
  { message: "Must be a valid http(s) origin" }
46574
46757
  )
46575
46758
  ]);
46759
+ var LCNIntegrationStatusEnum = external_exports2.enum(["setup", "active", "paused"]);
46576
46760
  var LCNIntegrationValidator = external_exports2.object({
46577
46761
  id: external_exports2.string(),
46578
46762
  name: external_exports2.string(),
46579
46763
  description: external_exports2.string().optional(),
46580
46764
  publishableKey: external_exports2.string(),
46581
- whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([])
46765
+ whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([]),
46766
+ // Setup/onboarding status
46767
+ status: LCNIntegrationStatusEnum.default("setup"),
46768
+ guideType: external_exports2.string().optional(),
46769
+ guideState: external_exports2.record(external_exports2.string(), external_exports2.any()).optional(),
46770
+ // Timestamps
46771
+ createdAt: external_exports2.string().optional(),
46772
+ updatedAt: external_exports2.string().optional()
46582
46773
  });
46583
46774
  var LCNIntegrationCreateValidator = external_exports2.object({
46584
46775
  name: external_exports2.string(),
46585
46776
  description: external_exports2.string().optional(),
46586
- whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([])
46777
+ whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).default([]),
46778
+ guideType: external_exports2.string().optional()
46587
46779
  });
46588
46780
  var LCNIntegrationUpdateValidator = external_exports2.object({
46589
46781
  name: external_exports2.string().optional(),
46590
46782
  description: external_exports2.string().optional(),
46591
46783
  whitelistedDomains: external_exports2.array(LCNDomainOrOriginValidator).optional(),
46592
- rotatePublishableKey: external_exports2.boolean().optional()
46784
+ rotatePublishableKey: external_exports2.boolean().optional(),
46785
+ // Setup/onboarding updates
46786
+ status: LCNIntegrationStatusEnum.optional(),
46787
+ guideType: external_exports2.string().optional(),
46788
+ guideState: external_exports2.record(external_exports2.string(), external_exports2.any()).optional()
46593
46789
  });
46594
46790
  var LCNIntegrationQueryValidator = external_exports2.object({
46595
46791
  id: StringQuery,
46596
46792
  name: StringQuery,
46597
- description: StringQuery
46793
+ description: StringQuery,
46794
+ status: StringQuery,
46795
+ guideType: StringQuery
46598
46796
  }).partial();
46599
46797
  var PaginatedLCNIntegrationsValidator = PaginationResponseValidator.extend({
46600
46798
  records: LCNIntegrationValidator.array()
@@ -46809,6 +47007,7 @@ var PromotionLevelValidator = external_exports2.enum([
46809
47007
  ]);
46810
47008
  var AppStoreListingValidator = external_exports2.object({
46811
47009
  listing_id: external_exports2.string(),
47010
+ slug: external_exports2.string().optional(),
46812
47011
  display_name: external_exports2.string(),
46813
47012
  tagline: external_exports2.string(),
46814
47013
  full_description: external_exports2.string(),
@@ -46846,6 +47045,77 @@ var PaginatedAppStoreListingsValidator = PaginationResponseValidator.extend({
46846
47045
  var PaginatedInstalledAppsValidator = PaginationResponseValidator.extend({
46847
47046
  records: InstalledAppValidator.array()
46848
47047
  });
47048
+ var AppBoostValidator = external_exports2.object({
47049
+ templateAlias: external_exports2.string().min(1).max(50).regex(/^[a-z0-9-]+$/),
47050
+ boostUri: external_exports2.string()
47051
+ });
47052
+ var SendCredentialEventValidator = external_exports2.object({
47053
+ type: external_exports2.literal("send-credential"),
47054
+ templateAlias: external_exports2.string(),
47055
+ templateData: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional()
47056
+ });
47057
+ var AppEventValidator = external_exports2.discriminatedUnion("type", [SendCredentialEventValidator]);
47058
+ var AppEventInputValidator = external_exports2.object({
47059
+ listingId: external_exports2.string(),
47060
+ event: AppEventValidator
47061
+ });
47062
+ var AppEventResponseValidator = external_exports2.record(external_exports2.string(), external_exports2.unknown());
47063
+ var CredentialActivityEventTypeValidator = external_exports2.enum([
47064
+ "CREATED",
47065
+ "DELIVERED",
47066
+ "CLAIMED",
47067
+ "EXPIRED",
47068
+ "FAILED"
47069
+ ]);
47070
+ var CredentialActivityRecipientTypeValidator = external_exports2.enum(["profile", "email", "phone"]);
47071
+ var CredentialActivitySourceTypeValidator = external_exports2.enum([
47072
+ "send",
47073
+ "sendBoost",
47074
+ "sendCredential",
47075
+ "contract",
47076
+ "claim",
47077
+ "inbox",
47078
+ "claimLink",
47079
+ "acceptCredential"
47080
+ ]);
47081
+ var CredentialActivityValidator = external_exports2.object({
47082
+ id: external_exports2.string(),
47083
+ activityId: external_exports2.string(),
47084
+ eventType: CredentialActivityEventTypeValidator,
47085
+ timestamp: external_exports2.string(),
47086
+ actorProfileId: external_exports2.string(),
47087
+ recipientType: CredentialActivityRecipientTypeValidator,
47088
+ recipientIdentifier: external_exports2.string(),
47089
+ boostUri: external_exports2.string().optional(),
47090
+ credentialUri: external_exports2.string().optional(),
47091
+ inboxCredentialId: external_exports2.string().optional(),
47092
+ integrationId: external_exports2.string().optional(),
47093
+ source: CredentialActivitySourceTypeValidator,
47094
+ metadata: external_exports2.record(external_exports2.string(), external_exports2.unknown()).optional()
47095
+ });
47096
+ var CredentialActivityWithDetailsValidator = CredentialActivityValidator.extend({
47097
+ boost: external_exports2.object({
47098
+ id: external_exports2.string(),
47099
+ name: external_exports2.string().optional(),
47100
+ category: external_exports2.string().optional()
47101
+ }).optional(),
47102
+ recipientProfile: external_exports2.object({
47103
+ profileId: external_exports2.string(),
47104
+ displayName: external_exports2.string().optional()
47105
+ }).optional()
47106
+ });
47107
+ var PaginatedCredentialActivitiesValidator = PaginationResponseValidator.extend({
47108
+ records: CredentialActivityWithDetailsValidator.array()
47109
+ });
47110
+ var CredentialActivityStatsValidator = external_exports2.object({
47111
+ total: external_exports2.number(),
47112
+ created: external_exports2.number(),
47113
+ delivered: external_exports2.number(),
47114
+ claimed: external_exports2.number(),
47115
+ expired: external_exports2.number(),
47116
+ failed: external_exports2.number(),
47117
+ claimRate: external_exports2.number()
47118
+ });
46849
47119
 
46850
47120
  // ../../learn-card-helpers/dist/helpers.esm.js
46851
47121
  var import_decode_uri_component2 = __toESM(require_decode_uri_component2());
@@ -47243,9 +47513,9 @@ function maybeFreeze2(scope, value, deep = false) {
47243
47513
  }
47244
47514
  __name(maybeFreeze2, "maybeFreeze");
47245
47515
  function createProxyProxy2(base, parent) {
47246
- const isArray = Array.isArray(base);
47516
+ const isArray2 = Array.isArray(base);
47247
47517
  const state = {
47248
- type_: isArray ? 1 : 0,
47518
+ type_: isArray2 ? 1 : 0,
47249
47519
  // Track which produce call this is associated with.
47250
47520
  scope_: parent ? parent.scope_ : getCurrentScope2(),
47251
47521
  // True for both shallow and deep changes.
@@ -47269,7 +47539,7 @@ function createProxyProxy2(base, parent) {
47269
47539
  };
47270
47540
  let target = state;
47271
47541
  let traps = objectTraps2;
47272
- if (isArray) {
47542
+ if (isArray2) {
47273
47543
  target = [state];
47274
47544
  traps = arrayTraps2;
47275
47545
  }
@@ -47679,6 +47949,10 @@ var require_types_cjs_development2 = __commonJS4({
47679
47949
  AddressValidator: /* @__PURE__ */ __name4(() => AddressValidator2, "AddressValidator"),
47680
47950
  AlignmentTargetTypeValidator: /* @__PURE__ */ __name4(() => AlignmentTargetTypeValidator2, "AlignmentTargetTypeValidator"),
47681
47951
  AlignmentValidator: /* @__PURE__ */ __name4(() => AlignmentValidator2, "AlignmentValidator"),
47952
+ AppBoostValidator: /* @__PURE__ */ __name4(() => AppBoostValidator2, "AppBoostValidator"),
47953
+ AppEventInputValidator: /* @__PURE__ */ __name4(() => AppEventInputValidator2, "AppEventInputValidator"),
47954
+ AppEventResponseValidator: /* @__PURE__ */ __name4(() => AppEventResponseValidator2, "AppEventResponseValidator"),
47955
+ AppEventValidator: /* @__PURE__ */ __name4(() => AppEventValidator2, "AppEventValidator"),
47682
47956
  AppListingStatusValidator: /* @__PURE__ */ __name4(() => AppListingStatusValidator2, "AppListingStatusValidator"),
47683
47957
  AppStoreListingCreateValidator: /* @__PURE__ */ __name4(() => AppStoreListingCreateValidator2, "AppStoreListingCreateValidator"),
47684
47958
  AppStoreListingUpdateValidator: /* @__PURE__ */ __name4(() => AppStoreListingUpdateValidator2, "AppStoreListingUpdateValidator"),
@@ -47727,6 +48001,12 @@ var require_types_cjs_development2 = __commonJS4({
47727
48001
  CreateManagedFrameworkInputValidator: /* @__PURE__ */ __name4(() => CreateManagedFrameworkInputValidator2, "CreateManagedFrameworkInputValidator"),
47728
48002
  CreateSkillInputValidator: /* @__PURE__ */ __name4(() => CreateSkillInputValidator2, "CreateSkillInputValidator"),
47729
48003
  CreateSkillsBatchInputValidator: /* @__PURE__ */ __name4(() => CreateSkillsBatchInputValidator2, "CreateSkillsBatchInputValidator"),
48004
+ CredentialActivityEventTypeValidator: /* @__PURE__ */ __name4(() => CredentialActivityEventTypeValidator2, "CredentialActivityEventTypeValidator"),
48005
+ CredentialActivityRecipientTypeValidator: /* @__PURE__ */ __name4(() => CredentialActivityRecipientTypeValidator2, "CredentialActivityRecipientTypeValidator"),
48006
+ CredentialActivitySourceTypeValidator: /* @__PURE__ */ __name4(() => CredentialActivitySourceTypeValidator2, "CredentialActivitySourceTypeValidator"),
48007
+ CredentialActivityStatsValidator: /* @__PURE__ */ __name4(() => CredentialActivityStatsValidator2, "CredentialActivityStatsValidator"),
48008
+ CredentialActivityValidator: /* @__PURE__ */ __name4(() => CredentialActivityValidator2, "CredentialActivityValidator"),
48009
+ CredentialActivityWithDetailsValidator: /* @__PURE__ */ __name4(() => CredentialActivityWithDetailsValidator2, "CredentialActivityWithDetailsValidator"),
47730
48010
  CredentialInfoValidator: /* @__PURE__ */ __name4(() => CredentialInfoValidator2, "CredentialInfoValidator"),
47731
48011
  CredentialRecordValidator: /* @__PURE__ */ __name4(() => CredentialRecordValidator2, "CredentialRecordValidator"),
47732
48012
  CredentialSchemaValidator: /* @__PURE__ */ __name4(() => CredentialSchemaValidator2, "CredentialSchemaValidator"),
@@ -47773,6 +48053,7 @@ var require_types_cjs_development2 = __commonJS4({
47773
48053
  LCNInboxStatusEnumValidator: /* @__PURE__ */ __name4(() => LCNInboxStatusEnumValidator2, "LCNInboxStatusEnumValidator"),
47774
48054
  LCNIntegrationCreateValidator: /* @__PURE__ */ __name4(() => LCNIntegrationCreateValidator2, "LCNIntegrationCreateValidator"),
47775
48055
  LCNIntegrationQueryValidator: /* @__PURE__ */ __name4(() => LCNIntegrationQueryValidator2, "LCNIntegrationQueryValidator"),
48056
+ LCNIntegrationStatusEnum: /* @__PURE__ */ __name4(() => LCNIntegrationStatusEnum2, "LCNIntegrationStatusEnum"),
47776
48057
  LCNIntegrationUpdateValidator: /* @__PURE__ */ __name4(() => LCNIntegrationUpdateValidator2, "LCNIntegrationUpdateValidator"),
47777
48058
  LCNIntegrationValidator: /* @__PURE__ */ __name4(() => LCNIntegrationValidator2, "LCNIntegrationValidator"),
47778
48059
  LCNNotificationDataValidator: /* @__PURE__ */ __name4(() => LCNNotificationDataValidator2, "LCNNotificationDataValidator"),
@@ -47801,6 +48082,7 @@ var require_types_cjs_development2 = __commonJS4({
47801
48082
  PaginatedConsentFlowTermsValidator: /* @__PURE__ */ __name4(() => PaginatedConsentFlowTermsValidator2, "PaginatedConsentFlowTermsValidator"),
47802
48083
  PaginatedConsentFlowTransactionsValidator: /* @__PURE__ */ __name4(() => PaginatedConsentFlowTransactionsValidator2, "PaginatedConsentFlowTransactionsValidator"),
47803
48084
  PaginatedContractCredentialsValidator: /* @__PURE__ */ __name4(() => PaginatedContractCredentialsValidator2, "PaginatedContractCredentialsValidator"),
48085
+ PaginatedCredentialActivitiesValidator: /* @__PURE__ */ __name4(() => PaginatedCredentialActivitiesValidator2, "PaginatedCredentialActivitiesValidator"),
47804
48086
  PaginatedEncryptedCredentialRecordsValidator: /* @__PURE__ */ __name4(() => PaginatedEncryptedCredentialRecordsValidator2, "PaginatedEncryptedCredentialRecordsValidator"),
47805
48087
  PaginatedEncryptedRecordsValidator: /* @__PURE__ */ __name4(() => PaginatedEncryptedRecordsValidator2, "PaginatedEncryptedRecordsValidator"),
47806
48088
  PaginatedInboxCredentialsValidator: /* @__PURE__ */ __name4(() => PaginatedInboxCredentialsValidator2, "PaginatedInboxCredentialsValidator"),
@@ -47828,7 +48110,11 @@ var require_types_cjs_development2 = __commonJS4({
47828
48110
  RubricCriterionValidator: /* @__PURE__ */ __name4(() => RubricCriterionValidator2, "RubricCriterionValidator"),
47829
48111
  SendBoostInputValidator: /* @__PURE__ */ __name4(() => SendBoostInputValidator2, "SendBoostInputValidator"),
47830
48112
  SendBoostResponseValidator: /* @__PURE__ */ __name4(() => SendBoostResponseValidator2, "SendBoostResponseValidator"),
48113
+ SendBrandingOptionsValidator: /* @__PURE__ */ __name4(() => SendBrandingOptionsValidator2, "SendBrandingOptionsValidator"),
48114
+ SendCredentialEventValidator: /* @__PURE__ */ __name4(() => SendCredentialEventValidator2, "SendCredentialEventValidator"),
48115
+ SendInboxResponseValidator: /* @__PURE__ */ __name4(() => SendInboxResponseValidator2, "SendInboxResponseValidator"),
47831
48116
  SendInputValidator: /* @__PURE__ */ __name4(() => SendInputValidator2, "SendInputValidator"),
48117
+ SendOptionsValidator: /* @__PURE__ */ __name4(() => SendOptionsValidator2, "SendOptionsValidator"),
47832
48118
  SendResponseValidator: /* @__PURE__ */ __name4(() => SendResponseValidator2, "SendResponseValidator"),
47833
48119
  SentCredentialInfoValidator: /* @__PURE__ */ __name4(() => SentCredentialInfoValidator2, "SentCredentialInfoValidator"),
47834
48120
  ServiceValidator: /* @__PURE__ */ __name4(() => ServiceValidator2, "ServiceValidator"),
@@ -62203,7 +62489,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62203
62489
  var PaginatedClaimHooksValidator2 = PaginationResponseValidator2.extend({
62204
62490
  records: FullClaimHookValidator2.array()
62205
62491
  });
62206
- var LCNBoostStatus2 = external_exports3.enum(["DRAFT", "LIVE"]);
62492
+ var LCNBoostStatus2 = external_exports3.enum(["DRAFT", "PROVISIONAL", "LIVE"]);
62207
62493
  var BoostValidator2 = external_exports3.object({
62208
62494
  uri: external_exports3.string(),
62209
62495
  name: external_exports3.string().optional(),
@@ -62287,21 +62573,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62287
62573
  claimPermissions: BoostPermissionsValidator2.partial().optional(),
62288
62574
  skills: external_exports3.array(external_exports3.object({ frameworkId: external_exports3.string(), id: external_exports3.string() })).min(1).optional()
62289
62575
  });
62576
+ var SendBrandingOptionsValidator2 = external_exports3.object({
62577
+ issuerName: external_exports3.string().optional().describe("Name of the issuing organization"),
62578
+ issuerLogoUrl: external_exports3.string().url().optional().describe("Logo URL of the issuing organization"),
62579
+ credentialName: external_exports3.string().optional().describe("Display name for the credential"),
62580
+ recipientName: external_exports3.string().optional().describe("Name of the recipient for personalization")
62581
+ });
62582
+ var SendOptionsValidator2 = external_exports3.object({
62583
+ webhookUrl: external_exports3.string().url().optional().describe("Webhook URL to receive claim notifications"),
62584
+ suppressDelivery: external_exports3.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
62585
+ branding: SendBrandingOptionsValidator2.optional().describe("Branding for email/SMS delivery")
62586
+ });
62290
62587
  var SendBoostInputValidator2 = external_exports3.object({
62291
62588
  type: external_exports3.literal("boost"),
62292
- recipient: external_exports3.string(),
62589
+ recipient: external_exports3.string().describe("Profile ID, DID, email, or phone number (auto-detected)"),
62293
62590
  contractUri: external_exports3.string().optional(),
62294
62591
  templateUri: external_exports3.string().optional(),
62295
62592
  template: SendBoostTemplateValidator2.optional(),
62296
- signedCredential: VCValidator2.optional()
62593
+ signedCredential: VCValidator2.optional(),
62594
+ options: SendOptionsValidator2.optional().describe(
62595
+ "Options for email/phone recipients (Universal Inbox)"
62596
+ ),
62597
+ templateData: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional(),
62598
+ integrationId: external_exports3.string().optional().describe("Integration ID for activity tracking")
62297
62599
  }).refine((data) => data.templateUri || data.template, {
62298
62600
  message: "Either templateUri or template creation data must be provided.",
62299
62601
  path: ["templateUri"]
62300
62602
  });
62603
+ var SendInboxResponseValidator2 = external_exports3.object({
62604
+ issuanceId: external_exports3.string(),
62605
+ status: external_exports3.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
62606
+ claimUrl: external_exports3.string().url().optional().describe("Present when suppressDelivery=true")
62607
+ });
62301
62608
  var SendBoostResponseValidator2 = external_exports3.object({
62302
62609
  type: external_exports3.literal("boost"),
62303
62610
  credentialUri: external_exports3.string(),
62304
- uri: external_exports3.string()
62611
+ uri: external_exports3.string(),
62612
+ activityId: external_exports3.string().describe("Links to the activity lifecycle for this issuance"),
62613
+ inbox: SendInboxResponseValidator2.optional().describe(
62614
+ "Present when sent via email/phone (Universal Inbox)"
62615
+ )
62305
62616
  });
62306
62617
  var SendInputValidator2 = external_exports3.discriminatedUnion("type", [SendBoostInputValidator2]);
62307
62618
  var SendResponseValidator2 = external_exports3.discriminatedUnion("type", [SendBoostResponseValidator2]);
@@ -62653,6 +62964,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62653
62964
  createdAt: external_exports3.string(),
62654
62965
  issuerDid: external_exports3.string(),
62655
62966
  webhookUrl: external_exports3.string().optional(),
62967
+ boostUri: external_exports3.string().optional(),
62968
+ activityId: external_exports3.string().optional(),
62656
62969
  signingAuthority: external_exports3.object({
62657
62970
  endpoint: external_exports3.string().optional(),
62658
62971
  name: external_exports3.string().optional()
@@ -62668,7 +62981,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62668
62981
  id: external_exports3.string(),
62669
62982
  isSigned: external_exports3.boolean(),
62670
62983
  isAccepted: external_exports3.boolean().optional(),
62671
- issuerDid: external_exports3.string()
62984
+ issuerDid: external_exports3.string(),
62985
+ boostUri: external_exports3.string()
62672
62986
  }).partial();
62673
62987
  var IssueInboxSigningAuthorityValidator2 = external_exports3.object({
62674
62988
  endpoint: external_exports3.string().url(),
@@ -62678,9 +62992,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62678
62992
  // === CORE DATA (Required) ===
62679
62993
  // WHAT is being sent and WHO is it for?
62680
62994
  recipient: ContactMethodQueryValidator2.describe("The recipient of the credential"),
62681
- credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).describe(
62995
+ // Either credential OR templateUri must be provided
62996
+ credential: VCValidator2.or(VPValidator2).or(UnsignedVCValidator2).optional().describe(
62682
62997
  "The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration."
62683
62998
  ),
62999
+ templateUri: external_exports3.string().optional().describe(
63000
+ "URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field."
63001
+ ),
62684
63002
  // === OPTIONAL FEATURES ===
62685
63003
  // Add major, distinct features at the top level.
62686
63004
  //consentRequest: ConsentRequestValidator.optional(),
@@ -62692,6 +63010,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62692
63010
  ),
62693
63011
  webhookUrl: external_exports3.string().url().optional().describe("The webhook URL to receive credential issuance events."),
62694
63012
  expiresInDays: external_exports3.number().min(1).max(365).optional().describe("The number of days the credential will be valid for."),
63013
+ templateData: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional().describe(
63014
+ "Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided."
63015
+ ),
62695
63016
  // --- For User-Facing Delivery (Email/SMS) ---
62696
63017
  delivery: external_exports3.object({
62697
63018
  suppress: external_exports3.boolean().optional().default(false).describe(
@@ -62706,7 +63027,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62706
63027
  name: external_exports3.string().optional().describe(
62707
63028
  'The name of the organization (e.g., "State University").'
62708
63029
  ),
62709
- logoUrl: external_exports3.string().url().optional().describe("The URL of the organization's logo.")
63030
+ logoUrl: external_exports3.string().url().optional().describe(
63031
+ "The URL of the organization's logo."
63032
+ )
62710
63033
  }).optional(),
62711
63034
  credential: external_exports3.object({
62712
63035
  name: external_exports3.string().optional().describe(
@@ -62733,6 +63056,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62733
63056
  }).optional().describe(
62734
63057
  "Configuration for the credential issuance. If not provided, the default configuration will be used."
62735
63058
  )
63059
+ }).refine((data) => data.credential || data.templateUri, {
63060
+ message: "Either credential or templateUri must be provided.",
63061
+ path: ["credential"]
62736
63062
  });
62737
63063
  var IssueInboxCredentialResponseValidator2 = external_exports3.object({
62738
63064
  issuanceId: external_exports3.string(),
@@ -62760,28 +63086,43 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62760
63086
  { message: "Must be a valid http(s) origin" }
62761
63087
  )
62762
63088
  ]);
63089
+ var LCNIntegrationStatusEnum2 = external_exports3.enum(["setup", "active", "paused"]);
62763
63090
  var LCNIntegrationValidator2 = external_exports3.object({
62764
63091
  id: external_exports3.string(),
62765
63092
  name: external_exports3.string(),
62766
63093
  description: external_exports3.string().optional(),
62767
63094
  publishableKey: external_exports3.string(),
62768
- whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([])
63095
+ whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([]),
63096
+ // Setup/onboarding status
63097
+ status: LCNIntegrationStatusEnum2.default("setup"),
63098
+ guideType: external_exports3.string().optional(),
63099
+ guideState: external_exports3.record(external_exports3.string(), external_exports3.any()).optional(),
63100
+ // Timestamps
63101
+ createdAt: external_exports3.string().optional(),
63102
+ updatedAt: external_exports3.string().optional()
62769
63103
  });
62770
63104
  var LCNIntegrationCreateValidator2 = external_exports3.object({
62771
63105
  name: external_exports3.string(),
62772
63106
  description: external_exports3.string().optional(),
62773
- whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([])
63107
+ whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).default([]),
63108
+ guideType: external_exports3.string().optional()
62774
63109
  });
62775
63110
  var LCNIntegrationUpdateValidator2 = external_exports3.object({
62776
63111
  name: external_exports3.string().optional(),
62777
63112
  description: external_exports3.string().optional(),
62778
63113
  whitelistedDomains: external_exports3.array(LCNDomainOrOriginValidator2).optional(),
62779
- rotatePublishableKey: external_exports3.boolean().optional()
63114
+ rotatePublishableKey: external_exports3.boolean().optional(),
63115
+ // Setup/onboarding updates
63116
+ status: LCNIntegrationStatusEnum2.optional(),
63117
+ guideType: external_exports3.string().optional(),
63118
+ guideState: external_exports3.record(external_exports3.string(), external_exports3.any()).optional()
62780
63119
  });
62781
63120
  var LCNIntegrationQueryValidator2 = external_exports3.object({
62782
63121
  id: StringQuery2,
62783
63122
  name: StringQuery2,
62784
- description: StringQuery2
63123
+ description: StringQuery2,
63124
+ status: StringQuery2,
63125
+ guideType: StringQuery2
62785
63126
  }).partial();
62786
63127
  var PaginatedLCNIntegrationsValidator2 = PaginationResponseValidator2.extend({
62787
63128
  records: LCNIntegrationValidator2.array()
@@ -62996,6 +63337,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62996
63337
  ]);
62997
63338
  var AppStoreListingValidator2 = external_exports3.object({
62998
63339
  listing_id: external_exports3.string(),
63340
+ slug: external_exports3.string().optional(),
62999
63341
  display_name: external_exports3.string(),
63000
63342
  tagline: external_exports3.string(),
63001
63343
  full_description: external_exports3.string(),
@@ -63033,6 +63375,77 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
63033
63375
  var PaginatedInstalledAppsValidator2 = PaginationResponseValidator2.extend({
63034
63376
  records: InstalledAppValidator2.array()
63035
63377
  });
63378
+ var AppBoostValidator2 = external_exports3.object({
63379
+ templateAlias: external_exports3.string().min(1).max(50).regex(/^[a-z0-9-]+$/),
63380
+ boostUri: external_exports3.string()
63381
+ });
63382
+ var SendCredentialEventValidator2 = external_exports3.object({
63383
+ type: external_exports3.literal("send-credential"),
63384
+ templateAlias: external_exports3.string(),
63385
+ templateData: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional()
63386
+ });
63387
+ var AppEventValidator2 = external_exports3.discriminatedUnion("type", [SendCredentialEventValidator2]);
63388
+ var AppEventInputValidator2 = external_exports3.object({
63389
+ listingId: external_exports3.string(),
63390
+ event: AppEventValidator2
63391
+ });
63392
+ var AppEventResponseValidator2 = external_exports3.record(external_exports3.string(), external_exports3.unknown());
63393
+ var CredentialActivityEventTypeValidator2 = external_exports3.enum([
63394
+ "CREATED",
63395
+ "DELIVERED",
63396
+ "CLAIMED",
63397
+ "EXPIRED",
63398
+ "FAILED"
63399
+ ]);
63400
+ var CredentialActivityRecipientTypeValidator2 = external_exports3.enum(["profile", "email", "phone"]);
63401
+ var CredentialActivitySourceTypeValidator2 = external_exports3.enum([
63402
+ "send",
63403
+ "sendBoost",
63404
+ "sendCredential",
63405
+ "contract",
63406
+ "claim",
63407
+ "inbox",
63408
+ "claimLink",
63409
+ "acceptCredential"
63410
+ ]);
63411
+ var CredentialActivityValidator2 = external_exports3.object({
63412
+ id: external_exports3.string(),
63413
+ activityId: external_exports3.string(),
63414
+ eventType: CredentialActivityEventTypeValidator2,
63415
+ timestamp: external_exports3.string(),
63416
+ actorProfileId: external_exports3.string(),
63417
+ recipientType: CredentialActivityRecipientTypeValidator2,
63418
+ recipientIdentifier: external_exports3.string(),
63419
+ boostUri: external_exports3.string().optional(),
63420
+ credentialUri: external_exports3.string().optional(),
63421
+ inboxCredentialId: external_exports3.string().optional(),
63422
+ integrationId: external_exports3.string().optional(),
63423
+ source: CredentialActivitySourceTypeValidator2,
63424
+ metadata: external_exports3.record(external_exports3.string(), external_exports3.unknown()).optional()
63425
+ });
63426
+ var CredentialActivityWithDetailsValidator2 = CredentialActivityValidator2.extend({
63427
+ boost: external_exports3.object({
63428
+ id: external_exports3.string(),
63429
+ name: external_exports3.string().optional(),
63430
+ category: external_exports3.string().optional()
63431
+ }).optional(),
63432
+ recipientProfile: external_exports3.object({
63433
+ profileId: external_exports3.string(),
63434
+ displayName: external_exports3.string().optional()
63435
+ }).optional()
63436
+ });
63437
+ var PaginatedCredentialActivitiesValidator2 = PaginationResponseValidator2.extend({
63438
+ records: CredentialActivityWithDetailsValidator2.array()
63439
+ });
63440
+ var CredentialActivityStatsValidator2 = external_exports3.object({
63441
+ total: external_exports3.number(),
63442
+ created: external_exports3.number(),
63443
+ delivered: external_exports3.number(),
63444
+ claimed: external_exports3.number(),
63445
+ expired: external_exports3.number(),
63446
+ failed: external_exports3.number(),
63447
+ claimRate: external_exports3.number()
63448
+ });
63036
63449
  }
63037
63450
  });
63038
63451
  var require_dist2 = __commonJS4({
@@ -63289,16 +63702,16 @@ function parserForArrayFormat2(options) {
63289
63702
  case "comma":
63290
63703
  case "separator": {
63291
63704
  return (key, value, accumulator) => {
63292
- const isArray = typeof value === "string" && value.includes(options.arrayFormatSeparator);
63293
- const newValue = isArray ? value.split(options.arrayFormatSeparator).map((item) => decode6(item, options)) : value === null ? value : decode6(value, options);
63705
+ const isArray2 = typeof value === "string" && value.includes(options.arrayFormatSeparator);
63706
+ const newValue = isArray2 ? value.split(options.arrayFormatSeparator).map((item) => decode6(item, options)) : value === null ? value : decode6(value, options);
63294
63707
  accumulator[key] = newValue;
63295
63708
  };
63296
63709
  }
63297
63710
  case "bracket-separator": {
63298
63711
  return (key, value, accumulator) => {
63299
- const isArray = /(\[])$/.test(key);
63712
+ const isArray2 = /(\[])$/.test(key);
63300
63713
  key = key.replace(/\[]$/, "");
63301
- if (!isArray) {
63714
+ if (!isArray2) {
63302
63715
  accumulator[key] = value ? decode6(value, options) : value;
63303
63716
  return;
63304
63717
  }
@@ -63769,7 +64182,494 @@ var isVC2Format = /* @__PURE__ */ __name4((credential) => {
63769
64182
  return credential["@context"].includes("https://www.w3.org/ns/credentials/v2");
63770
64183
  }, "isVC2Format");
63771
64184
 
64185
+ // ../../../node_modules/.pnpm/mustache@4.2.0/node_modules/mustache/mustache.mjs
64186
+ var objectToString = Object.prototype.toString;
64187
+ var isArray = Array.isArray || /* @__PURE__ */ __name(function isArrayPolyfill(object3) {
64188
+ return objectToString.call(object3) === "[object Array]";
64189
+ }, "isArrayPolyfill");
64190
+ function isFunction(object3) {
64191
+ return typeof object3 === "function";
64192
+ }
64193
+ __name(isFunction, "isFunction");
64194
+ function typeStr(obj) {
64195
+ return isArray(obj) ? "array" : typeof obj;
64196
+ }
64197
+ __name(typeStr, "typeStr");
64198
+ function escapeRegExp(string7) {
64199
+ return string7.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
64200
+ }
64201
+ __name(escapeRegExp, "escapeRegExp");
64202
+ function hasProperty(obj, propName) {
64203
+ return obj != null && typeof obj === "object" && propName in obj;
64204
+ }
64205
+ __name(hasProperty, "hasProperty");
64206
+ function primitiveHasOwnProperty(primitive, propName) {
64207
+ return primitive != null && typeof primitive !== "object" && primitive.hasOwnProperty && primitive.hasOwnProperty(propName);
64208
+ }
64209
+ __name(primitiveHasOwnProperty, "primitiveHasOwnProperty");
64210
+ var regExpTest = RegExp.prototype.test;
64211
+ function testRegExp(re, string7) {
64212
+ return regExpTest.call(re, string7);
64213
+ }
64214
+ __name(testRegExp, "testRegExp");
64215
+ var nonSpaceRe = /\S/;
64216
+ function isWhitespace(string7) {
64217
+ return !testRegExp(nonSpaceRe, string7);
64218
+ }
64219
+ __name(isWhitespace, "isWhitespace");
64220
+ var entityMap = {
64221
+ "&": "&",
64222
+ "<": "&lt;",
64223
+ ">": "&gt;",
64224
+ '"': "&quot;",
64225
+ "'": "&#39;",
64226
+ "/": "&#x2F;",
64227
+ "`": "&#x60;",
64228
+ "=": "&#x3D;"
64229
+ };
64230
+ function escapeHtml(string7) {
64231
+ return String(string7).replace(/[&<>"'`=\/]/g, /* @__PURE__ */ __name(function fromEntityMap(s) {
64232
+ return entityMap[s];
64233
+ }, "fromEntityMap"));
64234
+ }
64235
+ __name(escapeHtml, "escapeHtml");
64236
+ var whiteRe = /\s*/;
64237
+ var spaceRe = /\s+/;
64238
+ var equalsRe = /\s*=/;
64239
+ var curlyRe = /\s*\}/;
64240
+ var tagRe = /#|\^|\/|>|\{|&|=|!/;
64241
+ function parseTemplate(template, tags) {
64242
+ if (!template)
64243
+ return [];
64244
+ var lineHasNonSpace = false;
64245
+ var sections = [];
64246
+ var tokens = [];
64247
+ var spaces = [];
64248
+ var hasTag = false;
64249
+ var nonSpace = false;
64250
+ var indentation = "";
64251
+ var tagIndex = 0;
64252
+ function stripSpace() {
64253
+ if (hasTag && !nonSpace) {
64254
+ while (spaces.length)
64255
+ delete tokens[spaces.pop()];
64256
+ } else {
64257
+ spaces = [];
64258
+ }
64259
+ hasTag = false;
64260
+ nonSpace = false;
64261
+ }
64262
+ __name(stripSpace, "stripSpace");
64263
+ var openingTagRe, closingTagRe, closingCurlyRe;
64264
+ function compileTags(tagsToCompile) {
64265
+ if (typeof tagsToCompile === "string")
64266
+ tagsToCompile = tagsToCompile.split(spaceRe, 2);
64267
+ if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)
64268
+ throw new Error("Invalid tags: " + tagsToCompile);
64269
+ openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + "\\s*");
64270
+ closingTagRe = new RegExp("\\s*" + escapeRegExp(tagsToCompile[1]));
64271
+ closingCurlyRe = new RegExp("\\s*" + escapeRegExp("}" + tagsToCompile[1]));
64272
+ }
64273
+ __name(compileTags, "compileTags");
64274
+ compileTags(tags || mustache.tags);
64275
+ var scanner = new Scanner(template);
64276
+ var start, type, value, chr, token, openSection;
64277
+ while (!scanner.eos()) {
64278
+ start = scanner.pos;
64279
+ value = scanner.scanUntil(openingTagRe);
64280
+ if (value) {
64281
+ for (var i = 0, valueLength = value.length; i < valueLength; ++i) {
64282
+ chr = value.charAt(i);
64283
+ if (isWhitespace(chr)) {
64284
+ spaces.push(tokens.length);
64285
+ indentation += chr;
64286
+ } else {
64287
+ nonSpace = true;
64288
+ lineHasNonSpace = true;
64289
+ indentation += " ";
64290
+ }
64291
+ tokens.push(["text", chr, start, start + 1]);
64292
+ start += 1;
64293
+ if (chr === "\n") {
64294
+ stripSpace();
64295
+ indentation = "";
64296
+ tagIndex = 0;
64297
+ lineHasNonSpace = false;
64298
+ }
64299
+ }
64300
+ }
64301
+ if (!scanner.scan(openingTagRe))
64302
+ break;
64303
+ hasTag = true;
64304
+ type = scanner.scan(tagRe) || "name";
64305
+ scanner.scan(whiteRe);
64306
+ if (type === "=") {
64307
+ value = scanner.scanUntil(equalsRe);
64308
+ scanner.scan(equalsRe);
64309
+ scanner.scanUntil(closingTagRe);
64310
+ } else if (type === "{") {
64311
+ value = scanner.scanUntil(closingCurlyRe);
64312
+ scanner.scan(curlyRe);
64313
+ scanner.scanUntil(closingTagRe);
64314
+ type = "&";
64315
+ } else {
64316
+ value = scanner.scanUntil(closingTagRe);
64317
+ }
64318
+ if (!scanner.scan(closingTagRe))
64319
+ throw new Error("Unclosed tag at " + scanner.pos);
64320
+ if (type == ">") {
64321
+ token = [type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace];
64322
+ } else {
64323
+ token = [type, value, start, scanner.pos];
64324
+ }
64325
+ tagIndex++;
64326
+ tokens.push(token);
64327
+ if (type === "#" || type === "^") {
64328
+ sections.push(token);
64329
+ } else if (type === "/") {
64330
+ openSection = sections.pop();
64331
+ if (!openSection)
64332
+ throw new Error('Unopened section "' + value + '" at ' + start);
64333
+ if (openSection[1] !== value)
64334
+ throw new Error('Unclosed section "' + openSection[1] + '" at ' + start);
64335
+ } else if (type === "name" || type === "{" || type === "&") {
64336
+ nonSpace = true;
64337
+ } else if (type === "=") {
64338
+ compileTags(value);
64339
+ }
64340
+ }
64341
+ stripSpace();
64342
+ openSection = sections.pop();
64343
+ if (openSection)
64344
+ throw new Error('Unclosed section "' + openSection[1] + '" at ' + scanner.pos);
64345
+ return nestTokens(squashTokens(tokens));
64346
+ }
64347
+ __name(parseTemplate, "parseTemplate");
64348
+ function squashTokens(tokens) {
64349
+ var squashedTokens = [];
64350
+ var token, lastToken;
64351
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
64352
+ token = tokens[i];
64353
+ if (token) {
64354
+ if (token[0] === "text" && lastToken && lastToken[0] === "text") {
64355
+ lastToken[1] += token[1];
64356
+ lastToken[3] = token[3];
64357
+ } else {
64358
+ squashedTokens.push(token);
64359
+ lastToken = token;
64360
+ }
64361
+ }
64362
+ }
64363
+ return squashedTokens;
64364
+ }
64365
+ __name(squashTokens, "squashTokens");
64366
+ function nestTokens(tokens) {
64367
+ var nestedTokens = [];
64368
+ var collector = nestedTokens;
64369
+ var sections = [];
64370
+ var token, section;
64371
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
64372
+ token = tokens[i];
64373
+ switch (token[0]) {
64374
+ case "#":
64375
+ case "^":
64376
+ collector.push(token);
64377
+ sections.push(token);
64378
+ collector = token[4] = [];
64379
+ break;
64380
+ case "/":
64381
+ section = sections.pop();
64382
+ section[5] = token[2];
64383
+ collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;
64384
+ break;
64385
+ default:
64386
+ collector.push(token);
64387
+ }
64388
+ }
64389
+ return nestedTokens;
64390
+ }
64391
+ __name(nestTokens, "nestTokens");
64392
+ function Scanner(string7) {
64393
+ this.string = string7;
64394
+ this.tail = string7;
64395
+ this.pos = 0;
64396
+ }
64397
+ __name(Scanner, "Scanner");
64398
+ Scanner.prototype.eos = /* @__PURE__ */ __name(function eos() {
64399
+ return this.tail === "";
64400
+ }, "eos");
64401
+ Scanner.prototype.scan = /* @__PURE__ */ __name(function scan(re) {
64402
+ var match = this.tail.match(re);
64403
+ if (!match || match.index !== 0)
64404
+ return "";
64405
+ var string7 = match[0];
64406
+ this.tail = this.tail.substring(string7.length);
64407
+ this.pos += string7.length;
64408
+ return string7;
64409
+ }, "scan");
64410
+ Scanner.prototype.scanUntil = /* @__PURE__ */ __name(function scanUntil(re) {
64411
+ var index = this.tail.search(re), match;
64412
+ switch (index) {
64413
+ case -1:
64414
+ match = this.tail;
64415
+ this.tail = "";
64416
+ break;
64417
+ case 0:
64418
+ match = "";
64419
+ break;
64420
+ default:
64421
+ match = this.tail.substring(0, index);
64422
+ this.tail = this.tail.substring(index);
64423
+ }
64424
+ this.pos += match.length;
64425
+ return match;
64426
+ }, "scanUntil");
64427
+ function Context(view, parentContext) {
64428
+ this.view = view;
64429
+ this.cache = { ".": this.view };
64430
+ this.parent = parentContext;
64431
+ }
64432
+ __name(Context, "Context");
64433
+ Context.prototype.push = /* @__PURE__ */ __name(function push(view) {
64434
+ return new Context(view, this);
64435
+ }, "push");
64436
+ Context.prototype.lookup = /* @__PURE__ */ __name(function lookup(name) {
64437
+ var cache = this.cache;
64438
+ var value;
64439
+ if (cache.hasOwnProperty(name)) {
64440
+ value = cache[name];
64441
+ } else {
64442
+ var context = this, intermediateValue, names, index, lookupHit = false;
64443
+ while (context) {
64444
+ if (name.indexOf(".") > 0) {
64445
+ intermediateValue = context.view;
64446
+ names = name.split(".");
64447
+ index = 0;
64448
+ while (intermediateValue != null && index < names.length) {
64449
+ if (index === names.length - 1)
64450
+ lookupHit = hasProperty(intermediateValue, names[index]) || primitiveHasOwnProperty(intermediateValue, names[index]);
64451
+ intermediateValue = intermediateValue[names[index++]];
64452
+ }
64453
+ } else {
64454
+ intermediateValue = context.view[name];
64455
+ lookupHit = hasProperty(context.view, name);
64456
+ }
64457
+ if (lookupHit) {
64458
+ value = intermediateValue;
64459
+ break;
64460
+ }
64461
+ context = context.parent;
64462
+ }
64463
+ cache[name] = value;
64464
+ }
64465
+ if (isFunction(value))
64466
+ value = value.call(this.view);
64467
+ return value;
64468
+ }, "lookup");
64469
+ function Writer() {
64470
+ this.templateCache = {
64471
+ _cache: {},
64472
+ set: /* @__PURE__ */ __name(function set5(key, value) {
64473
+ this._cache[key] = value;
64474
+ }, "set"),
64475
+ get: /* @__PURE__ */ __name(function get(key) {
64476
+ return this._cache[key];
64477
+ }, "get"),
64478
+ clear: /* @__PURE__ */ __name(function clear() {
64479
+ this._cache = {};
64480
+ }, "clear")
64481
+ };
64482
+ }
64483
+ __name(Writer, "Writer");
64484
+ Writer.prototype.clearCache = /* @__PURE__ */ __name(function clearCache() {
64485
+ if (typeof this.templateCache !== "undefined") {
64486
+ this.templateCache.clear();
64487
+ }
64488
+ }, "clearCache");
64489
+ Writer.prototype.parse = /* @__PURE__ */ __name(function parse7(template, tags) {
64490
+ var cache = this.templateCache;
64491
+ var cacheKey = template + ":" + (tags || mustache.tags).join(":");
64492
+ var isCacheEnabled = typeof cache !== "undefined";
64493
+ var tokens = isCacheEnabled ? cache.get(cacheKey) : void 0;
64494
+ if (tokens == void 0) {
64495
+ tokens = parseTemplate(template, tags);
64496
+ isCacheEnabled && cache.set(cacheKey, tokens);
64497
+ }
64498
+ return tokens;
64499
+ }, "parse");
64500
+ Writer.prototype.render = /* @__PURE__ */ __name(function render(template, view, partials, config3) {
64501
+ var tags = this.getConfigTags(config3);
64502
+ var tokens = this.parse(template, tags);
64503
+ var context = view instanceof Context ? view : new Context(view, void 0);
64504
+ return this.renderTokens(tokens, context, partials, template, config3);
64505
+ }, "render");
64506
+ Writer.prototype.renderTokens = /* @__PURE__ */ __name(function renderTokens(tokens, context, partials, originalTemplate, config3) {
64507
+ var buffer = "";
64508
+ var token, symbol3, value;
64509
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
64510
+ value = void 0;
64511
+ token = tokens[i];
64512
+ symbol3 = token[0];
64513
+ if (symbol3 === "#") value = this.renderSection(token, context, partials, originalTemplate, config3);
64514
+ else if (symbol3 === "^") value = this.renderInverted(token, context, partials, originalTemplate, config3);
64515
+ else if (symbol3 === ">") value = this.renderPartial(token, context, partials, config3);
64516
+ else if (symbol3 === "&") value = this.unescapedValue(token, context);
64517
+ else if (symbol3 === "name") value = this.escapedValue(token, context, config3);
64518
+ else if (symbol3 === "text") value = this.rawValue(token);
64519
+ if (value !== void 0)
64520
+ buffer += value;
64521
+ }
64522
+ return buffer;
64523
+ }, "renderTokens");
64524
+ Writer.prototype.renderSection = /* @__PURE__ */ __name(function renderSection(token, context, partials, originalTemplate, config3) {
64525
+ var self = this;
64526
+ var buffer = "";
64527
+ var value = context.lookup(token[1]);
64528
+ function subRender(template) {
64529
+ return self.render(template, context, partials, config3);
64530
+ }
64531
+ __name(subRender, "subRender");
64532
+ if (!value) return;
64533
+ if (isArray(value)) {
64534
+ for (var j = 0, valueLength = value.length; j < valueLength; ++j) {
64535
+ buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config3);
64536
+ }
64537
+ } else if (typeof value === "object" || typeof value === "string" || typeof value === "number") {
64538
+ buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config3);
64539
+ } else if (isFunction(value)) {
64540
+ if (typeof originalTemplate !== "string")
64541
+ throw new Error("Cannot use higher-order sections without the original template");
64542
+ value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);
64543
+ if (value != null)
64544
+ buffer += value;
64545
+ } else {
64546
+ buffer += this.renderTokens(token[4], context, partials, originalTemplate, config3);
64547
+ }
64548
+ return buffer;
64549
+ }, "renderSection");
64550
+ Writer.prototype.renderInverted = /* @__PURE__ */ __name(function renderInverted(token, context, partials, originalTemplate, config3) {
64551
+ var value = context.lookup(token[1]);
64552
+ if (!value || isArray(value) && value.length === 0)
64553
+ return this.renderTokens(token[4], context, partials, originalTemplate, config3);
64554
+ }, "renderInverted");
64555
+ Writer.prototype.indentPartial = /* @__PURE__ */ __name(function indentPartial(partial3, indentation, lineHasNonSpace) {
64556
+ var filteredIndentation = indentation.replace(/[^ \t]/g, "");
64557
+ var partialByNl = partial3.split("\n");
64558
+ for (var i = 0; i < partialByNl.length; i++) {
64559
+ if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {
64560
+ partialByNl[i] = filteredIndentation + partialByNl[i];
64561
+ }
64562
+ }
64563
+ return partialByNl.join("\n");
64564
+ }, "indentPartial");
64565
+ Writer.prototype.renderPartial = /* @__PURE__ */ __name(function renderPartial(token, context, partials, config3) {
64566
+ if (!partials) return;
64567
+ var tags = this.getConfigTags(config3);
64568
+ var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
64569
+ if (value != null) {
64570
+ var lineHasNonSpace = token[6];
64571
+ var tagIndex = token[5];
64572
+ var indentation = token[4];
64573
+ var indentedValue = value;
64574
+ if (tagIndex == 0 && indentation) {
64575
+ indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);
64576
+ }
64577
+ var tokens = this.parse(indentedValue, tags);
64578
+ return this.renderTokens(tokens, context, partials, indentedValue, config3);
64579
+ }
64580
+ }, "renderPartial");
64581
+ Writer.prototype.unescapedValue = /* @__PURE__ */ __name(function unescapedValue(token, context) {
64582
+ var value = context.lookup(token[1]);
64583
+ if (value != null)
64584
+ return value;
64585
+ }, "unescapedValue");
64586
+ Writer.prototype.escapedValue = /* @__PURE__ */ __name(function escapedValue(token, context, config3) {
64587
+ var escape = this.getConfigEscape(config3) || mustache.escape;
64588
+ var value = context.lookup(token[1]);
64589
+ if (value != null)
64590
+ return typeof value === "number" && escape === mustache.escape ? String(value) : escape(value);
64591
+ }, "escapedValue");
64592
+ Writer.prototype.rawValue = /* @__PURE__ */ __name(function rawValue(token) {
64593
+ return token[1];
64594
+ }, "rawValue");
64595
+ Writer.prototype.getConfigTags = /* @__PURE__ */ __name(function getConfigTags(config3) {
64596
+ if (isArray(config3)) {
64597
+ return config3;
64598
+ } else if (config3 && typeof config3 === "object") {
64599
+ return config3.tags;
64600
+ } else {
64601
+ return void 0;
64602
+ }
64603
+ }, "getConfigTags");
64604
+ Writer.prototype.getConfigEscape = /* @__PURE__ */ __name(function getConfigEscape(config3) {
64605
+ if (config3 && typeof config3 === "object" && !isArray(config3)) {
64606
+ return config3.escape;
64607
+ } else {
64608
+ return void 0;
64609
+ }
64610
+ }, "getConfigEscape");
64611
+ var mustache = {
64612
+ name: "mustache.js",
64613
+ version: "4.2.0",
64614
+ tags: ["{{", "}}"],
64615
+ clearCache: void 0,
64616
+ escape: void 0,
64617
+ parse: void 0,
64618
+ render: void 0,
64619
+ Scanner: void 0,
64620
+ Context: void 0,
64621
+ Writer: void 0,
64622
+ /**
64623
+ * Allows a user to override the default caching strategy, by providing an
64624
+ * object with set, get and clear methods. This can also be used to disable
64625
+ * the cache by setting it to the literal `undefined`.
64626
+ */
64627
+ set templateCache(cache) {
64628
+ defaultWriter.templateCache = cache;
64629
+ },
64630
+ /**
64631
+ * Gets the default or overridden caching object from the default writer.
64632
+ */
64633
+ get templateCache() {
64634
+ return defaultWriter.templateCache;
64635
+ }
64636
+ };
64637
+ var defaultWriter = new Writer();
64638
+ mustache.clearCache = /* @__PURE__ */ __name(function clearCache2() {
64639
+ return defaultWriter.clearCache();
64640
+ }, "clearCache");
64641
+ mustache.parse = /* @__PURE__ */ __name(function parse8(template, tags) {
64642
+ return defaultWriter.parse(template, tags);
64643
+ }, "parse");
64644
+ mustache.render = /* @__PURE__ */ __name(function render2(template, view, partials, config3) {
64645
+ if (typeof template !== "string") {
64646
+ 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)');
64647
+ }
64648
+ return defaultWriter.render(template, view, partials, config3);
64649
+ }, "render");
64650
+ mustache.escape = escapeHtml;
64651
+ mustache.Scanner = Scanner;
64652
+ mustache.Context = Context;
64653
+ mustache.Writer = Writer;
64654
+ var mustache_default = mustache;
64655
+
63772
64656
  // src/plugin.ts
64657
+ var escapeJsonStringValue = /* @__PURE__ */ __name((value) => {
64658
+ if (value === null || value === void 0) return "";
64659
+ 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");
64660
+ }, "escapeJsonStringValue");
64661
+ var prepareTemplateData = /* @__PURE__ */ __name((templateData) => {
64662
+ const prepared = {};
64663
+ for (const [key, value] of Object.entries(templateData)) {
64664
+ prepared[key] = escapeJsonStringValue(value);
64665
+ }
64666
+ return prepared;
64667
+ }, "prepareTemplateData");
64668
+ var renderTemplateJson = /* @__PURE__ */ __name((jsonString, templateData) => {
64669
+ const preparedData = prepareTemplateData(templateData);
64670
+ const unescapedTemplate = jsonString.replace(/\{\{([^{}]+)\}\}/g, "{{{$1}}}");
64671
+ return mustache_default.render(unescapedTemplate, preparedData);
64672
+ }, "renderTemplateJson");
63773
64673
  async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
63774
64674
  let did = "";
63775
64675
  try {
@@ -64351,7 +65251,7 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
64351
65251
  await ensureUser();
64352
65252
  return client.boost.deleteBoost.mutate({ uri });
64353
65253
  }, "deleteBoost"),
64354
- sendBoost: /* @__PURE__ */ __name(async (_learnCard, profileId, boostUri, options = { encrypt: true, skipNotification: false }) => {
65254
+ sendBoost: /* @__PURE__ */ __name(async (_learnCard, profileId, boostUri, options = { encrypt: true, skipNotification: false, templateData: {} }) => {
64355
65255
  await ensureUser();
64356
65256
  const result = await _learnCard.invoke.resolveFromLCN(boostUri);
64357
65257
  const data = await UnsignedVCValidator.spa(result);
@@ -64374,6 +65274,17 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
64374
65274
  boost.credentialSubject.id = targetProfile.did;
64375
65275
  }
64376
65276
  if (boost?.type?.includes("BoostCredential")) boost.boostId = boostUri;
65277
+ if (typeof options === "object" && options.templateData && Object.keys(options.templateData).length > 0) {
65278
+ try {
65279
+ const boostString = JSON.stringify(boost);
65280
+ const rendered = renderTemplateJson(boostString, options.templateData);
65281
+ boost = JSON.parse(rendered);
65282
+ } catch (error91) {
65283
+ throw new Error(
65284
+ `Template substitution failed: ${error91 instanceof Error ? error91.message : "Unknown error"}. Please check your templateData variables and ensure the rendered output is valid JSON.`
65285
+ );
65286
+ }
65287
+ }
64377
65288
  if (typeof options === "object" && options.overideFn) {
64378
65289
  boost = options.overideFn(boost);
64379
65290
  }
@@ -64443,22 +65354,39 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
64443
65354
  send: /* @__PURE__ */ __name(async (_learnCard, input) => {
64444
65355
  await ensureUser();
64445
65356
  if (input.type === "boost") {
65357
+ const recipient = input.recipient;
65358
+ const isDid = recipient.startsWith("did:");
65359
+ const isEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(recipient);
65360
+ const isPhone = /^\+?[\d\s-]{10,}$/.test(recipient.replace(/[\s-]/g, ""));
64446
65361
  const canIssueLocally = "issueCredential" in _learnCard.invoke;
64447
- if (canIssueLocally && input.templateUri) {
65362
+ const isDirectRecipient = isDid || !isEmail && !isPhone;
65363
+ if (canIssueLocally && isDirectRecipient && input.templateUri) {
64448
65364
  const result = await _learnCard.invoke.resolveFromLCN(input.templateUri);
64449
65365
  const data = await UnsignedVCValidator.spa(result);
64450
65366
  if (data.success) {
64451
65367
  let targetDid;
64452
- if (input.recipient.startsWith("did:")) {
64453
- targetDid = input.recipient;
65368
+ if (isDid) {
65369
+ targetDid = recipient;
64454
65370
  } else {
64455
- const targetProfile = await _learnCard.invoke.getProfile(
64456
- input.recipient
64457
- );
65371
+ const targetProfile = await _learnCard.invoke.getProfile(recipient);
64458
65372
  if (!targetProfile) return client.boost.send.mutate(input);
64459
65373
  targetDid = targetProfile.did;
64460
65374
  }
64461
65375
  let boost = data.data;
65376
+ if (input.templateData && Object.keys(input.templateData).length > 0) {
65377
+ try {
65378
+ const boostString = JSON.stringify(boost);
65379
+ const rendered = renderTemplateJson(
65380
+ boostString,
65381
+ input.templateData
65382
+ );
65383
+ boost = JSON.parse(rendered);
65384
+ } catch (error91) {
65385
+ throw new Error(
65386
+ `Failed to apply template data: ${error91 instanceof Error ? error91.message : "Unknown error"}`
65387
+ );
65388
+ }
65389
+ }
64462
65390
  if (isVC2Format(boost)) {
64463
65391
  boost.validFrom = (/* @__PURE__ */ new Date()).toISOString();
64464
65392
  } else {
@@ -65021,11 +65949,46 @@ async function getLearnCardNetworkPlugin(learnCard, url3, apiToken) {
65021
65949
  await ensureUser();
65022
65950
  return client.appStore.adminGetAllListings.query(options);
65023
65951
  }, "adminGetAllListings"),
65952
+ // App Store Boost Management
65953
+ addBoostToApp: /* @__PURE__ */ __name(async (_learnCard, listingId, boostUri, templateAlias) => {
65954
+ await ensureUser();
65955
+ return client.appStore.addBoostToListing.mutate({ listingId, boostUri, templateAlias });
65956
+ }, "addBoostToApp"),
65957
+ removeBoostFromApp: /* @__PURE__ */ __name(async (_learnCard, listingId, templateAlias) => {
65958
+ await ensureUser();
65959
+ return client.appStore.removeBoostFromListing.mutate({ listingId, templateAlias });
65960
+ }, "removeBoostFromApp"),
65961
+ getAppBoosts: /* @__PURE__ */ __name(async (_learnCard, listingId) => {
65962
+ await ensureUser();
65963
+ return client.appStore.getBoostsForListing.query({ listingId });
65964
+ }, "getAppBoosts"),
65965
+ // Generic App Event
65966
+ sendAppEvent: /* @__PURE__ */ __name(async (_learnCard, listingId, event) => {
65967
+ await ensureUser();
65968
+ return client.appStore.appEvent.mutate({ listingId, event });
65969
+ }, "sendAppEvent"),
65024
65970
  resolveFromLCN: /* @__PURE__ */ __name(async (_learnCard, uri) => {
65025
65971
  const result = await client.storage.resolve.query({ uri });
65026
65972
  return UnsignedVCValidator.or(VCValidator).or(VPValidator).or(JWEValidator).or(ConsentFlowContractValidator).or(ConsentFlowTermsValidator).parseAsync(result);
65027
65973
  }, "resolveFromLCN"),
65028
- getLCNClient: /* @__PURE__ */ __name(() => client, "getLCNClient")
65974
+ getLCNClient: /* @__PURE__ */ __name(() => client, "getLCNClient"),
65975
+ // Activity
65976
+ getMyActivities: /* @__PURE__ */ __name(async (_learnCard, options = {}) => {
65977
+ await ensureUser();
65978
+ return client.activity.getMyActivities.query(options);
65979
+ }, "getMyActivities"),
65980
+ getActivityStats: /* @__PURE__ */ __name(async (_learnCard, options = {}) => {
65981
+ await ensureUser();
65982
+ return client.activity.getActivityStats.query(options);
65983
+ }, "getActivityStats"),
65984
+ getActivity: /* @__PURE__ */ __name(async (_learnCard, options) => {
65985
+ await ensureUser();
65986
+ return client.activity.getActivity.query(options);
65987
+ }, "getActivity"),
65988
+ getActivityChain: /* @__PURE__ */ __name(async (_learnCard, options) => {
65989
+ await ensureUser();
65990
+ return client.activity.getActivityChain.query(options);
65991
+ }, "getActivityChain")
65029
65992
  }
65030
65993
  };
65031
65994
  }
@@ -65130,4 +66093,12 @@ export {
65130
66093
  @trpc/client/dist/links/retryLink.mjs:
65131
66094
  (* istanbul ignore file -- @preserve *)
65132
66095
  */
66096
+ /*! Bundled license information:
66097
+
66098
+ mustache/mustache.mjs:
66099
+ (*!
66100
+ * mustache.js - Logic-less {{mustache}} templates with JavaScript
66101
+ * http://github.com/janl/mustache.js
66102
+ *)
66103
+ */
65133
66104
  //# sourceMappingURL=lcn-plugin.esm.js.map