@learncard/sss-key-manager 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -55,6 +55,7 @@ var require_types_cjs_development = __commonJS({
55
55
  var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
56
56
  var index_exports2 = {};
57
57
  __export2(index_exports2, {
58
+ ACT_AS_HEADER: /* @__PURE__ */ __name(() => ACT_AS_HEADER, "ACT_AS_HEADER"),
58
59
  AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX: /* @__PURE__ */ __name(() => AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX, "AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX"),
59
60
  AchievementCredentialValidator: /* @__PURE__ */ __name(() => AchievementCredentialValidator, "AchievementCredentialValidator"),
60
61
  AchievementCriteriaValidator: /* @__PURE__ */ __name(() => AchievementCriteriaValidator, "AchievementCriteriaValidator"),
@@ -117,6 +118,7 @@ var require_types_cjs_development = __commonJS({
117
118
  ConsentFlowContractValidator: /* @__PURE__ */ __name(() => ConsentFlowContractValidator, "ConsentFlowContractValidator"),
118
119
  ConsentFlowDataForDidQueryValidator: /* @__PURE__ */ __name(() => ConsentFlowDataForDidQueryValidator, "ConsentFlowDataForDidQueryValidator"),
119
120
  ConsentFlowDataQueryValidator: /* @__PURE__ */ __name(() => ConsentFlowDataQueryValidator, "ConsentFlowDataQueryValidator"),
121
+ ConsentFlowGuardianApprovalValidator: /* @__PURE__ */ __name(() => ConsentFlowGuardianApprovalValidator, "ConsentFlowGuardianApprovalValidator"),
120
122
  ConsentFlowTermValidator: /* @__PURE__ */ __name(() => ConsentFlowTermValidator, "ConsentFlowTermValidator"),
121
123
  ConsentFlowTermsQueryValidator: /* @__PURE__ */ __name(() => ConsentFlowTermsQueryValidator, "ConsentFlowTermsQueryValidator"),
122
124
  ConsentFlowTermsStatusValidator: /* @__PURE__ */ __name(() => ConsentFlowTermsStatusValidator, "ConsentFlowTermsStatusValidator"),
@@ -193,10 +195,18 @@ var require_types_cjs_development = __commonJS({
193
195
  IdentifierTypeValidator: /* @__PURE__ */ __name(() => IdentifierTypeValidator, "IdentifierTypeValidator"),
194
196
  IdentityObjectValidator: /* @__PURE__ */ __name(() => IdentityObjectValidator, "IdentityObjectValidator"),
195
197
  ImageValidator: /* @__PURE__ */ __name(() => ImageValidator, "ImageValidator"),
198
+ InboxBatchErrorReasonValidator: /* @__PURE__ */ __name(() => InboxBatchErrorReasonValidator, "InboxBatchErrorReasonValidator"),
199
+ InboxBatchReceiptValidator: /* @__PURE__ */ __name(() => InboxBatchReceiptValidator, "InboxBatchReceiptValidator"),
200
+ InboxBatchStatusValidator: /* @__PURE__ */ __name(() => InboxBatchStatusValidator, "InboxBatchStatusValidator"),
196
201
  InboxCredentialQueryValidator: /* @__PURE__ */ __name(() => InboxCredentialQueryValidator, "InboxCredentialQueryValidator"),
202
+ InboxCredentialRefreshReceiptValidator: /* @__PURE__ */ __name(() => InboxCredentialRefreshReceiptValidator, "InboxCredentialRefreshReceiptValidator"),
197
203
  InboxCredentialValidator: /* @__PURE__ */ __name(() => InboxCredentialValidator, "InboxCredentialValidator"),
198
204
  IncrementCounterEventValidator: /* @__PURE__ */ __name(() => IncrementCounterEventValidator, "IncrementCounterEventValidator"),
199
205
  InstalledAppValidator: /* @__PURE__ */ __name(() => InstalledAppValidator, "InstalledAppValidator"),
206
+ IssueInboxCredentialBatchItemResultValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialBatchItemResultValidator, "IssueInboxCredentialBatchItemResultValidator"),
207
+ IssueInboxCredentialBatchItemValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialBatchItemValidator, "IssueInboxCredentialBatchItemValidator"),
208
+ IssueInboxCredentialBatchResponseValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialBatchResponseValidator, "IssueInboxCredentialBatchResponseValidator"),
209
+ IssueInboxCredentialBatchValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialBatchValidator, "IssueInboxCredentialBatchValidator"),
200
210
  IssueInboxCredentialResponseValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialResponseValidator, "IssueInboxCredentialResponseValidator"),
201
211
  IssueInboxCredentialValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialValidator, "IssueInboxCredentialValidator"),
202
212
  IssueInboxSigningAuthorityValidator: /* @__PURE__ */ __name(() => IssueInboxSigningAuthorityValidator, "IssueInboxSigningAuthorityValidator"),
@@ -245,6 +255,7 @@ var require_types_cjs_development = __commonJS({
245
255
  LaunchTypeValidator: /* @__PURE__ */ __name(() => LaunchTypeValidator, "LaunchTypeValidator"),
246
256
  LearnCardRefreshAuthorizationValidator: /* @__PURE__ */ __name(() => LearnCardRefreshAuthorizationValidator, "LearnCardRefreshAuthorizationValidator"),
247
257
  LinkProviderFrameworkInputValidator: /* @__PURE__ */ __name(() => LinkProviderFrameworkInputValidator, "LinkProviderFrameworkInputValidator"),
258
+ ManagedCredentialRefreshReceiptValidator: /* @__PURE__ */ __name(() => ManagedCredentialRefreshReceiptValidator, "ManagedCredentialRefreshReceiptValidator"),
248
259
  ManagedCredentialRefreshServiceValidator: /* @__PURE__ */ __name(() => ManagedCredentialRefreshServiceValidator, "ManagedCredentialRefreshServiceValidator"),
249
260
  PaginatedAppStoreListingsValidator: /* @__PURE__ */ __name(() => PaginatedAppStoreListingsValidator, "PaginatedAppStoreListingsValidator"),
250
261
  PaginatedBoostRecipientsValidator: /* @__PURE__ */ __name(() => PaginatedBoostRecipientsValidator, "PaginatedBoostRecipientsValidator"),
@@ -271,6 +282,8 @@ var require_types_cjs_development = __commonJS({
271
282
  PaginatedVisibleLCNProfilesValidator: /* @__PURE__ */ __name(() => PaginatedVisibleLCNProfilesValidator, "PaginatedVisibleLCNProfilesValidator"),
272
283
  PaginationOptionsValidator: /* @__PURE__ */ __name(() => PaginationOptionsValidator, "PaginationOptionsValidator"),
273
284
  PaginationResponseValidator: /* @__PURE__ */ __name(() => PaginationResponseValidator, "PaginationResponseValidator"),
285
+ PrepareRefreshableSendInputValidator: /* @__PURE__ */ __name(() => PrepareRefreshableSendInputValidator, "PrepareRefreshableSendInputValidator"),
286
+ PrepareRefreshableSendResultValidator: /* @__PURE__ */ __name(() => PrepareRefreshableSendResultValidator, "PrepareRefreshableSendResultValidator"),
274
287
  ProfileValidator: /* @__PURE__ */ __name(() => ProfileValidator, "ProfileValidator"),
275
288
  ProfileVisibilityEnum: /* @__PURE__ */ __name(() => ProfileVisibilityEnum, "ProfileVisibilityEnum"),
276
289
  PromotionLevelValidator: /* @__PURE__ */ __name(() => PromotionLevelValidator, "PromotionLevelValidator"),
@@ -296,6 +309,7 @@ var require_types_cjs_development = __commonJS({
296
309
  SendAiSessionCredentialEventValidator: /* @__PURE__ */ __name(() => SendAiSessionCredentialEventValidator, "SendAiSessionCredentialEventValidator"),
297
310
  SendBoostInputValidator: /* @__PURE__ */ __name(() => SendBoostInputValidator, "SendBoostInputValidator"),
298
311
  SendBoostResponseValidator: /* @__PURE__ */ __name(() => SendBoostResponseValidator, "SendBoostResponseValidator"),
312
+ SendBoostTemplateValidator: /* @__PURE__ */ __name(() => SendBoostTemplateValidator, "SendBoostTemplateValidator"),
299
313
  SendBrandingOptionsValidator: /* @__PURE__ */ __name(() => SendBrandingOptionsValidator, "SendBrandingOptionsValidator"),
300
314
  SendCredentialEventValidator: /* @__PURE__ */ __name(() => SendCredentialEventValidator, "SendCredentialEventValidator"),
301
315
  SendInboxResponseValidator: /* @__PURE__ */ __name(() => SendInboxResponseValidator, "SendInboxResponseValidator"),
@@ -15763,14 +15777,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15763
15777
  }).catchall(external_exports.any());
15764
15778
  var ProofValidator = external_exports.object({
15765
15779
  type: external_exports.string(),
15766
- created: external_exports.string(),
15780
+ created: external_exports.string().optional(),
15767
15781
  challenge: external_exports.string().optional(),
15768
15782
  domain: external_exports.string().optional(),
15769
15783
  nonce: external_exports.string().optional(),
15770
15784
  proofPurpose: external_exports.string(),
15771
15785
  verificationMethod: external_exports.string(),
15772
15786
  jws: external_exports.string().optional()
15773
- }).catchall(external_exports.any());
15787
+ }).catchall(external_exports.any()).superRefine((proof, ctx) => {
15788
+ if (proof.created === void 0 && (proof.type !== "DataIntegrityProof" || proof.cryptosuite !== "ecdsa-rdfc-2019")) {
15789
+ ctx.addIssue({
15790
+ code: "custom",
15791
+ path: ["created"],
15792
+ message: "created is required for this proof suite"
15793
+ });
15794
+ }
15795
+ });
15774
15796
  var VCValidator = UnsignedVCValidator.extend({
15775
15797
  proof: ProofValidator.or(ProofValidator.array())
15776
15798
  });
@@ -16212,6 +16234,204 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16212
16234
  $or: BaseStringQuery.array()
16213
16235
  })
16214
16236
  ]);
16237
+ var LearnCardRefreshAuthorizationValidator = external_exports.object({ type: external_exports.literal("LearnCardDIDAuth") }).catchall(external_exports.any());
16238
+ var ManagedCredentialRefreshServiceValidator = external_exports.object({
16239
+ id: external_exports.string().min(1),
16240
+ type: external_exports.literal("LearnCardCredentialRefresh2026"),
16241
+ authorization: LearnCardRefreshAuthorizationValidator.optional()
16242
+ }).catchall(external_exports.any());
16243
+ var StandardCredentialRefreshServiceValidator = external_exports.object({
16244
+ id: external_exports.string().min(1),
16245
+ type: external_exports.literal("1EdTechCredentialRefresh")
16246
+ }).catchall(external_exports.any());
16247
+ var SupportedCredentialRefreshServiceValidator = external_exports.union([
16248
+ ManagedCredentialRefreshServiceValidator,
16249
+ StandardCredentialRefreshServiceValidator
16250
+ ]);
16251
+ var AllocateCredentialRefreshInputValidator = external_exports.object({
16252
+ holder: external_exports.object({
16253
+ profileId: external_exports.string().optional(),
16254
+ did: external_exports.string().min(1)
16255
+ }),
16256
+ credentialId: external_exports.string().min(1)
16257
+ });
16258
+ var AllocateCredentialRefreshResultValidator = external_exports.object({
16259
+ refreshId: external_exports.string().min(1),
16260
+ refreshService: ManagedCredentialRefreshServiceValidator.extend({
16261
+ authorization: LearnCardRefreshAuthorizationValidator
16262
+ })
16263
+ });
16264
+ var ManagedCredentialRefreshReceiptValidator = external_exports.object({
16265
+ refreshId: external_exports.string().min(1),
16266
+ refreshService: ManagedCredentialRefreshServiceValidator,
16267
+ credentialId: external_exports.string().min(1),
16268
+ issuerDid: external_exports.string().min(1),
16269
+ holderDid: external_exports.string().min(1),
16270
+ credentialStatus: CredentialStatusValidator.or(
16271
+ CredentialStatusValidator.array()
16272
+ ).optional()
16273
+ }).strip();
16274
+ var InboxCredentialRefreshReceiptValidator = ManagedCredentialRefreshReceiptValidator.omit(
16275
+ { holderDid: true }
16276
+ ).extend({ holderDid: external_exports.string().min(1).optional() });
16277
+ var CredentialRefreshSigningModeValidator = external_exports.enum(["issuer-signed", "signing-authority"]);
16278
+ var PublishCredentialRefreshBaseFields = {
16279
+ refreshId: external_exports.string().min(1),
16280
+ notifyHolder: external_exports.boolean().optional(),
16281
+ updateSummary: external_exports.string().optional(),
16282
+ idempotencyKey: external_exports.string().optional()
16283
+ };
16284
+ var PublishIssuerSignedRefreshValidator = external_exports.object({
16285
+ ...PublishCredentialRefreshBaseFields,
16286
+ mode: external_exports.literal("issuer-signed"),
16287
+ signedCredential: VCValidator
16288
+ });
16289
+ var PublishSigningAuthorityRefreshValidator = external_exports.object({
16290
+ ...PublishCredentialRefreshBaseFields,
16291
+ mode: external_exports.literal("signing-authority"),
16292
+ credential: UnsignedVCValidator,
16293
+ signingAuthority: external_exports.object({
16294
+ type: external_exports.string().min(1)
16295
+ }).catchall(external_exports.any())
16296
+ });
16297
+ var PublishCredentialRefreshInputValidator = external_exports.object({
16298
+ ...PublishCredentialRefreshBaseFields,
16299
+ mode: CredentialRefreshSigningModeValidator,
16300
+ signedCredential: VCValidator.optional(),
16301
+ credential: UnsignedVCValidator.optional(),
16302
+ signingAuthority: external_exports.object({
16303
+ type: external_exports.string().min(1)
16304
+ }).catchall(external_exports.any()).optional()
16305
+ }).superRefine((input, ctx) => {
16306
+ if (input.mode === "issuer-signed" && !input.signedCredential) {
16307
+ ctx.addIssue({
16308
+ code: "custom",
16309
+ path: ["signedCredential"],
16310
+ message: "signedCredential is required for issuer-signed publication"
16311
+ });
16312
+ }
16313
+ if (input.mode === "issuer-signed" && (input.credential !== void 0 || input.signingAuthority !== void 0)) {
16314
+ ctx.addIssue({
16315
+ code: "custom",
16316
+ path: ["mode"],
16317
+ message: "issuer-signed publication cannot include signing-authority fields"
16318
+ });
16319
+ }
16320
+ if (input.mode === "signing-authority") {
16321
+ if (input.signedCredential !== void 0) {
16322
+ ctx.addIssue({
16323
+ code: "custom",
16324
+ path: ["signedCredential"],
16325
+ message: "signing-authority publication cannot include signedCredential"
16326
+ });
16327
+ }
16328
+ if (!input.credential) {
16329
+ ctx.addIssue({
16330
+ code: "custom",
16331
+ path: ["credential"],
16332
+ message: "credential is required for signing-authority publication"
16333
+ });
16334
+ }
16335
+ if (!input.signingAuthority) {
16336
+ ctx.addIssue({
16337
+ code: "custom",
16338
+ path: ["signingAuthority"],
16339
+ message: "signingAuthority is required for signing-authority publication"
16340
+ });
16341
+ }
16342
+ }
16343
+ });
16344
+ var PublishCredentialRefreshNotificationValidator = external_exports.enum([
16345
+ "queued",
16346
+ "suppressed",
16347
+ "not-applicable",
16348
+ /** Publication succeeded, but the post-commit notification enqueue must be retried. */
16349
+ "delivery-failed"
16350
+ ]);
16351
+ var PublishCredentialRefreshResultValidator = external_exports.object({
16352
+ refreshId: external_exports.string().min(1),
16353
+ version: external_exports.number().int().positive(),
16354
+ publishedAt: external_exports.string().min(1),
16355
+ notification: PublishCredentialRefreshNotificationValidator
16356
+ });
16357
+ var CredentialRefreshVersionMetadataValidator = external_exports.object({
16358
+ version: external_exports.number().int().positive(),
16359
+ publishedAt: external_exports.string().min(1),
16360
+ effectiveAt: external_exports.string().optional(),
16361
+ etag: external_exports.string().optional(),
16362
+ signingMode: CredentialRefreshSigningModeValidator.optional(),
16363
+ updateSummary: external_exports.string().optional()
16364
+ });
16365
+ var GetCredentialRefreshHistoryInputValidator = external_exports.object({
16366
+ refreshId: external_exports.string().min(1),
16367
+ cursor: external_exports.string().optional(),
16368
+ limit: external_exports.number().int().positive().optional()
16369
+ });
16370
+ var GetCredentialRefreshHistoryResultValidator = external_exports.object({
16371
+ records: CredentialRefreshVersionMetadataValidator.array(),
16372
+ hasMore: external_exports.boolean(),
16373
+ cursor: external_exports.string().optional()
16374
+ });
16375
+ var CredentialRefreshChallengeValidator = external_exports.object({
16376
+ challenge: external_exports.string().min(1),
16377
+ expiresAt: external_exports.string().min(1),
16378
+ domain: external_exports.string().optional(),
16379
+ scheme: external_exports.literal("LearnCardDIDAuth").optional()
16380
+ });
16381
+ var PublicCredentialRefreshEnvelopeValidator = external_exports.object({
16382
+ format: external_exports.literal("vc"),
16383
+ credential: VCValidator,
16384
+ etag: external_exports.string().optional()
16385
+ });
16386
+ var JweCredentialRefreshEnvelopeValidator = external_exports.object({
16387
+ format: external_exports.literal("jwe"),
16388
+ jwe: JWEValidator,
16389
+ etag: external_exports.string().optional(),
16390
+ /** Present on LearnCard-managed endpoints; optional for interoperable JWE services. */
16391
+ version: external_exports.number().int().positive().optional()
16392
+ });
16393
+ var CredentialRefreshResponseEnvelopeValidator = external_exports.discriminatedUnion("format", [
16394
+ PublicCredentialRefreshEnvelopeValidator,
16395
+ JweCredentialRefreshEnvelopeValidator
16396
+ ]);
16397
+ var CredentialRefreshFailureCodeValidator = external_exports.enum([
16398
+ "UNAVAILABLE",
16399
+ "TIMEOUT",
16400
+ "UNSUPPORTED_SERVICE",
16401
+ "UNAUTHORIZED",
16402
+ "MALFORMED_RESPONSE",
16403
+ "INVALID_PROOF",
16404
+ "ISSUER_MISMATCH",
16405
+ "ID_MISMATCH",
16406
+ "ROLLBACK",
16407
+ "REVOKED",
16408
+ "UNSAFE_ENDPOINT"
16409
+ ]);
16410
+ var CredentialRefreshUpdatedResultValidator = external_exports.object({
16411
+ status: external_exports.literal("updated"),
16412
+ credential: VCValidator,
16413
+ etag: external_exports.string().optional(),
16414
+ managedVersion: external_exports.number().int().positive().optional()
16415
+ });
16416
+ var CredentialRefreshUnchangedResultValidator = external_exports.object({
16417
+ status: external_exports.literal("unchanged"),
16418
+ checkedAt: external_exports.string().min(1),
16419
+ etag: external_exports.string().optional()
16420
+ });
16421
+ var CredentialRefreshUnsupportedResultValidator = external_exports.object({
16422
+ status: external_exports.literal("unsupported")
16423
+ });
16424
+ var CredentialRefreshFailedResultValidator = external_exports.object({
16425
+ status: external_exports.literal("failed"),
16426
+ code: CredentialRefreshFailureCodeValidator,
16427
+ retryable: external_exports.boolean()
16428
+ });
16429
+ var CredentialRefreshResultValidator = external_exports.discriminatedUnion("status", [
16430
+ CredentialRefreshUpdatedResultValidator,
16431
+ CredentialRefreshUnchangedResultValidator,
16432
+ CredentialRefreshUnsupportedResultValidator,
16433
+ CredentialRefreshFailedResultValidator
16434
+ ]);
16215
16435
  var LCNProfileDisplayValidator = external_exports.object({
16216
16436
  backgroundColor: external_exports.string().optional(),
16217
16437
  backgroundImage: external_exports.string().optional(),
@@ -16547,7 +16767,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16547
16767
  "Options for email/phone recipients (Universal Inbox)"
16548
16768
  ),
16549
16769
  templateData: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
16550
- integrationId: external_exports.string().optional().describe("Integration ID for activity tracking")
16770
+ integrationId: external_exports.string().optional().describe("Integration ID for activity tracking"),
16771
+ refresh: external_exports.boolean().optional().describe(
16772
+ "Request managed credential refresh for this send. Profile/DID recipients use immediate issuance; email/phone recipients use deferred Universal Inbox signing and bind the holder at claim."
16773
+ ),
16774
+ idempotencyKey: external_exports.string().min(1).max(200).optional().describe(
16775
+ "Caller-chosen key that makes a managed refresh send (refresh: true) safe to retry as a whole: retries with the same key reuse the same boost, refresh allocation and result. Reusing a key for a different request is rejected. With signedCredential, requires prior tRPC prepareRefreshableSend; direct REST callers omit the key and retry the exact signed credential and templateUri."
16776
+ )
16551
16777
  }).refine((data) => data.templateUri || data.template || data.signedCredential, {
16552
16778
  message: "Either templateUri, template, or signedCredential must be provided.",
16553
16779
  path: ["templateUri"]
@@ -16562,8 +16788,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16562
16788
  message: "guardianEmail must differ from recipient (self-approval not allowed)",
16563
16789
  path: ["options", "guardianEmail"]
16564
16790
  }
16565
- );
16791
+ ).refine((data) => !data.idempotencyKey || data.refresh === true, {
16792
+ message: "idempotencyKey is only supported with refresh: true.",
16793
+ path: ["idempotencyKey"]
16794
+ });
16566
16795
  var SendInboxResponseValidator = external_exports.object({
16796
+ refresh: InboxCredentialRefreshReceiptValidator.optional(),
16567
16797
  issuanceId: external_exports.string(),
16568
16798
  status: external_exports.enum(["PENDING", "ISSUED", "EXPIRED", "DELIVERED", "CLAIMED"]),
16569
16799
  claimUrl: external_exports.string().url().optional().describe("Present when suppressDelivery=true"),
@@ -16578,8 +16808,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16578
16808
  activityId: external_exports.string().describe("Links to the activity lifecycle for this issuance"),
16579
16809
  inbox: SendInboxResponseValidator.optional().describe(
16580
16810
  "Present when sent via email/phone (Universal Inbox)"
16811
+ ),
16812
+ refresh: ManagedCredentialRefreshReceiptValidator.optional().describe(
16813
+ "Present when managed refresh was requested: issuance metadata the issuer keeps to publish future updates"
16581
16814
  )
16582
16815
  });
16816
+ var PrepareRefreshableSendInputValidator = external_exports.object({
16817
+ recipient: external_exports.string(),
16818
+ templateUri: external_exports.string().optional(),
16819
+ template: SendBoostTemplateValidator.optional(),
16820
+ contractUri: external_exports.string().optional(),
16821
+ templateData: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
16822
+ integrationId: external_exports.string().optional(),
16823
+ /** Credential ID to allocate for; generated server-side when omitted. */
16824
+ credentialId: external_exports.string().min(1).optional(),
16825
+ idempotencyKey: external_exports.string().min(1).max(200).optional()
16826
+ }).refine((data) => Boolean(data.templateUri) !== Boolean(data.template), {
16827
+ message: "Provide exactly one of templateUri or template."
16828
+ });
16829
+ var PrepareRefreshableSendResultValidator = external_exports.object({
16830
+ boostUri: external_exports.string(),
16831
+ credentialId: external_exports.string(),
16832
+ refreshId: external_exports.string(),
16833
+ refreshService: ManagedCredentialRefreshServiceValidator,
16834
+ /** The DID to use as credentialSubject.id (recipient DID, or the profile's did:web). */
16835
+ holderDid: external_exports.string(),
16836
+ /** Present when this idempotencyKey already completed: return it without signing. */
16837
+ completed: SendBoostResponseValidator.optional()
16838
+ });
16583
16839
  var SendInputValidator = external_exports.discriminatedUnion("type", [SendBoostInputValidator]);
16584
16840
  var SendResponseValidator = external_exports.discriminatedUnion("type", [SendBoostResponseValidator]);
16585
16841
  var ConsentFlowTermsStatusValidator = external_exports.enum(["live", "stale", "withdrawn"]);
@@ -16655,15 +16911,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16655
16911
  var PaginatedConsentFlowDataValidator = PaginationResponseValidator.extend({
16656
16912
  records: ConsentFlowContractDataValidator.array()
16657
16913
  });
16658
- var ConsentFlowContractDataForDidValidator = external_exports.object({
16659
- credentials: external_exports.object({ category: external_exports.string(), uri: external_exports.string() }).array(),
16660
- personal: external_exports.record(external_exports.string(), external_exports.string()).default({}),
16661
- date: external_exports.string(),
16662
- contractUri: external_exports.string()
16663
- });
16664
- var PaginatedConsentFlowDataForDidValidator = PaginationResponseValidator.extend({
16665
- records: ConsentFlowContractDataForDidValidator.array()
16666
- });
16667
16914
  var ConsentFlowTermValidator = external_exports.object({
16668
16915
  sharing: external_exports.boolean().optional(),
16669
16916
  shared: external_exports.string().array().optional(),
@@ -16697,6 +16944,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16697
16944
  status: ConsentFlowTermsStatusValidator
16698
16945
  }).array()
16699
16946
  });
16947
+ var ConsentFlowGuardianApprovalValidator = external_exports.object({
16948
+ guardianProfileId: external_exports.string(),
16949
+ guardianDid: external_exports.string(),
16950
+ approvedAt: external_exports.string().datetime(),
16951
+ contractUpdatedAt: external_exports.string()
16952
+ });
16953
+ var ConsentFlowContractDataForDidValidator = external_exports.object({
16954
+ credentials: external_exports.object({ category: external_exports.string(), uri: external_exports.string() }).array(),
16955
+ personal: external_exports.record(external_exports.string(), external_exports.string()).default({}),
16956
+ date: external_exports.string(),
16957
+ createdAt: external_exports.string().optional(),
16958
+ contractUpdatedAt: external_exports.string(),
16959
+ contractExpiresAt: external_exports.string().optional(),
16960
+ reasonForAccessing: external_exports.string().optional(),
16961
+ guardian: external_exports.object({
16962
+ required: external_exports.boolean(),
16963
+ approved: external_exports.boolean(),
16964
+ approval: ConsentFlowGuardianApprovalValidator.optional()
16965
+ }),
16966
+ contractUri: external_exports.string(),
16967
+ termsUri: external_exports.string(),
16968
+ status: ConsentFlowTermsStatusValidator,
16969
+ expiresAt: external_exports.string().optional(),
16970
+ terms: ConsentFlowTermsValidator
16971
+ });
16972
+ var PaginatedConsentFlowDataForDidValidator = PaginationResponseValidator.extend({
16973
+ records: ConsentFlowContractDataForDidValidator.array()
16974
+ });
16700
16975
  var ConsentFlowContractQueryValidator = external_exports.object({
16701
16976
  read: external_exports.object({
16702
16977
  anonymize: external_exports.boolean().optional(),
@@ -16757,6 +17032,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16757
17032
  expiresAt: external_exports.string().optional(),
16758
17033
  oneTime: external_exports.boolean().optional(),
16759
17034
  terms: ConsentFlowTermsValidator.optional(),
17035
+ guardianApproval: ConsentFlowGuardianApprovalValidator.optional(),
16760
17036
  id: external_exports.string(),
16761
17037
  action: ConsentFlowTransactionActionValidator,
16762
17038
  date: external_exports.string(),
@@ -16878,6 +17154,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16878
17154
  webhookUrl: external_exports.string().optional()
16879
17155
  });
16880
17156
  var AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX = "auth-grant:";
17157
+ var ACT_AS_HEADER = "X-LearnCard-Act-As";
16881
17158
  var AuthGrantValidator = external_exports.object({
16882
17159
  id: external_exports.string(),
16883
17160
  name: external_exports.string(),
@@ -16890,6 +17167,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16890
17167
  }, "error")
16891
17168
  }),
16892
17169
  scope: external_exports.string(),
17170
+ actAs: external_exports.string().optional(),
16893
17171
  createdAt: external_exports.iso.datetime({ error: "createdAt must be a valid ISO 8601 datetime string" }),
16894
17172
  expiresAt: external_exports.iso.datetime({ error: "expiresAt must be a valid ISO 8601 datetime string" }).nullish().optional()
16895
17173
  });
@@ -16961,6 +17239,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16961
17239
  sessionJwt: external_exports.string()
16962
17240
  });
16963
17241
  var InboxCredentialValidator = external_exports.object({
17242
+ refresh: InboxCredentialRefreshReceiptValidator.optional(),
17243
+ refreshId: external_exports.string().optional(),
16964
17244
  id: external_exports.string(),
16965
17245
  credential: external_exports.string().optional(),
16966
17246
  isSigned: external_exports.boolean(),
@@ -17015,12 +17295,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17015
17295
  templateUri: external_exports.string().optional().describe(
17016
17296
  "URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field."
17017
17297
  ),
17298
+ refresh: external_exports.boolean().optional().describe(
17299
+ "Allocate managed refresh before signing. Requires unsigned content and a registered signing authority; binds the holder on claim."
17300
+ ),
17301
+ idempotencyKey: external_exports.string().min(1).max(200).optional(),
17018
17302
  // === OPTIONAL FEATURES ===
17019
17303
  // Add major, distinct features at the top level.
17020
17304
  //consentRequest: ConsentRequestValidator.optional(),
17021
17305
  // === PROCESS CONFIGURATION (Optional) ===
17022
17306
  // HOW should this issuance be handled?
17023
17307
  configuration: external_exports.object({
17308
+ guardianEmail: external_exports.string().email().optional().describe(
17309
+ "Require approval from this guardian before the recipient can claim. Must differ from the recipient email."
17310
+ ),
17024
17311
  signingAuthority: IssueInboxSigningAuthorityValidator.optional().describe(
17025
17312
  "The signing authority to use for the credential. If not provided, the users default signing authority will be used if the credential is not signed."
17026
17313
  ),
@@ -17074,17 +17361,130 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17074
17361
  }).optional().describe(
17075
17362
  "Configuration for the credential issuance. If not provided, the default configuration will be used."
17076
17363
  )
17364
+ }).refine((data) => !data.idempotencyKey || data.refresh === true, {
17365
+ message: "idempotencyKey requires refresh: true."
17077
17366
  }).refine((data) => data.credential || data.templateUri, {
17078
17367
  message: "Either credential or templateUri must be provided.",
17079
17368
  path: ["credential"]
17080
- });
17369
+ }).refine(
17370
+ (data) => !data.configuration?.guardianEmail || data.recipient.type !== "email" || data.configuration.guardianEmail.toLowerCase() !== data.recipient.value.toLowerCase(),
17371
+ {
17372
+ message: "guardianEmail must differ from recipient (self-approval not allowed)",
17373
+ path: ["configuration", "guardianEmail"]
17374
+ }
17375
+ );
17081
17376
  var IssueInboxCredentialResponseValidator = external_exports.object({
17377
+ refresh: InboxCredentialRefreshReceiptValidator.optional(),
17082
17378
  issuanceId: external_exports.string(),
17083
17379
  status: LCNInboxStatusEnumValidator,
17084
17380
  recipient: ContactMethodQueryValidator,
17085
17381
  claimUrl: external_exports.string().url().optional(),
17086
17382
  recipientDid: external_exports.string().optional()
17087
17383
  });
17384
+ var InboxBatchConfigurationValidator = IssueInboxCredentialValidator.shape.configuration.unwrap().extend({
17385
+ refresh: IssueInboxCredentialValidator.shape.refresh.describe(
17386
+ "Enable managed refresh by default. An item configuration.refresh overrides this value, including false."
17387
+ ),
17388
+ delivery: IssueInboxCredentialValidator.shape.configuration.unwrap().shape.delivery.unwrap().extend({ suppress: external_exports.boolean().optional() }).optional()
17389
+ });
17390
+ var InboxBatchItemConfigurationValidator = InboxBatchConfigurationValidator.extend({
17391
+ guardianEmail: InboxBatchConfigurationValidator.shape.guardianEmail.nullable().describe(
17392
+ "Require guardian approval, or set null to clear a batch-level guardianEmail for this item."
17393
+ )
17394
+ });
17395
+ var IssueInboxCredentialBatchItemValidator = external_exports.object({
17396
+ ...IssueInboxCredentialValidator.shape,
17397
+ configuration: InboxBatchItemConfigurationValidator.optional(),
17398
+ idempotencyKey: external_exports.string().max(256).optional()
17399
+ }).refine((data) => data.credential || data.templateUri, {
17400
+ message: "Either credential or templateUri must be provided.",
17401
+ path: ["credential"]
17402
+ }).describe(
17403
+ "One issuance: provide credential or templateUri. Invalid input is rejected at submission with its item index."
17404
+ );
17405
+ var IssueInboxCredentialBatchValidator = external_exports.object({
17406
+ requestId: external_exports.string().min(1).max(256).optional(),
17407
+ items: external_exports.array(IssueInboxCredentialBatchItemValidator).min(1).max(100),
17408
+ configuration: InboxBatchConfigurationValidator.optional()
17409
+ }).superRefine((batch, ctx) => {
17410
+ batch.items.forEach((item, index) => {
17411
+ const itemGuardian = item.configuration?.guardianEmail;
17412
+ const guardian = itemGuardian === null ? void 0 : itemGuardian ?? batch.configuration?.guardianEmail;
17413
+ if (guardian && item.recipient.type === "email" && guardian.toLowerCase() === item.recipient.value.toLowerCase()) {
17414
+ ctx.addIssue({
17415
+ code: "custom",
17416
+ path: ["items", index, "configuration", "guardianEmail"],
17417
+ message: "guardianEmail must differ from recipient (self-approval not allowed)"
17418
+ });
17419
+ }
17420
+ });
17421
+ });
17422
+ var InboxBatchErrorReasonValidator = external_exports.enum([
17423
+ "DUPLICATE_KEY",
17424
+ "IDEMPOTENCY_MISMATCH",
17425
+ "IN_PROGRESS",
17426
+ "UNCONFIRMED"
17427
+ ]);
17428
+ var IssueInboxCredentialBatchItemResultValidator = external_exports.discriminatedUnion("success", [
17429
+ IssueInboxCredentialResponseValidator.extend({
17430
+ success: external_exports.literal(true),
17431
+ index: external_exports.number().int().nonnegative(),
17432
+ deduplicated: external_exports.boolean().optional(),
17433
+ guardianStatus: GuardianStatusValidator.optional(),
17434
+ idempotencyKey: external_exports.string().optional()
17435
+ }),
17436
+ external_exports.object({
17437
+ success: external_exports.literal(false),
17438
+ index: external_exports.number().int().nonnegative(),
17439
+ idempotencyKey: external_exports.string().optional(),
17440
+ recipient: ContactMethodQueryValidator.optional(),
17441
+ error: external_exports.object({
17442
+ code: external_exports.string(),
17443
+ message: external_exports.string(),
17444
+ reason: InboxBatchErrorReasonValidator.optional()
17445
+ }),
17446
+ issuanceId: external_exports.string().optional().describe(
17447
+ "Present when issuance completed but replay storage could not be confirmed. Reconcile this issuance; do not issue again with a new key."
17448
+ ),
17449
+ claimUrl: external_exports.string().url().optional().describe(
17450
+ "Claim URL of the completed issuance, if available, when replay storage could not be confirmed."
17451
+ )
17452
+ })
17453
+ ]);
17454
+ var IssueInboxCredentialBatchResponseValidator = external_exports.object({
17455
+ results: external_exports.array(IssueInboxCredentialBatchItemResultValidator),
17456
+ summary: external_exports.object({
17457
+ total: external_exports.number(),
17458
+ succeeded: external_exports.number(),
17459
+ failed: external_exports.number(),
17460
+ deduplicated: external_exports.number()
17461
+ })
17462
+ });
17463
+ var InboxBatchReceiptValidator = external_exports.object({
17464
+ batchId: external_exports.string(),
17465
+ status: external_exports.enum(["QUEUED", "PROCESSING", "COMPLETED", "NEEDS_RECONCILIATION"]),
17466
+ createdAt: external_exports.string()
17467
+ });
17468
+ var InboxBatchStatusValidator = external_exports.object({
17469
+ batchId: external_exports.string(),
17470
+ createdAt: external_exports.string(),
17471
+ done: external_exports.boolean().describe(
17472
+ "True when no queued or processing items remain, including unconfirmed outcomes."
17473
+ ),
17474
+ status: external_exports.enum(["QUEUED", "PROCESSING", "COMPLETED", "NEEDS_RECONCILIATION"]),
17475
+ items: external_exports.array(
17476
+ external_exports.object({
17477
+ index: external_exports.number().int().nonnegative(),
17478
+ state: external_exports.enum(["QUEUED", "PROCESSING", "COMPLETED", "NEEDS_RECONCILIATION"]),
17479
+ result: IssueInboxCredentialBatchItemResultValidator.optional()
17480
+ })
17481
+ ),
17482
+ summary: IssueInboxCredentialBatchResponseValidator.shape.summary.extend({
17483
+ completed: external_exports.number(),
17484
+ pending: external_exports.number(),
17485
+ unconfirmed: external_exports.number()
17486
+ })
17487
+ });
17088
17488
  var CredentialNameRefValidator = external_exports.object({ name: external_exports.string() }).passthrough();
17089
17489
  var ClaimInboxCredentialValidator = external_exports.object({
17090
17490
  credential: VCValidator.or(VPValidator).or(UnsignedVCValidator).or(CredentialNameRefValidator).describe("The credential to issue, or a { name } reference to resolve a boost template."),
@@ -17570,6 +17970,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17570
17970
  eventType: CredentialActivityEventTypeValidator,
17571
17971
  timestamp: external_exports.string(),
17572
17972
  actorProfileId: external_exports.string().optional(),
17973
+ onBehalfOf: external_exports.string().optional(),
17573
17974
  recipientType: CredentialActivityRecipientTypeValidator,
17574
17975
  recipientIdentifier: external_exports.string(),
17575
17976
  boostUri: external_exports.string().optional(),
@@ -17730,191 +18131,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17730
18131
  const result = inAppMessagesFlagValidator.safeParse(raw);
17731
18132
  return result.success ? result.data : EMPTY_IN_APP_MESSAGES_FLAG;
17732
18133
  }, "parseInAppMessagesFlag");
17733
- var LearnCardRefreshAuthorizationValidator = external_exports.object({ type: external_exports.literal("LearnCardDIDAuth") }).catchall(external_exports.any());
17734
- var ManagedCredentialRefreshServiceValidator = external_exports.object({
17735
- id: external_exports.string().min(1),
17736
- type: external_exports.literal("LearnCardCredentialRefresh2026"),
17737
- authorization: LearnCardRefreshAuthorizationValidator.optional()
17738
- }).catchall(external_exports.any());
17739
- var StandardCredentialRefreshServiceValidator = external_exports.object({
17740
- id: external_exports.string().min(1),
17741
- type: external_exports.literal("1EdTechCredentialRefresh")
17742
- }).catchall(external_exports.any());
17743
- var SupportedCredentialRefreshServiceValidator = external_exports.union([
17744
- ManagedCredentialRefreshServiceValidator,
17745
- StandardCredentialRefreshServiceValidator
17746
- ]);
17747
- var AllocateCredentialRefreshInputValidator = external_exports.object({
17748
- holder: external_exports.object({
17749
- profileId: external_exports.string().optional(),
17750
- did: external_exports.string().min(1)
17751
- }),
17752
- credentialId: external_exports.string().min(1)
17753
- });
17754
- var AllocateCredentialRefreshResultValidator = external_exports.object({
17755
- refreshId: external_exports.string().min(1),
17756
- refreshService: ManagedCredentialRefreshServiceValidator.extend({
17757
- authorization: LearnCardRefreshAuthorizationValidator
17758
- })
17759
- });
17760
- var CredentialRefreshSigningModeValidator = external_exports.enum(["issuer-signed", "signing-authority"]);
17761
- var PublishCredentialRefreshBaseFields = {
17762
- refreshId: external_exports.string().min(1),
17763
- notifyHolder: external_exports.boolean().optional(),
17764
- updateSummary: external_exports.string().optional(),
17765
- idempotencyKey: external_exports.string().optional()
17766
- };
17767
- var PublishIssuerSignedRefreshValidator = external_exports.object({
17768
- ...PublishCredentialRefreshBaseFields,
17769
- mode: external_exports.literal("issuer-signed"),
17770
- signedCredential: VCValidator
17771
- });
17772
- var PublishSigningAuthorityRefreshValidator = external_exports.object({
17773
- ...PublishCredentialRefreshBaseFields,
17774
- mode: external_exports.literal("signing-authority"),
17775
- credential: UnsignedVCValidator,
17776
- signingAuthority: external_exports.object({
17777
- type: external_exports.string().min(1)
17778
- }).catchall(external_exports.any())
17779
- });
17780
- var PublishCredentialRefreshInputValidator = external_exports.object({
17781
- ...PublishCredentialRefreshBaseFields,
17782
- mode: CredentialRefreshSigningModeValidator,
17783
- signedCredential: VCValidator.optional(),
17784
- credential: UnsignedVCValidator.optional(),
17785
- signingAuthority: external_exports.object({
17786
- type: external_exports.string().min(1)
17787
- }).catchall(external_exports.any()).optional()
17788
- }).superRefine((input, ctx) => {
17789
- if (input.mode === "issuer-signed" && !input.signedCredential) {
17790
- ctx.addIssue({
17791
- code: "custom",
17792
- path: ["signedCredential"],
17793
- message: "signedCredential is required for issuer-signed publication"
17794
- });
17795
- }
17796
- if (input.mode === "issuer-signed" && (input.credential !== void 0 || input.signingAuthority !== void 0)) {
17797
- ctx.addIssue({
17798
- code: "custom",
17799
- path: ["mode"],
17800
- message: "issuer-signed publication cannot include signing-authority fields"
17801
- });
17802
- }
17803
- if (input.mode === "signing-authority") {
17804
- if (input.signedCredential !== void 0) {
17805
- ctx.addIssue({
17806
- code: "custom",
17807
- path: ["signedCredential"],
17808
- message: "signing-authority publication cannot include signedCredential"
17809
- });
17810
- }
17811
- if (!input.credential) {
17812
- ctx.addIssue({
17813
- code: "custom",
17814
- path: ["credential"],
17815
- message: "credential is required for signing-authority publication"
17816
- });
17817
- }
17818
- if (!input.signingAuthority) {
17819
- ctx.addIssue({
17820
- code: "custom",
17821
- path: ["signingAuthority"],
17822
- message: "signingAuthority is required for signing-authority publication"
17823
- });
17824
- }
17825
- }
17826
- });
17827
- var PublishCredentialRefreshNotificationValidator = external_exports.enum([
17828
- "queued",
17829
- "suppressed",
17830
- "not-applicable",
17831
- /** Publication succeeded, but the post-commit notification enqueue must be retried. */
17832
- "delivery-failed"
17833
- ]);
17834
- var PublishCredentialRefreshResultValidator = external_exports.object({
17835
- refreshId: external_exports.string().min(1),
17836
- version: external_exports.number().int().positive(),
17837
- publishedAt: external_exports.string().min(1),
17838
- notification: PublishCredentialRefreshNotificationValidator
17839
- });
17840
- var CredentialRefreshVersionMetadataValidator = external_exports.object({
17841
- version: external_exports.number().int().positive(),
17842
- publishedAt: external_exports.string().min(1),
17843
- effectiveAt: external_exports.string().optional(),
17844
- etag: external_exports.string().optional(),
17845
- signingMode: CredentialRefreshSigningModeValidator.optional(),
17846
- updateSummary: external_exports.string().optional()
17847
- });
17848
- var GetCredentialRefreshHistoryInputValidator = external_exports.object({
17849
- refreshId: external_exports.string().min(1),
17850
- cursor: external_exports.string().optional(),
17851
- limit: external_exports.number().int().positive().optional()
17852
- });
17853
- var GetCredentialRefreshHistoryResultValidator = external_exports.object({
17854
- records: CredentialRefreshVersionMetadataValidator.array(),
17855
- hasMore: external_exports.boolean(),
17856
- cursor: external_exports.string().optional()
17857
- });
17858
- var CredentialRefreshChallengeValidator = external_exports.object({
17859
- challenge: external_exports.string().min(1),
17860
- expiresAt: external_exports.string().min(1),
17861
- domain: external_exports.string().optional(),
17862
- scheme: external_exports.literal("LearnCardDIDAuth").optional()
17863
- });
17864
- var PublicCredentialRefreshEnvelopeValidator = external_exports.object({
17865
- format: external_exports.literal("vc"),
17866
- credential: VCValidator,
17867
- etag: external_exports.string().optional()
17868
- });
17869
- var JweCredentialRefreshEnvelopeValidator = external_exports.object({
17870
- format: external_exports.literal("jwe"),
17871
- jwe: JWEValidator,
17872
- etag: external_exports.string().optional(),
17873
- /** Present on LearnCard-managed endpoints; optional for interoperable JWE services. */
17874
- version: external_exports.number().int().positive().optional()
17875
- });
17876
- var CredentialRefreshResponseEnvelopeValidator = external_exports.discriminatedUnion("format", [
17877
- PublicCredentialRefreshEnvelopeValidator,
17878
- JweCredentialRefreshEnvelopeValidator
17879
- ]);
17880
- var CredentialRefreshFailureCodeValidator = external_exports.enum([
17881
- "UNAVAILABLE",
17882
- "TIMEOUT",
17883
- "UNSUPPORTED_SERVICE",
17884
- "UNAUTHORIZED",
17885
- "MALFORMED_RESPONSE",
17886
- "INVALID_PROOF",
17887
- "ISSUER_MISMATCH",
17888
- "ID_MISMATCH",
17889
- "ROLLBACK",
17890
- "REVOKED",
17891
- "UNSAFE_ENDPOINT"
17892
- ]);
17893
- var CredentialRefreshUpdatedResultValidator = external_exports.object({
17894
- status: external_exports.literal("updated"),
17895
- credential: VCValidator,
17896
- etag: external_exports.string().optional(),
17897
- managedVersion: external_exports.number().int().positive().optional()
17898
- });
17899
- var CredentialRefreshUnchangedResultValidator = external_exports.object({
17900
- status: external_exports.literal("unchanged"),
17901
- checkedAt: external_exports.string().min(1),
17902
- etag: external_exports.string().optional()
17903
- });
17904
- var CredentialRefreshUnsupportedResultValidator = external_exports.object({
17905
- status: external_exports.literal("unsupported")
17906
- });
17907
- var CredentialRefreshFailedResultValidator = external_exports.object({
17908
- status: external_exports.literal("failed"),
17909
- code: CredentialRefreshFailureCodeValidator,
17910
- retryable: external_exports.boolean()
17911
- });
17912
- var CredentialRefreshResultValidator = external_exports.discriminatedUnion("status", [
17913
- CredentialRefreshUpdatedResultValidator,
17914
- CredentialRefreshUnchangedResultValidator,
17915
- CredentialRefreshUnsupportedResultValidator,
17916
- CredentialRefreshFailedResultValidator
17917
- ]);
17918
18134
  }
17919
18135
  });
17920
18136