@learncard/sss-key-manager 0.1.4 → 0.1.6

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.
@@ -76,6 +76,8 @@ var require_types_cjs_development = __commonJS({
76
76
  AppStoreListingSubmitterValidator: /* @__PURE__ */ __name(() => AppStoreListingSubmitterValidator, "AppStoreListingSubmitterValidator"),
77
77
  AppStoreListingUpdateValidator: /* @__PURE__ */ __name(() => AppStoreListingUpdateValidator, "AppStoreListingUpdateValidator"),
78
78
  AppStoreListingValidator: /* @__PURE__ */ __name(() => AppStoreListingValidator, "AppStoreListingValidator"),
79
+ AssociationTypeValidator: /* @__PURE__ */ __name(() => AssociationTypeValidator, "AssociationTypeValidator"),
80
+ AssociationValidator: /* @__PURE__ */ __name(() => AssociationValidator, "AssociationValidator"),
79
81
  AuthGrantQueryValidator: /* @__PURE__ */ __name(() => AuthGrantQueryValidator, "AuthGrantQueryValidator"),
80
82
  AuthGrantStatusValidator: /* @__PURE__ */ __name(() => AuthGrantStatusValidator, "AuthGrantStatusValidator"),
81
83
  AuthGrantValidator: /* @__PURE__ */ __name(() => AuthGrantValidator, "AuthGrantValidator"),
@@ -94,6 +96,8 @@ var require_types_cjs_development = __commonJS({
94
96
  ClaimHookValidator: /* @__PURE__ */ __name(() => ClaimHookValidator, "ClaimHookValidator"),
95
97
  ClaimInboxCredentialValidator: /* @__PURE__ */ __name(() => ClaimInboxCredentialValidator, "ClaimInboxCredentialValidator"),
96
98
  ClaimTokenValidator: /* @__PURE__ */ __name(() => ClaimTokenValidator, "ClaimTokenValidator"),
99
+ ClrCredentialValidator: /* @__PURE__ */ __name(() => ClrCredentialValidator, "ClrCredentialValidator"),
100
+ ClrSubjectValidator: /* @__PURE__ */ __name(() => ClrSubjectValidator, "ClrSubjectValidator"),
97
101
  ConsentFlowContractDataForDidValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDataForDidValidator, "ConsentFlowContractDataForDidValidator"),
98
102
  ConsentFlowContractDataValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDataValidator, "ConsentFlowContractDataValidator"),
99
103
  ConsentFlowContractDetailsValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDetailsValidator, "ConsentFlowContractDetailsValidator"),
@@ -152,17 +156,21 @@ var require_types_cjs_development = __commonJS({
152
156
  FrameworkWithSkillsValidator: /* @__PURE__ */ __name(() => FrameworkWithSkillsValidator, "FrameworkWithSkillsValidator"),
153
157
  FullClaimHookValidator: /* @__PURE__ */ __name(() => FullClaimHookValidator, "FullClaimHookValidator"),
154
158
  GeoCoordinatesValidator: /* @__PURE__ */ __name(() => GeoCoordinatesValidator, "GeoCoordinatesValidator"),
159
+ GetCounterEventValidator: /* @__PURE__ */ __name(() => GetCounterEventValidator, "GetCounterEventValidator"),
160
+ GetCountersEventValidator: /* @__PURE__ */ __name(() => GetCountersEventValidator, "GetCountersEventValidator"),
155
161
  GetFullSkillTreeInputValidator: /* @__PURE__ */ __name(() => GetFullSkillTreeInputValidator, "GetFullSkillTreeInputValidator"),
156
162
  GetFullSkillTreeResultValidator: /* @__PURE__ */ __name(() => GetFullSkillTreeResultValidator, "GetFullSkillTreeResultValidator"),
157
163
  GetSkillPathInputValidator: /* @__PURE__ */ __name(() => GetSkillPathInputValidator, "GetSkillPathInputValidator"),
158
164
  GetSkillPathResultValidator: /* @__PURE__ */ __name(() => GetSkillPathResultValidator, "GetSkillPathResultValidator"),
159
165
  GetTemplateRecipientsEventValidator: /* @__PURE__ */ __name(() => GetTemplateRecipientsEventValidator, "GetTemplateRecipientsEventValidator"),
166
+ GuardianStatusValidator: /* @__PURE__ */ __name(() => GuardianStatusValidator, "GuardianStatusValidator"),
160
167
  IdentifierEntryValidator: /* @__PURE__ */ __name(() => IdentifierEntryValidator, "IdentifierEntryValidator"),
161
168
  IdentifierTypeValidator: /* @__PURE__ */ __name(() => IdentifierTypeValidator, "IdentifierTypeValidator"),
162
169
  IdentityObjectValidator: /* @__PURE__ */ __name(() => IdentityObjectValidator, "IdentityObjectValidator"),
163
170
  ImageValidator: /* @__PURE__ */ __name(() => ImageValidator, "ImageValidator"),
164
171
  InboxCredentialQueryValidator: /* @__PURE__ */ __name(() => InboxCredentialQueryValidator, "InboxCredentialQueryValidator"),
165
172
  InboxCredentialValidator: /* @__PURE__ */ __name(() => InboxCredentialValidator, "InboxCredentialValidator"),
173
+ IncrementCounterEventValidator: /* @__PURE__ */ __name(() => IncrementCounterEventValidator, "IncrementCounterEventValidator"),
166
174
  InstalledAppValidator: /* @__PURE__ */ __name(() => InstalledAppValidator, "InstalledAppValidator"),
167
175
  IssueInboxCredentialResponseValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialResponseValidator, "IssueInboxCredentialResponseValidator"),
168
176
  IssueInboxCredentialValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialValidator, "IssueInboxCredentialValidator"),
@@ -237,17 +245,20 @@ var require_types_cjs_development = __commonJS({
237
245
  RelatedValidator: /* @__PURE__ */ __name(() => RelatedValidator, "RelatedValidator"),
238
246
  ReplaceSkillFrameworkSkillsInputValidator: /* @__PURE__ */ __name(() => ReplaceSkillFrameworkSkillsInputValidator, "ReplaceSkillFrameworkSkillsInputValidator"),
239
247
  ReplaceSkillFrameworkSkillsResultValidator: /* @__PURE__ */ __name(() => ReplaceSkillFrameworkSkillsResultValidator, "ReplaceSkillFrameworkSkillsResultValidator"),
248
+ RequestLearnerContextEventValidator: /* @__PURE__ */ __name(() => RequestLearnerContextEventValidator, "RequestLearnerContextEventValidator"),
240
249
  ResultDescriptionValidator: /* @__PURE__ */ __name(() => ResultDescriptionValidator, "ResultDescriptionValidator"),
241
250
  ResultStatusTypeValidator: /* @__PURE__ */ __name(() => ResultStatusTypeValidator, "ResultStatusTypeValidator"),
242
251
  ResultTypeValidator: /* @__PURE__ */ __name(() => ResultTypeValidator, "ResultTypeValidator"),
243
252
  ResultValidator: /* @__PURE__ */ __name(() => ResultValidator, "ResultValidator"),
244
253
  RubricCriterionValidator: /* @__PURE__ */ __name(() => RubricCriterionValidator, "RubricCriterionValidator"),
254
+ SendAiSessionCredentialEventValidator: /* @__PURE__ */ __name(() => SendAiSessionCredentialEventValidator, "SendAiSessionCredentialEventValidator"),
245
255
  SendBoostInputValidator: /* @__PURE__ */ __name(() => SendBoostInputValidator, "SendBoostInputValidator"),
246
256
  SendBoostResponseValidator: /* @__PURE__ */ __name(() => SendBoostResponseValidator, "SendBoostResponseValidator"),
247
257
  SendBrandingOptionsValidator: /* @__PURE__ */ __name(() => SendBrandingOptionsValidator, "SendBrandingOptionsValidator"),
248
258
  SendCredentialEventValidator: /* @__PURE__ */ __name(() => SendCredentialEventValidator, "SendCredentialEventValidator"),
249
259
  SendInboxResponseValidator: /* @__PURE__ */ __name(() => SendInboxResponseValidator, "SendInboxResponseValidator"),
250
260
  SendInputValidator: /* @__PURE__ */ __name(() => SendInputValidator, "SendInputValidator"),
261
+ SendNotificationEventValidator: /* @__PURE__ */ __name(() => SendNotificationEventValidator, "SendNotificationEventValidator"),
251
262
  SendOptionsValidator: /* @__PURE__ */ __name(() => SendOptionsValidator, "SendOptionsValidator"),
252
263
  SendResponseValidator: /* @__PURE__ */ __name(() => SendResponseValidator, "SendResponseValidator"),
253
264
  SentCredentialInfoValidator: /* @__PURE__ */ __name(() => SentCredentialInfoValidator, "SentCredentialInfoValidator"),
@@ -269,10 +280,13 @@ var require_types_cjs_development = __commonJS({
269
280
  SkillTreeNodeValidator: /* @__PURE__ */ __name(() => SkillTreeNodeValidator, "SkillTreeNodeValidator"),
270
281
  SkillValidator: /* @__PURE__ */ __name(() => SkillValidator, "SkillValidator"),
271
282
  StringQuery: /* @__PURE__ */ __name(() => StringQuery, "StringQuery"),
283
+ SummaryCredentialDataValidator: /* @__PURE__ */ __name(() => SummaryCredentialDataValidator, "SummaryCredentialDataValidator"),
284
+ SummaryCredentialKeywordValidator: /* @__PURE__ */ __name(() => SummaryCredentialKeywordValidator, "SummaryCredentialKeywordValidator"),
272
285
  SyncFrameworkInputValidator: /* @__PURE__ */ __name(() => SyncFrameworkInputValidator, "SyncFrameworkInputValidator"),
273
286
  TagValidator: /* @__PURE__ */ __name(() => TagValidator, "TagValidator"),
274
287
  TermsOfUseValidator: /* @__PURE__ */ __name(() => TermsOfUseValidator, "TermsOfUseValidator"),
275
288
  UnsignedAchievementCredentialValidator: /* @__PURE__ */ __name(() => UnsignedAchievementCredentialValidator, "UnsignedAchievementCredentialValidator"),
289
+ UnsignedClrCredentialValidator: /* @__PURE__ */ __name(() => UnsignedClrCredentialValidator, "UnsignedClrCredentialValidator"),
276
290
  UnsignedVCValidator: /* @__PURE__ */ __name(() => UnsignedVCValidator, "UnsignedVCValidator"),
277
291
  UnsignedVPValidator: /* @__PURE__ */ __name(() => UnsignedVPValidator, "UnsignedVPValidator"),
278
292
  UpdateFrameworkInputValidator: /* @__PURE__ */ __name(() => UpdateFrameworkInputValidator, "UpdateFrameworkInputValidator"),
@@ -14044,6 +14058,42 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14044
14058
  var AchievementCredentialValidator = UnsignedAchievementCredentialValidator.extend({
14045
14059
  proof: ProofValidator.or(ProofValidator.array())
14046
14060
  });
14061
+ var AssociationTypeValidator = external_exports.enum([
14062
+ "exactMatchOf",
14063
+ "extends",
14064
+ "isChildOf",
14065
+ "isParentOf",
14066
+ "isPartOf",
14067
+ "isPeerOf",
14068
+ "isRelatedTo",
14069
+ "precedes",
14070
+ "replacedBy"
14071
+ ]).or(external_exports.string());
14072
+ var AssociationValidator = external_exports.object({
14073
+ type: external_exports.string().array().nonempty(),
14074
+ associationType: AssociationTypeValidator,
14075
+ sourceId: external_exports.string().optional(),
14076
+ targetId: external_exports.string()
14077
+ }).catchall(external_exports.any());
14078
+ var ClrSubjectValidator = external_exports.object({
14079
+ id: external_exports.string().optional(),
14080
+ type: external_exports.string().array().nonempty(),
14081
+ identifier: external_exports.any().array().optional(),
14082
+ achievement: AchievementValidator.array().optional(),
14083
+ association: AssociationValidator.array().optional(),
14084
+ verifiableCredential: external_exports.any().array().optional()
14085
+ }).catchall(external_exports.any());
14086
+ var UnsignedClrCredentialValidator = UnsignedVCValidator.extend({
14087
+ name: external_exports.string().optional(),
14088
+ description: external_exports.string().optional(),
14089
+ image: ImageValidator.optional(),
14090
+ credentialSubject: ClrSubjectValidator.or(ClrSubjectValidator.array()),
14091
+ endorsement: EndorsementCredentialValidator.array().optional(),
14092
+ partial: external_exports.boolean().optional()
14093
+ });
14094
+ var ClrCredentialValidator = UnsignedClrCredentialValidator.extend({
14095
+ proof: ProofValidator.or(ProofValidator.array())
14096
+ });
14047
14097
  var VerificationCheckValidator = external_exports.object({
14048
14098
  checks: external_exports.string().array(),
14049
14099
  warnings: external_exports.string().array(),
@@ -14395,10 +14445,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14395
14445
  credentialName: external_exports.string().optional().describe("Display name for the credential"),
14396
14446
  recipientName: external_exports.string().optional().describe("Name of the recipient for personalization")
14397
14447
  });
14448
+ var GuardianStatusValidator = external_exports.enum([
14449
+ "AWAITING_GUARDIAN",
14450
+ "GUARDIAN_APPROVED",
14451
+ "GUARDIAN_REJECTED"
14452
+ ]);
14398
14453
  var SendOptionsValidator = external_exports.object({
14399
14454
  webhookUrl: external_exports.string().url().optional().describe("Webhook URL to receive claim notifications"),
14400
14455
  suppressDelivery: external_exports.boolean().optional().describe("If true, returns claimUrl without sending email/SMS"),
14401
- branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery")
14456
+ branding: SendBrandingOptionsValidator.optional().describe("Branding for email/SMS delivery"),
14457
+ guardianEmail: external_exports.string().email().optional().describe("Guardian email that must approve before student can claim")
14402
14458
  });
14403
14459
  var SendBoostInputValidator = external_exports.object({
14404
14460
  type: external_exports.literal("boost"),
@@ -14415,11 +14471,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14415
14471
  }).refine((data) => data.templateUri || data.template || data.signedCredential, {
14416
14472
  message: "Either templateUri, template, or signedCredential must be provided.",
14417
14473
  path: ["templateUri"]
14418
- });
14474
+ }).refine(
14475
+ (data) => {
14476
+ if (data.options?.guardianEmail) {
14477
+ return data.options.guardianEmail.toLowerCase() !== data.recipient.toLowerCase();
14478
+ }
14479
+ return true;
14480
+ },
14481
+ {
14482
+ message: "guardianEmail must differ from recipient (self-approval not allowed)",
14483
+ path: ["options", "guardianEmail"]
14484
+ }
14485
+ );
14419
14486
  var SendInboxResponseValidator = external_exports.object({
14420
14487
  issuanceId: external_exports.string(),
14421
14488
  status: external_exports.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
14422
- claimUrl: external_exports.string().url().optional().describe("Present when suppressDelivery=true")
14489
+ claimUrl: external_exports.string().url().optional().describe("Present when suppressDelivery=true"),
14490
+ guardianStatus: GuardianStatusValidator.optional().describe(
14491
+ "Present when guardianEmail was specified"
14492
+ )
14423
14493
  });
14424
14494
  var SendBoostResponseValidator = external_exports.object({
14425
14495
  type: external_exports.literal("boost"),
@@ -14656,7 +14726,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14656
14726
  "APP_LISTING_APPROVED",
14657
14727
  "APP_LISTING_REJECTED",
14658
14728
  "APP_LISTING_WITHDRAWN",
14659
- "DEVICE_LINK_REQUEST"
14729
+ "DEVICE_LINK_REQUEST",
14730
+ "GUARDIAN_APPROVAL_PENDING",
14731
+ "GUARDIAN_APPROVED",
14732
+ "GUARDIAN_REJECTED",
14733
+ "APP_NOTIFICATION"
14660
14734
  ]);
14661
14735
  var LCNNotificationMessageValidator = external_exports.object({
14662
14736
  title: external_exports.string().optional(),
@@ -14694,7 +14768,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14694
14768
  var LCNNotificationValidator = external_exports.object({
14695
14769
  type: LCNNotificationTypeEnumValidator,
14696
14770
  to: LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() })),
14697
- from: LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() })),
14771
+ from: external_exports.union([
14772
+ external_exports.string(),
14773
+ LCNProfileValidator.partial().and(external_exports.object({ did: external_exports.string() }))
14774
+ ]),
14698
14775
  message: LCNNotificationMessageValidator.optional(),
14699
14776
  data: LCNNotificationDataValidator.optional(),
14700
14777
  sent: external_exports.iso.datetime().optional(),
@@ -14799,7 +14876,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14799
14876
  signingAuthority: external_exports.object({
14800
14877
  endpoint: external_exports.string().optional(),
14801
14878
  name: external_exports.string().optional()
14802
- }).optional()
14879
+ }).optional(),
14880
+ // Guardian gate fields (all optional — absent on pre-existing credentials)
14881
+ guardianEmail: external_exports.string().email().optional(),
14882
+ guardianStatus: GuardianStatusValidator.optional(),
14883
+ guardianApprovedAt: external_exports.string().optional(),
14884
+ guardianApprovedByDid: external_exports.string().optional()
14803
14885
  });
14804
14886
  var PaginatedInboxCredentialsValidator = external_exports.object({
14805
14887
  hasMore: external_exports.boolean(),
@@ -15267,11 +15349,84 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15267
15349
  }).refine((input) => Boolean(input.templateAlias) !== Boolean(input.boostUri), {
15268
15350
  message: "Exactly one of templateAlias or boostUri is required"
15269
15351
  });
15352
+ var RequestLearnerContextEventValidator = external_exports.object({
15353
+ type: external_exports.literal("request-learner-context"),
15354
+ includeCredentials: external_exports.boolean().optional().default(true),
15355
+ includePersonalData: external_exports.boolean().optional().default(false),
15356
+ format: external_exports.enum(["prompt", "structured"]).optional().default("prompt"),
15357
+ instructions: external_exports.string().optional(),
15358
+ detailLevel: external_exports.enum(["compact", "expanded"]).optional().default("compact")
15359
+ });
15360
+ var SummaryCredentialKeywordValidator = external_exports.object({
15361
+ occupations: external_exports.array(external_exports.string()).nullable(),
15362
+ careers: external_exports.array(external_exports.string()).nullable(),
15363
+ jobs: external_exports.array(external_exports.string()).nullable(),
15364
+ skills: external_exports.array(external_exports.string()).nullable(),
15365
+ fieldOfStudy: external_exports.string().nullable()
15366
+ });
15367
+ var SummaryCredentialDataValidator = external_exports.object({
15368
+ title: external_exports.string().describe("Short, concise title for the learning session or credential"),
15369
+ summary: external_exports.string().describe("Comprehensive summary of what happened during the session"),
15370
+ learned: external_exports.array(external_exports.string()).describe("Bullet points of key knowledge gained"),
15371
+ skills: external_exports.array(
15372
+ external_exports.object({
15373
+ title: external_exports.string().describe("Name of the skill category"),
15374
+ description: external_exports.string().describe("Detailed description of what this skill category involves")
15375
+ })
15376
+ ).describe("Categorized skills learned during the session"),
15377
+ nextSteps: external_exports.array(
15378
+ external_exports.object({
15379
+ title: external_exports.string().describe("Title of the suggested next step"),
15380
+ description: external_exports.string().describe("Description explaining why this next step is recommended"),
15381
+ keywords: SummaryCredentialKeywordValidator
15382
+ })
15383
+ ).describe("Recommended follow-up activities or learning modules"),
15384
+ reflections: external_exports.array(
15385
+ external_exports.object({
15386
+ title: external_exports.string().describe("Title of the reflection"),
15387
+ description: external_exports.string().describe("Detailed description of what this reflection involves")
15388
+ })
15389
+ ).describe("Reflections on the learning experience")
15390
+ });
15391
+ var SendAiSessionCredentialEventValidator = external_exports.object({
15392
+ type: external_exports.literal("send-ai-session-credential"),
15393
+ sessionTitle: external_exports.string(),
15394
+ summaryData: SummaryCredentialDataValidator,
15395
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
15396
+ });
15397
+ var SendNotificationEventValidator = external_exports.object({
15398
+ type: external_exports.literal("send-notification"),
15399
+ title: external_exports.string().optional(),
15400
+ body: external_exports.string().optional(),
15401
+ actionPath: external_exports.string().optional(),
15402
+ category: external_exports.string().optional(),
15403
+ priority: external_exports.enum(["normal", "high"]).optional()
15404
+ });
15405
+ var counterKeyValidator = external_exports.string().min(1).max(64).regex(/^[a-zA-Z0-9_-]+$/, "Key must be alphanumeric with _ or -");
15406
+ var IncrementCounterEventValidator = external_exports.object({
15407
+ type: external_exports.literal("increment-counter"),
15408
+ key: counterKeyValidator,
15409
+ amount: external_exports.number().int().finite()
15410
+ });
15411
+ var GetCounterEventValidator = external_exports.object({
15412
+ type: external_exports.literal("get-counter"),
15413
+ key: counterKeyValidator
15414
+ });
15415
+ var GetCountersEventValidator = external_exports.object({
15416
+ type: external_exports.literal("get-counters"),
15417
+ keys: external_exports.array(counterKeyValidator).min(1).max(50).optional()
15418
+ });
15270
15419
  var AppEventValidator = external_exports.discriminatedUnion("type", [
15271
15420
  SendCredentialEventValidator,
15272
15421
  CheckCredentialEventValidator,
15273
15422
  CheckIssuanceStatusEventValidator,
15274
- GetTemplateRecipientsEventValidator
15423
+ GetTemplateRecipientsEventValidator,
15424
+ RequestLearnerContextEventValidator,
15425
+ SendAiSessionCredentialEventValidator,
15426
+ SendNotificationEventValidator,
15427
+ IncrementCounterEventValidator,
15428
+ GetCounterEventValidator,
15429
+ GetCountersEventValidator
15275
15430
  ]);
15276
15431
  var AppEventInputValidator = external_exports.object({
15277
15432
  listingId: external_exports.string(),
@@ -15302,7 +15457,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15302
15457
  activityId: external_exports.string(),
15303
15458
  eventType: CredentialActivityEventTypeValidator,
15304
15459
  timestamp: external_exports.string(),
15305
- actorProfileId: external_exports.string(),
15460
+ actorProfileId: external_exports.string().optional(),
15306
15461
  recipientType: CredentialActivityRecipientTypeValidator,
15307
15462
  recipientIdentifier: external_exports.string(),
15308
15463
  boostUri: external_exports.string().optional(),
@@ -16705,14 +16860,15 @@ var defaultStorage = {
16705
16860
  storeShareVersion,
16706
16861
  getShareVersion
16707
16862
  };
16708
- var buildHeaders = /* @__PURE__ */ __name((token, didAuthVp) => ({
16863
+ var buildHeaders = /* @__PURE__ */ __name((token, didAuthVp, tenantId) => ({
16709
16864
  "Content-Type": "application/json",
16710
- ...didAuthVp ? { Authorization: `Bearer ${didAuthVp}` } : {}
16865
+ ...didAuthVp ? { Authorization: `Bearer ${didAuthVp}` } : {},
16866
+ ...tenantId ? { "X-Tenant-Id": tenantId } : {}
16711
16867
  }), "buildHeaders");
16712
- var fetchAuthShareRaw = /* @__PURE__ */ __name(async (serverUrl, token, providerType, shareVersion) => {
16868
+ var fetchAuthShareRaw = /* @__PURE__ */ __name(async (serverUrl, token, providerType, shareVersion, tenantId) => {
16713
16869
  const response = await fetch(`${serverUrl}/keys/auth-share`, {
16714
16870
  method: "POST",
16715
- headers: buildHeaders(token),
16871
+ headers: buildHeaders(token, void 0, tenantId),
16716
16872
  body: JSON.stringify({
16717
16873
  authToken: token,
16718
16874
  providerType,
@@ -16725,10 +16881,10 @@ var fetchAuthShareRaw = /* @__PURE__ */ __name(async (serverUrl, token, provider
16725
16881
  }
16726
16882
  return response.json();
16727
16883
  }, "fetchAuthShareRaw");
16728
- var putAuthShare = /* @__PURE__ */ __name(async (serverUrl, token, providerType, authShare, primaryDid, didAuthVp) => {
16884
+ var putAuthShare = /* @__PURE__ */ __name(async (serverUrl, token, providerType, authShare, primaryDid, didAuthVp, tenantId) => {
16729
16885
  const response = await fetch(`${serverUrl}/keys/auth-share`, {
16730
16886
  method: "PUT",
16731
- headers: buildHeaders(token, didAuthVp),
16887
+ headers: buildHeaders(token, didAuthVp, tenantId),
16732
16888
  body: JSON.stringify({
16733
16889
  authToken: token,
16734
16890
  providerType,
@@ -16743,24 +16899,24 @@ var putAuthShare = /* @__PURE__ */ __name(async (serverUrl, token, providerType,
16743
16899
  const data = await response.json();
16744
16900
  return { shareVersion: data.shareVersion ?? 1 };
16745
16901
  }, "putAuthShare");
16746
- var fetchRecoveryShare = /* @__PURE__ */ __name(async (serverUrl, token, providerType, type, credentialId) => {
16902
+ var fetchRecoveryShare = /* @__PURE__ */ __name(async (serverUrl, token, providerType, type, credentialId, tenantId) => {
16747
16903
  const params = new URLSearchParams({ type, providerType, authToken: token });
16748
16904
  if (credentialId) {
16749
16905
  params.set("credentialId", credentialId);
16750
16906
  }
16751
16907
  const response = await fetch(`${serverUrl}/keys/recovery?${params}`, {
16752
16908
  method: "GET",
16753
- headers: { "Content-Type": "application/json" }
16909
+ headers: buildHeaders(token, void 0, tenantId)
16754
16910
  });
16755
16911
  if (!response.ok) {
16756
16912
  throw new Error(`No ${type} recovery share found`);
16757
16913
  }
16758
16914
  return response.json();
16759
16915
  }, "fetchRecoveryShare");
16760
- var postRecoveryMethod = /* @__PURE__ */ __name(async (serverUrl, token, providerType, body, didAuthVp) => {
16916
+ var postRecoveryMethod = /* @__PURE__ */ __name(async (serverUrl, token, providerType, body, didAuthVp, tenantId) => {
16761
16917
  const response = await fetch(`${serverUrl}/keys/recovery`, {
16762
16918
  method: "POST",
16763
- headers: buildHeaders(token, didAuthVp),
16919
+ headers: buildHeaders(token, didAuthVp, tenantId),
16764
16920
  body: JSON.stringify({ authToken: token, providerType, ...body })
16765
16921
  });
16766
16922
  if (!response.ok) {
@@ -16779,12 +16935,12 @@ var parseVersionedEmailShare = /* @__PURE__ */ __name((input) => {
16779
16935
  }
16780
16936
  return { share: input, version: void 0 };
16781
16937
  }, "parseVersionedEmailShare");
16782
- var sendEmailBackupShare = /* @__PURE__ */ __name(async (serverUrl, token, providerType, emailShare, email, shareVersion) => {
16938
+ var sendEmailBackupShare = /* @__PURE__ */ __name(async (serverUrl, token, providerType, emailShare, email, shareVersion, tenantId) => {
16783
16939
  try {
16784
16940
  const payload = shareVersion != null ? formatVersionedEmailShare(emailShare, shareVersion) : emailShare;
16785
16941
  const response = await fetch(`${serverUrl}/keys/email-backup`, {
16786
16942
  method: "POST",
16787
- headers: buildHeaders(token),
16943
+ headers: buildHeaders(token, void 0, tenantId),
16788
16944
  body: JSON.stringify({ authToken: token, providerType, emailShare: payload, email })
16789
16945
  });
16790
16946
  if (!response.ok) {
@@ -16794,11 +16950,11 @@ var sendEmailBackupShare = /* @__PURE__ */ __name(async (serverUrl, token, provi
16794
16950
  console.warn("Email backup share delivery failed:", e);
16795
16951
  }
16796
16952
  }, "sendEmailBackupShare");
16797
- var sendEmailShareToRecoveryEmail = /* @__PURE__ */ __name(async (serverUrl, token, providerType, emailShare, shareVersion) => {
16953
+ var sendEmailShareToRecoveryEmail = /* @__PURE__ */ __name(async (serverUrl, token, providerType, emailShare, shareVersion, tenantId) => {
16798
16954
  const payload = shareVersion != null ? formatVersionedEmailShare(emailShare, shareVersion) : emailShare;
16799
16955
  const response = await fetch(`${serverUrl}/keys/email-backup`, {
16800
16956
  method: "POST",
16801
- headers: buildHeaders(token),
16957
+ headers: buildHeaders(token, void 0, tenantId),
16802
16958
  body: JSON.stringify({
16803
16959
  authToken: token,
16804
16960
  providerType,
@@ -16811,7 +16967,7 @@ var sendEmailShareToRecoveryEmail = /* @__PURE__ */ __name(async (serverUrl, tok
16811
16967
  }
16812
16968
  }, "sendEmailShareToRecoveryEmail");
16813
16969
  function createSSSStrategy(config) {
16814
- const { serverUrl, enableEmailBackupShare = false } = config;
16970
+ const { serverUrl, enableEmailBackupShare = false, tenantId } = config;
16815
16971
  const storage = config.storage || defaultStorage;
16816
16972
  let activeStorageId;
16817
16973
  let lastEmailShare;
@@ -16884,7 +17040,8 @@ function createSSSStrategy(config) {
16884
17040
  serverUrl,
16885
17041
  token,
16886
17042
  providerType,
16887
- localVersion ?? void 0
17043
+ localVersion ?? void 0,
17044
+ tenantId
16888
17045
  );
16889
17046
  if (!data) {
16890
17047
  hasRecoveryEmail = false;
@@ -16916,14 +17073,14 @@ function createSSSStrategy(config) {
16916
17073
  };
16917
17074
  },
16918
17075
  async storeAuthShare(token, providerType, authShare, primaryDid, didAuthVp) {
16919
- const { shareVersion } = await putAuthShare(serverUrl, token, providerType, authShare, primaryDid, didAuthVp);
17076
+ const { shareVersion } = await putAuthShare(serverUrl, token, providerType, authShare, primaryDid, didAuthVp, tenantId);
16920
17077
  await storage.storeShareVersion(shareVersion, activeStorageId);
16921
17078
  lastShareVersion = shareVersion;
16922
17079
  },
16923
17080
  async markMigrated(token, providerType, didAuthVp) {
16924
17081
  const response = await fetch(`${serverUrl}/keys/migrate`, {
16925
17082
  method: "POST",
16926
- headers: buildHeaders(token, didAuthVp),
17083
+ headers: buildHeaders(token, didAuthVp, tenantId),
16927
17084
  body: JSON.stringify({ authToken: token, providerType })
16928
17085
  });
16929
17086
  if (!response.ok) {
@@ -16942,7 +17099,8 @@ function createSSSStrategy(config) {
16942
17099
  token,
16943
17100
  providerType,
16944
17101
  "passkey",
16945
- input.credentialId
17102
+ input.credentialId,
17103
+ tenantId
16946
17104
  );
16947
17105
  if (!result?.encryptedShare) {
16948
17106
  throw new Error("No passkey recovery share found");
@@ -16966,7 +17124,9 @@ function createSSSStrategy(config) {
16966
17124
  serverUrl,
16967
17125
  token,
16968
17126
  providerType,
16969
- "phrase"
17127
+ "phrase",
17128
+ void 0,
17129
+ tenantId
16970
17130
  );
16971
17131
  recoveryShareVersion = phraseRecord?.shareVersion;
16972
17132
  } catch {
@@ -16999,7 +17159,8 @@ function createSSSStrategy(config) {
16999
17159
  serverUrl,
17000
17160
  token,
17001
17161
  providerType,
17002
- recoveryShareVersion
17162
+ recoveryShareVersion,
17163
+ tenantId
17003
17164
  );
17004
17165
  if (!serverData?.authShare) {
17005
17166
  throw new Error("No auth share found on server");
@@ -17036,12 +17197,12 @@ function createSSSStrategy(config) {
17036
17197
  const { shares } = await splitAndVerify(privateKey);
17037
17198
  lastEmailShare = shares.emailShare;
17038
17199
  await storage.storeDeviceShare(shares.deviceShare, activeStorageId);
17039
- const serverData = await fetchAuthShareRaw(serverUrl, token, providerType);
17200
+ const serverData = await fetchAuthShareRaw(serverUrl, token, providerType, void 0, tenantId);
17040
17201
  const primaryDid = serverData?.primaryDid || "";
17041
- const { shareVersion } = await putAuthShare(serverUrl, token, providerType, shares.authShare, primaryDid, vpJwt);
17202
+ const { shareVersion } = await putAuthShare(serverUrl, token, providerType, shares.authShare, primaryDid, vpJwt, tenantId);
17042
17203
  await storage.storeShareVersion(shareVersion, activeStorageId);
17043
17204
  if (enableEmailBackupShare && input.method !== "email" && lastEmailShare) {
17044
- const resend = hasRecoveryEmail ? sendEmailShareToRecoveryEmail(serverUrl, token, providerType, lastEmailShare, shareVersion) : authUser?.email ? sendEmailBackupShare(serverUrl, token, providerType, lastEmailShare, authUser.email, shareVersion) : Promise.resolve();
17205
+ const resend = hasRecoveryEmail ? sendEmailShareToRecoveryEmail(serverUrl, token, providerType, lastEmailShare, shareVersion, tenantId) : authUser?.email ? sendEmailBackupShare(serverUrl, token, providerType, lastEmailShare, authUser.email, shareVersion, tenantId) : Promise.resolve();
17045
17206
  resend.catch((e) => console.warn("Email backup share re-send failed (non-fatal):", e));
17046
17207
  lastEmailShare = void 0;
17047
17208
  }
@@ -17060,7 +17221,7 @@ function createSSSStrategy(config) {
17060
17221
  },
17061
17222
  credentialId: credential.credentialId,
17062
17223
  shareVersion
17063
- }, vpJwt);
17224
+ }, vpJwt, tenantId);
17064
17225
  return { method: "passkey", credentialId: credential.credentialId };
17065
17226
  }
17066
17227
  case "phrase": {
@@ -17068,7 +17229,7 @@ function createSSSStrategy(config) {
17068
17229
  await postRecoveryMethod(serverUrl, token, providerType, {
17069
17230
  type: "phrase",
17070
17231
  shareVersion
17071
- }, vpJwt);
17232
+ }, vpJwt, tenantId);
17072
17233
  return { method: "phrase", phrase };
17073
17234
  }
17074
17235
  case "backup": {
@@ -17088,7 +17249,7 @@ function createSSSStrategy(config) {
17088
17249
  await postRecoveryMethod(serverUrl, token, providerType, {
17089
17250
  type: "backup",
17090
17251
  shareVersion
17091
- }, vpJwt);
17252
+ }, vpJwt, tenantId);
17092
17253
  return { method: "backup", backupFile };
17093
17254
  }
17094
17255
  case "email": {
@@ -17097,12 +17258,13 @@ function createSSSStrategy(config) {
17097
17258
  token,
17098
17259
  providerType,
17099
17260
  shares.emailShare,
17100
- shareVersion
17261
+ shareVersion,
17262
+ tenantId
17101
17263
  );
17102
17264
  await postRecoveryMethod(serverUrl, token, providerType, {
17103
17265
  type: "email",
17104
17266
  shareVersion
17105
- }, vpJwt);
17267
+ }, vpJwt, tenantId);
17106
17268
  hasRecoveryEmail = true;
17107
17269
  return { method: "email" };
17108
17270
  }
@@ -17110,7 +17272,7 @@ function createSSSStrategy(config) {
17110
17272
  },
17111
17273
  async getAvailableRecoveryMethods(token, providerType) {
17112
17274
  try {
17113
- const serverData = await fetchAuthShareRaw(serverUrl, token, providerType);
17275
+ const serverData = await fetchAuthShareRaw(serverUrl, token, providerType, void 0, tenantId);
17114
17276
  const methods = serverData?.recoveryMethods || [];
17115
17277
  if (enableEmailBackupShare && !methods.some((m) => m.type === "email")) {
17116
17278
  methods.push({ type: "email", createdAt: /* @__PURE__ */ new Date() });
@@ -17125,7 +17287,7 @@ function createSSSStrategy(config) {
17125
17287
  async upgradeContactMethod(token, providerType, previousPhone, email, code) {
17126
17288
  const res = await fetch(`${serverUrl}/keys/upgrade-contact-method`, {
17127
17289
  method: "POST",
17128
- headers: { "Content-Type": "application/json" },
17290
+ headers: buildHeaders(token, void 0, tenantId),
17129
17291
  body: JSON.stringify({
17130
17292
  authToken: token,
17131
17293
  providerType,
@@ -17155,14 +17317,15 @@ function createSSSStrategy(config) {
17155
17317
  token,
17156
17318
  providerType,
17157
17319
  lastEmailShare,
17158
- lastShareVersion
17320
+ lastShareVersion,
17321
+ tenantId
17159
17322
  );
17160
17323
  } else {
17161
17324
  if (!email) {
17162
17325
  console.warn("Cannot send email backup share: no email address");
17163
17326
  return;
17164
17327
  }
17165
- await sendEmailBackupShare(serverUrl, token, providerType, lastEmailShare, email, lastShareVersion);
17328
+ await sendEmailBackupShare(serverUrl, token, providerType, lastEmailShare, email, lastShareVersion, tenantId);
17166
17329
  }
17167
17330
  lastEmailShare = void 0;
17168
17331
  lastShareVersion = void 0;